-
Compteur de contenus
136 -
Inscription
-
Dernière visite
-
Jours gagnés
1
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par nen
-
Bonjour le forum😀, J’aurais besoin de vos lumières🤔. J’ai le code VBA ci-dessous qui détecte les polylignes non fermées dans un dessin AutoCAD. Le problème c’est qu’il le fait sur toutes les polylignes se trouvent dans tous les calques. J’aimerais faire cette détection seulement dans un seul calque, le calque « Polygonale » Est-possible ? Merci d'avance Sub PolylignesOuvertes() For Each ent In ThisDrawing.ModelSpace ent.color = acWhite If ent.ObjectName = "AcDbPolyline" Then If ent.Closed = False Then ent.color = acRed Else ent.color = acGreen End If End If Next ent ThisDrawing.Regen (acActiveViewport) End Sub
-
Modifier le calque des étiquette d'attribut dans un bloc
nen a répondu à un(e) sujet de nen dans Débuter en LISP
Bonjour, Je te remercie Luna pour ton aide précieuse😛. Là tu m’as donné la totale, en effet j’ai trouvé la propriété que je cherchais👍. Il va falloir que j’analyse tout ça, grâce à vous j’ai appris beaucoup de choses. Est-ce que ses propriétés sont définitives ou cela change avec des nouvelles versions d’AutoCAD ?🤔 Cela vaut-il la peine d’en faire un catalogue (excel par exemple) ? je remercie aussi Gile et Didier 🙂 Merci infiniment Meilleures salutations -
Modifier le calque des étiquette d'attribut dans un bloc
nen a répondu à un(e) sujet de nen dans Débuter en LISP
Bonjour, Je te remercie Gile pour ton aide. Malheureusement, je n'ai pas compris l'aide disponible avec F2 ? Dans AutoCAD ou dans l'éditeur visual LISP ? Dans l'exemple il répertorie les propriétés disponibles pour un objet de type ligne comment dois-je faire pour obtenir celle des attributs ? PS: joint une liste des fonctions lisp trouvé sur le net Merci d'avance Meilleures salutations Liste des fonctions par ordre alphabétique du AutoLISP.xlsx -
Modifier le calque des étiquette d'attribut dans un bloc
nen a répondu à un(e) sujet de nen dans Débuter en LISP
Bonjour, Par rapport au code plus haut dans le post, je remercie Gile et Luna. J'aimerais modifier quelques options supplémentaires du texte des attributs. Pour la couleur et la rotation, j'ai trouvé c'est --> (setpropertyvalue e "Color" 5) et (setpropertyvalue e "rotation" 0) Je voudrais savoir comment s'appellent les options suivantes (ou comment les trouver) : --> Style de texte, facteur de largeur, angle oblique, etc. Pour le facteur de largeur que j'ai essayé (setpropertyvalue e "width" 0,75), cela ne fonctionne pas. Merci de votre aide. Bon weekend -
Modifier le calque des étiquette d'attribut dans un bloc
nen a répondu à un(e) sujet de nen dans Débuter en LISP
Bonjour Luna, Je te remercie pour ton aide et me permets de supprimer le précédent post je n'avais pas tout vérifié, désolé. Avec la modification du code, j'ai fait plusieurs tests sur diffèrent plan dans certain plan le lisp fonctionne à merveille et sur d'autre il me change par exemple le facteur de largeur du texte en 0.9 ? Je me rends compte que j'aurais des différents problèmes suivant l'origine du plan. J'ai essayé de changer la couleur, j'ai modifié le code "(setpropertyvalue e "Color" 5)", cela fonctionne, maintenant je voudrais rajouter ce code au précédent ou dois-je le placer, j'ai essayé sans succès ? Je désire aussi changer le facteur de largeur, angle oblique, style de texte, etc. ou est-ce que peut trouver ses infos "Libellé" ? Meilleures salutations -
Modifier le calque des étiquette d'attribut dans un bloc
nen a répondu à un(e) sujet de nen dans Débuter en LISP
Bonjour Luna, Merci pour ton aide et ses précieuses informations😉👍. En effet je consulte de temps en temps ce genre de site, malheureusement je n’arrive pas à acquérir les bases pour progresser.😟 J'ai dû déplacer la ligne de commande "(command-s "_.attsync" "_name" "INFO-LOCAL_100_200")" et le placer juste en dessous de la ligne "(setq e (entnext e))". Par contre, pour la hauteur du texte il le fait dans l’autre sens, cela ne change pas la hauteur du texte du bloc en 15, mais change la hauteur du texte de l'attribut en 20.🤔 Je joins un dwg avec le bloc. Meilleures salutations Dessin1.dwg -
Modifier le calque des étiquette d'attribut dans un bloc
nen a répondu à un(e) sujet de nen dans Débuter en LISP
Bonjour Gile😃, Je te remercie pour ton aide et ce complément d’info Super merci, j’ai essayé et cela fonctionne impeccable, merci aussi à Luna pour ton aide.👍 Comme exercice, J’ai modifié le bloc avec une hauteur de texte 20 et mon attribut forcé 15. Pour que les soit les deux pareils, j’ai écrit mon code comme ci-dessous et cela ne fonctionne pas ? La fonction "tblobjname" c’est elle qui me permet de modifier mon bloc, non ? (setq l (tblobjname "HEIGHT" "15")) Meilleures salutations -
Modifier le calque des étiquette d'attribut dans un bloc
nen a répondu à un(e) sujet de nen dans Débuter en LISP
Bonjour Luna😃, Je te remercie pour ton aide👍. En effet je voudrais une fois le lisp de Gile exécuté que la fonction attsync synchronise tous les blocs "INFO-LOCAL_100_200". Je ne sais pas où se trouve l'erreur. As-tu une idée ?🤔 Meilleures salutations -
Modifier le calque des étiquette d'attribut dans un bloc
nen a répondu à un(e) sujet de nen dans Débuter en LISP
Bonjour😃, J’ai modifié le lisp en rajoutant la fonction « attsync », j’ai essayé plusieurs fois sans succès, j’ai le message « erreur de syntaxe ». Ou est mon erreur ?🤔 Merci d’avance Meilleures salutations (defun c:XXX (/ e l) (if (and (setq e (cdr (assoc -2 (tblsearch "BLOCK" "INFO-LOCAL_100_200")))) (setq l (tblobjname "LAYER" "0-INFO-LOCAL")) ) (while e (setpropertyvalue e "LayerId" l) (setq e (entnext e)) ) (vl-cmdf "_.attsync" "_name" (vla-get-name def)) (vla-endundomark adoc) ) (princ) ) -
Modifier le calque des étiquette d'attribut dans un bloc
nen a répondu à un(e) sujet de nen dans Débuter en LISP
Bonjour Gile, Je te remercie pour ton aide😉. C’est exactement ça cela fonctionne impeccable mais est-il possible d’y ajouter la commande "attsync" au code afin de tout synchroniser ? Merci d’avance Meilleures salutations -
Modifier le calque des étiquette d'attribut dans un bloc
nen a répondu à un(e) sujet de nen dans Débuter en LISP
Bonjour Gile, Oui en effet c'est exactement ce que je veux faire, merci pour ton aide👍. Je voudrais standardiser plusieurs dizaines de plans reçu de plusieurs prestataires différent et je bloque avec les attributs. Le problème comment faire quand tu as des dizaines de plans à faire ?🤔 j'aurais voulut automatiser avec un script en lançant lisp et macro. Si j'ose une petite remarque sur « Edit_Bloc », on change le calque, la couleur, il aurait été sympa d'y trouver la hauteur de texte aussi.😉 Elle est super cette petite appli, je ne connaissais pas, bon boulot bravo.👏 Meilleures salutations -
Modifier le calque des étiquette d'attribut dans un bloc
nen a répondu à un(e) sujet de nen dans Débuter en LISP
Bonjour le forum, J’ai essayé de créer une macro avec la ligne de commande ci-dessous : Malheureusement elle s’arrête juste après « MODIFBLOC ». Est-ce que quelqu’un aurait une idée pourquoi ? ^C^C-MODIFBLOC;chprop;TOUT;CA;0-INFO-LOCAL;; Merci d’avance Meilleures salutations -
Modifier le calque des étiquette d'attribut dans un bloc
nen a répondu à un(e) sujet de nen dans Débuter en LISP
Bonjour Maxime063, Merci pour ton aide👍 Oui cette solution cela fonctionne nickel, je connaissais pas😃. N'est-il pas possible d'automatiser avec un lisp ou macro ?🤔 En effet j'ai plusieurs dizaines de plans à modifier ses manipulations vont être fastidieuses vu le nombre de plan.😟 -
Bonjour le forum, J'ai besoin de votre aide😀. J'ai un bloc sur le calque "0-INFO-LOCAL" composé de trois attributs sur le calque "0". J'aimerais par un lisp ou toutes autres commandes changer le calque des étiquettes de l'attributs "0" en "0-INFO-LOCAL" ou tout autre calque de mon choix. Il y a bien la commande "DEFDUCALQUE" le problème c'est que cela déplace uniquement sur DUCALQUE ou DUBLOC. J'ai essayé aussi de changer directement dans mon bloc d'origine, de le réimporter et de redéfinir tous les blocs malheureusement cela ne fonctionne pas. Est-ce quelqu'un à une astuce ou un lisp, car j'ai des plans avec des dizaines d'attributs à changer. PS: bloc dans le fichier ci-joint Merci d'avance pour votre aide Meilleures salutations Bloc01.dwg
-
Bonjour, Super merci Fraid c'est exactement ça cela fonctionne impeccable 👍 D'une efficacité redoutable, bravo 👋 Meilleures salutations
-
Bonjour le Forum🙂, J’ai besoin de vos lumières😉. Est-il possible avec un lisp de sélectionner tous les objets hachures d’un plan (même s’ils sont sur des calques diffèrent) et changer le motif en solid, tout ça en une commande ? Merci d’avance de votre aide Meilleures salutations
-
Créer un champ avec une macro-commande
nen a répondu à un(e) sujet de nen dans Personnalisation, macros, DIESEL
Merci pour ton message 👍 je connaissais pas ses deux variables🙂. Et pour « * » devant la macro commande « ^C^Careafield --> *^C^Careafield » malheureusement ça bloque le programme il tourne en boucle, je ne peux pas le faire à la Volée.🤔 Meilleures salutations -
Créer un champ avec une macro-commande
nen a répondu à un(e) sujet de nen dans Personnalisation, macros, DIESEL
Super merci pour ton aide👍. Je me disais bien que le code de l’expression de champ devait servir à quelque chose😋. « Juste » deux petites chose pour le style de texte il le gère comment ? j’ai vu qu’il prenait bien le texte standard mais pour la taille il définit par lui-même une hauteur ? J’ai créé une macro commande « ^C^Careafield » et j’ai placé devant « * » pour créer des surfaces à la volées malheureusement ça bloque le programme il tourne en boucle. Est-ce qu’il y a une autre astuce ? Meilleures salutations -
Créer un champ avec une macro-commande
nen a répondu à un(e) sujet de nen dans Personnalisation, macros, DIESEL
Je remercie pour ton message et explications🙂. C'est dommage est effet que l'on arrive pas à automatiser avec une macro-commande ou AutoLisp😟. C'est embêtant de répéter la commande "champ" avec tous ses paramètres pour chaque locaux lors d'un projet par exemple. Pourquoi dans le champ "Expression de champ" il y a ce code ci-dessous, si on ne peut pas l'utiliser dans une macro-commande ou dans un AutoLisp, pourquoi l'afficher ? %<\AcObjProp.16.2 Object(%<\_ObjId 2294250187888>%).Area \f "%lu2%zs8%ct8[0.0001]">% Meilleures salutations -
Créer un champ avec une macro-commande
nen a répondu à un(e) sujet de nen dans Personnalisation, macros, DIESEL
Bonjour, merci pour ton message et tes explications 🙂 la variable INSUNITS je suis sur 5, en fait tous mes paramètres et mon gabarit sont en système métrique en centimètres. c’est de la que vient le problème ? -
Créer un champ avec une macro-commande
nen a répondu à un(e) sujet de nen dans Personnalisation, macros, DIESEL
Salut, Merci à vous deux pour votre message. En effet j’ai trouvé un lisp de Lee Mac "Area Label" à ce lien "http://www.lee-mac.com/arealabel.html" malheureusement quand on choisit en mode tableau (AT), on change le facteur de conversion (mm2 -> m2) mais la surface dans le tableau reste en mm2, le facteur fonctionne seulement en mode fichier texte (AF), je suppose qu’on ne peut pas car on perdrait la fonction dynamique où est-ce que le lisp date de 2011 et sur AutoCAD 2021 ne fonctionne plus correctement ? Merci Meilleures salutations Ci-dessous le code du lisp "Area Label" de Lee Mac ;;---------------------=={ Area Label }==---------------------;; ;; ;; ;; Allows the user to label picked areas or objects and ;; ;; either display the area in an AutoCAD Table (if available), ;; ;; optionally using fields to link area numbers and objects; ;; ;; or write it to file. ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Version 1.9 - 29-10-2011 ;; ;;------------------------------------------------------------;; (defun c:AT nil (AreaLabel t)) ;; Areas to Table (defun c:AF nil (AreaLabel nil)) ;; Areas to File ;;------------------------------------------------------------;; (defun AreaLabel ( flag / *error* _startundo _endundo _centroid _text _open _select _getobjectid _isannotative acdoc acspc ap ar as cf cm el fd fl fo n of om p1 pf pt sf st t1 t2 tb th ts tx ucsxang ucszdir ) ;;------------------------------------------------------------;; ;; Adjustments ;; ;;------------------------------------------------------------;; (setq h1 "Area Table" ;; Heading t1 "Number" ;; Number Title t2 "Area" ;; Area Title pf "" ;; Number Prefix (optional, "" if none) sf "" ;; Number Suffix (optional, "" if none) ap "" ;; Area Prefix (optional, "" if none) as "" ;; Area Suffix (optional, "" if none) cf 1.0 ;; Area Conversion Factor (e.g. 1e-6 = mm2->m2) fd t ;; Use fields to link numbers/objects to table (t=yes, nil=no) fo "%lu6%qf1" ;; Area field formatting ) ;;------------------------------------------------------------;; (defun *error* ( msg ) (if cm (setvar 'CMDECHO cm)) (if el (progn (entdel el) (setq el nil))) (if acdoc (_EndUndo acdoc)) (if (and of (eq 'FILE (type of))) (close of)) (if (and Shell (not (vlax-object-released-p Shell))) (vlax-release-object Shell)) (if (null (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")) (princ (strcat "\n--> Error: " msg)) ) (princ) ) ;;------------------------------------------------------------;; (defun _StartUndo ( doc ) (_EndUndo doc) (vla-StartUndoMark doc) ) ;;------------------------------------------------------------;; (defun _EndUndo ( doc ) (if (= 8 (logand 8 (getvar 'UNDOCTL))) (vla-EndUndoMark doc) ) ) ;;------------------------------------------------------------;; (defun _centroid ( space objs / reg cen ) (setq reg (car (vlax-invoke space 'addregion objs)) cen (vlax-get reg 'centroid) ) (vla-delete reg) (trans cen 1 0) ) ;;------------------------------------------------------------;; (defun _text ( space point string height rotation / text ) (setq text (vla-addtext space string (vlax-3D-point point) height)) (vla-put-alignment text acalignmentmiddlecenter) (vla-put-textalignmentpoint text (vlax-3D-point point)) (vla-put-rotation text rotation) text ) ;;------------------------------------------------------------;; (defun _Open ( target / Shell result ) (if (setq Shell (vla-getInterfaceObject (vlax-get-acad-object) "Shell.Application")) (progn (setq result (and (or (eq 'INT (type target)) (setq target (findfile target))) (not (vl-catch-all-error-p (vl-catch-all-apply 'vlax-invoke (list Shell 'Open target)) ) ) ) ) (vlax-release-object Shell) ) ) result ) ;;------------------------------------------------------------;; (defun _Select ( msg pred func init / e ) (setq pred (eval pred)) (while (progn (setvar 'ERRNO 0) (apply 'initget init) (setq e (func msg)) (cond ( (= 7 (getvar 'ERRNO)) (princ "\nMissed, try again.") ) ( (eq 'STR (type e)) nil ) ( (vl-consp e) (if (and pred (not (pred (setq e (car e))))) (princ "\nInvalid Object Selected.") ) ) ) ) ) e ) ;;------------------------------------------------------------;; (defun _GetObjectID ( doc obj ) (if (vl-string-search "64" (getenv "PROCESSOR_ARCHITECTURE")) (vlax-invoke-method (vla-get-Utility doc) 'GetObjectIdString obj :vlax-false) (itoa (vla-get-Objectid obj)) ) ) ;;------------------------------------------------------------;; (defun _isAnnotative ( style / object annotx ) (and (setq object (tblobjname "STYLE" style)) (setq annotx (cadr (assoc -3 (entget object '("AcadAnnotative"))))) (= 1 (cdr (assoc 1070 (reverse annotx)))) ) ) ;;------------------------------------------------------------;; (setq acdoc (vla-get-activedocument (vlax-get-acad-object)) acspc (vlax-get-property acdoc (if (= 1 (getvar 'CVPORT)) 'Paperspace 'Modelspace)) ucszdir (trans '(0. 0. 1.) 1 0 t) ucsxang (angle '(0. 0. 0.) (trans (getvar 'UCSXDIR) 0 ucszdir)) ) (_StartUndo acdoc) (setq cm (getvar 'CMDECHO)) (setvar 'CMDECHO 0) (setq om (eq "1" (cond ((getenv "LMAC_AreaLabel")) ((setenv "LMAC_AreaLabel" "0"))))) (setq ts (/ (getvar 'TEXTSIZE) (if (_isAnnotative (getvar 'TEXTSTYLE)) (cond ( (getvar 'CANNOSCALEVALUE) ) ( 1.0 )) 1.0 ) ) ) (cond ( (not (vlax-method-applicable-p acspc 'addtable)) (princ "\n--> Table Objects not Available in this Version.") ) ( (= 4 (logand 4 (cdr (assoc 70 (tblsearch "LAYER" (getvar 'CLAYER)))))) (princ "\n--> Current Layer Locked.") ) ( (not (setq *al:num (cond ( (getint (strcat "\nSpecify Starting Number <" (itoa (setq *al:num (1+ (cond ( *al:num ) ( 0 ))))) ">: " ) ) ) ( *al:num ) ) ) ) ) ( flag (setq th (* 2. (if (zerop (setq th (vla-gettextheight (setq st (vla-item (vla-item (vla-get-dictionaries acdoc) "ACAD_TABLESTYLE" ) (getvar 'CTABLESTYLE) ) ) acdatarow ) ) ) ts (/ th (if (_isAnnotative (vla-gettextstyle st acdatarow)) (cond ( (getvar 'CANNOSCALEVALUE) ) ( 1.0 )) 1.0 ) ) ) ) ) (if (cond ( (progn (initget "Add") (vl-consp (setq pt (getpoint "\nPick Point for Table <Add to Existing>: "))) ) (setq tb (vla-addtable acspc (vlax-3D-point (trans pt 1 0)) 2 2 th (* 0.8 th (max (strlen t1) (strlen t2))) ) ) (vla-put-direction tb (vlax-3D-point (getvar 'UCSXDIR))) (vla-settext tb 0 0 h1) (vla-settext tb 1 0 t1) (vla-settext tb 1 1 t2) (while (progn (if om (setq p1 (_Select (strcat "\nSelect Object [Pick] <Exit>: ") '(lambda ( x ) (and (vlax-property-available-p (vlax-ename->vla-object x) 'area) (not (eq "HATCH" (cdr (assoc 0 (entget x))))) (or (eq "REGION" (cdr (assoc 0 (entget x)))) (vlax-curve-isclosed x)) ) ) entsel '("Pick") ) ) (progn (initget "Object") (setq p1 (getpoint "\nPick Area [Object] <Exit>: "))) ) (cond ( (null p1) (vla-delete tb) ) ( (eq "Pick" p1) (setq om nil) t ) ( (eq "Object" p1) (setq om t) ) ( (eq 'ENAME (type p1)) (setq tx (cons (_text acspc (_centroid acspc (list (setq p1 (vlax-ename->vla-object p1)))) (strcat pf (itoa *al:num) sf) ts ucsxang ) tx ) ) (vla-insertrows tb (setq n 2) th 1) (vla-settext tb n 1 (if fd (strcat "%<\\AcObjProp Object(%<\\_ObjId " (_GetObjectID acdoc p1) ">%).Area \\f \"" fo "\">%" ) (strcat ap (rtos (* cf (vla-get-area p1)) 2) as) ) ) (vla-settext tb n 0 (if fd (strcat "%<\\AcObjProp Object(%<\\_ObjId " (_GetObjectID acdoc (car tx)) ">%).TextString>%" ) (strcat pf (itoa *al:num) sf) ) ) nil ) ( (vl-consp p1) (setq el (entlast)) (vl-cmdf "_.-boundary" "_A" "_I" "_N" "" "_O" "_P" "" "_non" p1 "") (if (not (equal el (setq el (entlast)))) (progn (setq tx (cons (_text acspc (_centroid acspc (list (vlax-ename->vla-object el))) (strcat pf (itoa *al:num) sf) ts ucsxang ) tx ) ) (vla-insertrows tb (setq n 2) th 1) (vla-settext tb n 1 (strcat ap (rtos (* cf (vlax-curve-getarea el)) 2) as)) (vla-settext tb n 0 (if fd (strcat "%<\\AcObjProp Object(%<\\_ObjId " (_GetObjectID acdoc (car tx)) ">%).TextString>%" ) (strcat pf (itoa *al:num) sf) ) ) (redraw el 3) nil ) (vla-delete tb) ) ) ) ) ) (not (vlax-erased-p tb)) ) ( (and (setq tb (_Select "\nSelect Table to Add to: " '(lambda ( x ) (eq "ACAD_TABLE" (cdr (assoc 0 (entget x))))) entsel nil ) ) (< 1 (vla-get-columns (setq tb (vlax-ename->vla-object tb)))) ) (setq n (1- (vla-get-rows tb)) *al:num (1- *al:num)) ) ) (progn (while (if om (setq p1 (_Select (strcat "\nSelect Object [" (if tx "Undo/" "") "Pick] <Exit>: ") '(lambda ( x ) (and (vlax-property-available-p (vlax-ename->vla-object x) 'area) (not (eq "HATCH" (cdr (assoc 0 (entget x))))) (or (eq "REGION" (cdr (assoc 0 (entget x)))) (vlax-curve-isclosed x)) ) ) entsel (list (if tx "Undo Pick" "Pick")) ) ) (progn (initget (if tx "Undo Object" "Object")) (setq p1 (getpoint (strcat "\nPick Area [" (if tx "Undo/" "") "Object] <Exit>: "))) ) ) (cond ( (and tx (eq "Undo" p1)) (if el (progn (entdel el) (setq el nil))) (vla-deleterows tb n 1) (vla-delete (car tx)) (setq n (1- n) tx (cdr tx) *al:num (1- *al:num)) ) ( (eq "Undo" p1) (princ "\n--> Nothing to Undo.") ) ( (eq "Object" p1) (if el (progn (entdel el) (setq el nil))) (setq om t) ) ( (eq "Pick" p1) (setq om nil) ) ( (and om (eq 'ENAME (type p1))) (setq tx (cons (_text acspc (_centroid acspc (list (setq p1 (vlax-ename->vla-object p1)))) (strcat pf (itoa (setq *al:num (1+ *al:num))) sf) ts ucsxang ) tx ) ) (vla-insertrows tb (setq n (1+ n)) th 1) (vla-settext tb n 1 (if fd (strcat "%<\\AcObjProp Object(%<\\_ObjId " (_GetObjectID acdoc p1) ">%).Area \\f \"" fo "\">%" ) (strcat ap (rtos (* cf (vla-get-area p1)) 2) as) ) ) (vla-settext tb n 0 (if fd (strcat "%<\\AcObjProp Object(%<\\_ObjId " (_GetObjectID acdoc (car tx)) ">%).TextString>%" ) (strcat pf (itoa *al:num) sf) ) ) ) ( (vl-consp p1) (if el (progn (entdel el) (setq el nil))) (setq el (entlast)) (vl-cmdf "_.-boundary" "_A" "_I" "_N" "" "_O" "_P" "" "_non" p1 "") (if (not (equal el (setq el (entlast)))) (progn (setq tx (cons (_text acspc (_centroid acspc (list (vlax-ename->vla-object el))) (strcat pf (itoa (setq *al:num (1+ *al:num))) sf) ts ucsxang ) tx ) ) (vla-insertrows tb (setq n (1+ n)) th 1) (vla-settext tb n 1 (strcat ap (rtos (* cf (vlax-curve-getarea el)) 2) as)) (vla-settext tb n 0 (if fd (strcat "%<\\AcObjProp Object(%<\\_ObjId " (_GetObjectID acdoc (car tx)) ">%).TextString>%" ) (strcat pf (itoa *al:num) sf) ) ) (redraw el 3) ) (princ "\n--> Error Retrieving Area.") ) ) ) ) (if el (progn (entdel el) (setq el nil))) ) ) ) ( (and (setq fl (getfiled "Create Output File" (cond ( *file* ) ( "" )) "txt;csv;xls" 1)) (setq of (open fl "w")) ) (setq *file* (vl-filename-directory fl) de (cdr (assoc (strcase (vl-filename-extension fl) t) '((".txt" . "\t") (".csv" . ",") (".xls" . "\t")))) *al:num (1- *al:num) ) (write-line h1 of) (write-line (strcat t1 de t2) of) (while (if om (setq p1 (_Select (strcat "\nSelect Object [Pick] <Exit>: ") '(lambda ( x ) (and (vlax-property-available-p (vlax-ename->vla-object x) 'area) (not (eq "HATCH" (cdr (assoc 0 (entget x))))) (or (eq "REGION" (cdr (assoc 0 (entget x)))) (vlax-curve-isclosed x)) ) ) entsel '("Pick") ) ) (progn (initget "Object") (setq p1 (getpoint (strcat "\nPick Area [Object] <Exit>: ")))) ) (cond ( (eq "Object" p1) (if el (progn (entdel el) (setq el nil))) (setq om t) ) ( (eq "Pick" p1) (setq om nil) ) ( (eq 'ENAME (type p1)) (_text acspc (_centroid acspc (list (setq p1 (vlax-ename->vla-object p1)))) (strcat pf (itoa (setq *al:num (1+ *al:num))) sf) ts ucsxang ) (write-line (strcat pf (itoa *al:num) sf de ap (rtos (* cf (vla-get-area p1)) 2) as) of) ) ( (vl-consp p1) (if el (progn (entdel el) (setq el nil))) (setq el (entlast)) (vl-cmdf "_.-boundary" "_A" "_I" "_N" "" "_O" "_P" "" "_non" p1 "") (if (not (equal el (setq el (entlast)))) (progn (_text acspc (_centroid acspc (list (vlax-ename->vla-object el))) (strcat pf (itoa (setq *al:num (1+ *al:num))) sf) ts ucsxang ) (write-line (strcat pf (itoa *al:num) sf de ap (rtos (* cf (vlax-curve-getarea el)) 2) as) of) (redraw el 3) ) (princ "\n--> Error Retrieving Area.") ) ) ) ) (if el (progn (entdel el) (setq el nil))) (setq of (close of)) (_Open (findfile fl)) ) ) (setenv "LMAC_AreaLabel" (if om "1" "0")) (setvar 'CMDECHO cm) (_EndUndo acdoc) (princ) ) ;;------------------------------------------------------------;; (vl-load-com) (princ) (princ "\n:: AreaLabel.lsp | Version 1.9 | © Lee Mac 2011 www.lee-mac.com ::") (princ "\n:: Commands: \"AT\" for AutoCAD Table, \"AF\" for File ::") (princ) ;;------------------------------------------------------------;; ;; End of File ;; ;;------------------------------------------------------------;; -
Bonjour le Forum :D , J’ai besoin de vos lumières ;) . J’aimerais savoir s’il est possible de créer une macro-commande pour créer un champ paramétré pour calculer des surfaces en m2 en sélectionnant des objets ? :blink: Est-il possible d’utiliser l’expression de champ dans mon image ci-joint pour créer une macro-commande ? J’ai cette macro-commande ci-dessous qui le fait très bien, malheureusement la valeur n’est pas dynamique si je modifie mon objet ma valeur ne s’adapte pas. :( ^C^C-style;Surface_Valeur;Arial;75;1;0;N;N;N;Aire;ob;\texte;st;Surface_Valeur;$M=$(getvar,lastpoint);0;$M=$(eval,$(rtos,$(/,$(getvar,area),10000),2,2) "m²");deplacer;d;;$M=$(getvar,lastpoint);\ Merci d’avance Meilleures salutations
-
Compiler deux commandes dans une macro
nen a répondu à un(e) sujet de nen dans Personnalisation, macros, DIESEL
Je répond à mon propre post, j'ai trouvé. J'ai simplement supprimé le ";" juste après la pause. ^C^C_Laymcur \-calque;G;*;; Merci quand même :-) Salutations au forum -
Bonjour le forum ;) ;) , J'appelle de nouveau à votre savoir :) . J'ai deux commandes que je voudrais compiler, deux en un (un seul bouton). Je voudrais créer un macro avec la commande "_Laymcur" (changer le calque courant) et tout de suite derrière, geler tous les calques avec "-calque ;G ;T ;;" J'ai essayé des les combiner avec ceci : "^C^C_Laymcur \;-calque;G;*;;" :wacko: Malheureusement, la macro s'arrête juste après la première commande Quelqu'un aurait une idée ? :blink: Merci de votre aide Meilleures salutations
-
Problème lié à l'activation des fenêtres dans les présentations
nen a répondu à un(e) sujet de nen dans AutoCAD 2007
Donne-moi ta formule, dis-moi comment faire et je veux bien essayer :D Il faut toujours apprendre de nouvelle chose :)
