Aller au contenu

ahbv

Membres
  • Compteur de contenus

    122
  • Inscription

  • Dernière visite

  • Jours gagnés

    1

Tout ce qui a été posté par ahbv

  1. ahbv

    problème avec select et copy

    bravo et merci Eric, c'est ca !!!! problème résolu
  2. ahbv

    problème avec select et copy

    merci pour ta réponse, je pense que cela vient d'une variable d'autocad (pas pickfirst ni pickadd,pickdrag,pickstyle,legacypick...etc..) que je ne trouve pas, c'est incroyable le nombre de variables qu'il y a pour gérer une commande ou son comportement.. Bon je crois que c'est encore un problème sans solution... a part de réinitialiser autocad (ce que je ne souhaite pas). a+
  3. ahbv

    problème avec select et copy

    salut, le problème vient du fait qu'autocad annule la ou les selections de l'objet precedemment selectionnnés quelle que soit la commande utilisée, essaye de selectionner des objets et fais un ctr+shit+c et dis moi qu'est qu'autocad te donne (pour ma part c'est un "cancel" et une specification de base de point puis de selectionner les objets a copier)
  4. Bonjour à toutes et tous, j'ai regardé un peu partout pour trouver une solution à mon problème mais rien a faire donc je me lance ici: normalement lorsque je sélectionne un objet je clic dessus et je peux faire une copy avec Ctr-shift+C et là normalement autocad ne demande que le point de selection mais maintenant ce n'est plus le cas car j'ai l'impression qu'autocad annulle le selection et me redemande de faire une selection , pourquoi ?? mon collègue a la même version que moi et chez lui cela fonctionne correctement !! j'ai vérifié la commande pickfirst sur 1 pickadd sur 1 , vérifier dans option-selection-selection modes j'ai coché/décoché les mêmes valeurs que mon collégue mais rien a faire.. Est ce que quelqu'un connais la solution,svp?? D'avance merci. AHbv
  5. ahbv

    Erreur dans mon lisp

    et il faut changer (commande "line" pt1 pt2 pt3 pt4 pt1 "") par (command "line" pt1 pt2 pt3 pt4 pt1 "").
  6. Salut, et surtout bravo !!! je répondrais la même chose que "grandss" !! ahg
  7. ahbv

    amélioration lisp expb

    juste encore pour info, la commande qselect (je suis sur un autocad 2015 Anglais) permet de trouver/selectionner les ARRAY (reseau en fr) mais pas la commande filter (filtre) qui elle donne un nom de bloc "*Uxxx" après selection de l'objet , vraiment bizarre !!! (donc il doit bien exister un moyen de ne selectionner que les "array" indépendamment des blocs dynamiques (qui ont 2 noms un principal et un anonyme) mais comment ???
  8. ahbv

    amélioration lisp expb

    la commande "RESEAU (ou ARRAY)" permet de crée une copie paramétrable en x,y,z de l'objet et donc l'identification (ou le nom) du "réseau" est *U123 (par exemple) l'info lambda de l'entité donne ceci (-1 . <Entity name: 7ffff78aa10>) (0 . "INSERT") (5 . "6E241") (102 . "{ACAD_REACTORS") (330 . <Entity name: 7ffff78aac0>) (102 . "}") (330 . <Entity name: 7ffff7039f0>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbBlockReference") (2 . "*U238") (10 28789.0 37936.3 0.0) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0) donc pour pouvoir sélectionner automatiquement les blocs (ou entités) provenant de la commande reseau je selectionne ceci "(2 . "*U???"), par contre si il existe une autre méthode plus sûr et fiable je suis partant..
  9. ahbv

    amélioration lisp expb

    précision: le "*u????" est utiliser pour sélectionner les objets de type "réseau" , je ne sais pas si c'est le code (je ne veux surtout pas exploser les blocs dynamiques).
  10. ahbv

    amélioration lisp expb

    j'ai redemarré autocad et relancé le lisp et là cela fonctionne donc merci à DENISH et (gile) pour les explications ! (quelle commande dois je rajouter pour purger les blocs apres la fin du lisp,svp ?) AHG
  11. ahbv

    amélioration lisp expb

    je viens d'essayer mais non, merci pour la réponse. j'ai modifié comme cela (defun c:expb ( / x n) (vl-load-com) (while (setq n (ssget "_X" '((0 . "INSERT") (2 . "el-*,5???_*,*u????"))))
  12. Bonjour, j'ai voulu tester un lisp qu'avait proposé patrick35 ici "http://cadxp.com/topic/13905-selection-et-exploser-toutes-les-references-de-bloc/Mon lien" dont je voulais l'utiliser pour selectionner "certains" blocs (j'ai rajouté "el-*,5???_*,*u????" pour ne prendre que cela) et les exploser (en finalité je voudrais aussi puger le plan mais ca je peux le faire manuellement) mais le lisp ne fonctionne pas et je ne sais pas pourquoi étant toujours novice en lisp ??? voici le lisp: --------------- (defun c:expb ( / x n) (while (setq n (ssget "_X" '((0 . "INSERT") (2 . "el-*,5???_*,*u????")))) (setq x 0) (repeat (sslength n) (vla-explode (vlax-ename->vla-object (ssname n x))) (vla-delete (vlax-ename->vla-object (ssname n x))) (setq x (+ x 1))) ) (princ) ) --------------------------- cependant lorsque je l’exécute j'ai ceci: quelqu'un pourrait résoudre ce problème ??? Merci infiniment d'avance. AHG
  13. ahbv

    Copier un projet

    Salut, as tu essayé dans la fenetre "project Brower" de cliquer sur "new project" (logo en bas a gauche au dessus du logo i), une nouvelle fenetre s'ouvre "add project" et en bas "create from template project" fournir le lien vers le projet qui ressemble au nouveau afin d'avoir "une copie" dans ton nouveau projet !! AHBV
  14. En premier lieu, un grand merci pour la réponse "colissimo puissance 10", j'ai testé et cela marche tip top. second lieu, voir le premier lieu... merci infiniment.
  15. Bonjour à toutes et tous, je cherche le moyen d'automatiser certaine tache , je regarde beaucoup sur ce site et pour mon probléme je n'ai rien trouvé donc je me lance avec ce sujet à savoir je fais un script qui me selectionne tous les calques sauf 1 ou 2 , j'avais lu quelque part qu'on pouvait utiliser le "~" dans les script (ex. -layer freeze ~div,*) mais cela ne fonctionne pas !! je verrais alors plus une petite routine lisp du genre : (sssetfirst nil (ssget "_A" '(410 . "Model") (8 ."*")))) mais là s’arrête mes connaissances, je ne sais vraiment pas comment dire a autocad avec ssger de prendre tous les calques visibles sauf les calques AA*,BB* par exemple. Je pense que cela est possible mais cela par des "pro du lisp" comme on en trouve sur cadxp. Merci d'avance de m'aider et bonnes vacances à toutes et tous. AHG
  16. salut grandss, je n'ai pas de solution "miracle" a t'apporté car je travail de la même façon que toi et la dernière gaine technique que j'ai fais n'avais que 5 étages (mais quelle galére : archi+elec+hvac ca va un peut prêt des l'ajout xref CHAUFFAGE cela devient ingérable voir impossible car beaucoup de plantage (je n'ose mettre en xref le sanitaire), de longue minute de regeneration etc..) malgré les demandes d'aide a autodesk rien a faire (pour eux tout va bien, il faut travailler avec des xrefs (ce que je fais) en local (ce que j'ai fais mais cela ne change rien : rebelotte plantage ,temps d'attente de folie, la solution changer de logiciel !! je leur ai même envoyé un exemple de coordination pour qu'il constate de mes dires... j'attends toujours une solution (cela fait + de 2ans, j'ai abandonné, ils sont là que pour vendre leur "daube"). J’arrête car rien que d'y penser je monte en température et c'est l'été, bientôt les vacances loin du mep.. Meilleures salutions et bon courage pour tes gaines techniques AHG
  17. Salut, tu as normalement la commande overkill qui devrait pouvoir t'aider. AHG
  18. Salut, je rejoins ton message car de temps en temps j'aimerais la possibilité de pouvoir mettre les couleurs forcées des blocs de tout le dessin en dubloc ou d'autres paramètres sans passer obligatoirement par la fenêtre d'edit-bloc (qui est un lisp "extra"). AHG
  19. Salut grandss, pas évident de répondre a ta requête car chacun travail de sa propre façon , chez nous on dispose d'une charte de nommage de plan du style xxxx pour le projet après yyy pour la technique et zzz pour l’étage. C'est pour te donner une idée, pour les feuilles on a aussi une codification particulière avec dedans l’intégration d'un numéro de plan cella pourrait donnait ceci: xxxx-"PHASE DU PROJET"-yyy-100 (100 CORRESPONDANT au niveau le plus bas d'une technique qui est entre 100 et 150, apres une autre technique commencera entre 200 et 250 et ainsi de suite).. On n'utilise pas les vues donc pas de soucis de nommage mais on pourrait trés bien appliquer la meme philosophie (xxxx-yyy-zzz-vue. Voilà une façon succincte de nommer, mais commencer en autodidacte sur mep c'est pas la bonne solution il faut un minimum de formation !!! cordialement AHG
  20. ahbv

    modif lis KHATCH_BLOCK

    Salut TRAMBER, un grand merci pour ta réponse !!! Désolé pour émoticones !! cordialement ahg
  21. Salut à tous, j'utilise le programme KHATCH_BLOCK.lsp pour effacer les hachures dans des plans (il fonctionne super bien) mais je voudrais que le programme ne supprime que les hachures de type solide, est ce qu'une bonne âme pourrait me donner la ligne à modifier/rajouter (je suis novice en language) ?? merci d'avance. cordialement AHG ci-dessous le programme: ;; Supprimer (Kill) les hachuress (HATCH) dans les blocs (BLOCK) ;; Par GC le 11/03/2011 - Passage en DEFUN par Fraid ;; Micro-Modification par LeCrabe DIM -->HATCH (defun c:KHATCH_BLOCK (/ b o) (vl-load-com) (vlax-for b (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object) ) ) (or (= (vla-get-IsLayout B) :vlax-true) (= (vla-get-IsXref B) :vlax-true) (vlax-for o b (if (wcmatch (vla-get-ObjectName o) "AcDb*Hatch") (vla-delete o) ) ) ) ) ) (c:KHATCH_BLOCK) (command "regen")
  22. Salut, tu peux essayer le lisp de "lee mac" roatt suivant ";;-----------------=={ Move Attributes }==--------------------;; ;; ;; ;; Prompts user for a selection of attribute tag and ;; ;; selection of blocks containing such tag for which the ;; ;; change will be applied. ;; ;; ;; ;; Subsequently prompts user for a base point and ;; ;; displacement and proceeds to move all attributes of the ;; ;; selected tag within the selected blocks. ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; (defun c:mvAtt ( / *error* doc asel base disp lck ss tag ) (vl-load-com) ;; © Lee Mac 2010 (defun *error* ( msg ) (if doc (LM:EndUndo doc)) (if lck (LM:ReLockLayers lck)) (if mutt (setvar 'NOMUTT mutt)) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **"))) (princ) ) (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))) (if (and (setq asel (LM:GetAttribSelection doc t)) (setq base (getpoint "\nSpecify Base Point: ")) (setq disp (getpoint "\nSpecify Second Point: " base)) (setq base (vlax-3D-point (trans base 1 0)) disp (vlax-3D-point (trans disp 1 0)) ) ) (progn (LM:StartUndo doc) (setq lck (LM:UnlockLayers doc) ss (cadr asel) tag (caddr asel)) ( (lambda ( i / e o ) (while (setq e (ssname ss (setq i (1+ i)))) (mapcar (function (lambda ( attrib ) (if (eq tag (vla-get-TagString attrib)) (vla-move attrib base disp) ) ) ) (append (vlax-invoke (setq o (vlax-ename->vla-object e)) 'GetAttributes) (vlax-invoke o 'GetConstantAttributes) ) ) ) ) -1 ) (LM:ReLockLayers lck) (LM:EndUndo doc) ) ) (princ) ) ;;-----------------=={ Rotate Attributes }==------------------;; ;; ;; ;; Prompts user for a selection of attribute tag and ;; ;; selection of blocks containing such tag for which the ;; ;; change will be applied. ;; ;; ;; ;; Subsequently prompts user for a rotation angle and ;; ;; proceeds to set the rotation of all attributes of the ;; ;; selected tag within the selected blocks to the specified ;; ;; angle. ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; (defun c:roAtt ( / *error* doc asel base disp lck ss tag ) (vl-load-com) ;; © Lee Mac 2010 (defun *error* ( msg ) (if doc (LM:EndUndo doc)) (if lck (LM:ReLockLayers lck)) (if mutt (setvar 'NOMUTT mutt)) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **"))) (princ) ) (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))) (if (and (setq asel (LM:GetAttribSelection doc t)) (setq base (trans (vlax-get (setq o (car asel)) (if (and (or (not (vlax-property-available-p o 'MTextAttribute)) (eq :vlax-false (vla-get-MTextAttribute o)) ) (not (eq acAlignmentLeft (vla-get-Alignment o))) ) 'TextAlignmentPoint 'InsertionPoint ) ) 0 1 ) ) (setq disp (getangle "\nSpecify Rotation Angle: " base)) (setq disp (+ disp (angle '(0. 0. 0.) (trans (getvar 'UCSXDIR) 0 (trans '(0. 0. 1.) 1 0 t) t)))) ) (progn (LM:StartUndo doc) (setq lck (LM:UnlockLayers doc) ss (cadr asel) tag (caddr asel)) ( (lambda ( i / e o ) (while (setq e (ssname ss (setq i (1+ i)))) (mapcar (function (lambda ( attrib ) (if (eq tag (vla-get-TagString attrib)) (vla-put-rotation attrib disp) ) ) ) (append (vlax-invoke (setq o (vlax-ename->vla-object e)) 'GetAttributes) (vlax-invoke o 'GetConstantAttributes) ) ) ) ) -1 ) (LM:ReLockLayers lck) (LM:EndUndo doc) ) ) (princ) ) ;;-------------------=={ Edit Attributes }==------------------;; ;; ;; ;; Prompts user for a selection of attribute tag and ;; ;; selection of blocks containing such tag for which the ;; ;; change will be applied. ;; ;; ;; ;; Subsequently displays a dialog interface allowing the ;; ;; to change such properties as content, style, alignment, ;; ;; height, oblique angle, and rotation. Upon clicking OK ;; ;; all attributes of the selected tag within the selected ;; ;; blocks will be modified to suit the checked properties. ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; (defun c:edAtt ( / *error* LM:GetSavePath LM:WriteDCL MakeList VersionNumber doc SavePath dcfname dctitle TextStyles AlignLst asel dcTag dcFlag o ss tag e2 e4 e8 e16 e32 e64 ) (vl-load-com) ;; © Lee Mac 2010 (setq VersionNumber "1.1") (or mode (setq mode 2)) (defun *error* ( msg ) (if doc (LM:EndUndo doc)) (if lck (LM:ReLockLayers lck)) (if mutt (setvar 'NOMUTT mutt)) (if dcTag (unload_dialog dcTag)) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **"))) (princ) ) (defun LM:GetSavePath ( / tmp ) (cond ( (setq tmp (getvar 'ROAMABLEROOTPREFIX)) (or (eq "\\" (substr tmp (strlen tmp))) (setq tmp (strcat tmp "\\")) ) (strcat tmp "Support") ) ( (setq tmp (findfile "ACAD.pat")) (setq tmp (vl-filename-directory tmp)) (and (eq "\\" (substr tmp (strlen tmp))) (setq tmp (substr tmp (1- (strlen tmp)))) ) tmp ) ) ) (defun LM:WriteDCL ( filename / ofile ) (cond ( (findfile filename) ) ( (setq ofile (open filename "w")) (foreach str '( "edit5 : edit_box { edit_limit = 5; fixed_width = true; }" "pop : popup_list { width = 20; fixed_width = true; }" "" "EdAtt : dialog { key = \"dctitle\"; initial_focus = \"content\";" " spacer;" "" " : toggle { key = \"t2\" ; label = \"Content\"; }" " : edit_box { key = \"e2\" ; width = 45; fixed_width = true; }" "" " spacer;" "" " : row {" "" " : toggle { key = \"t4\" ; label = \"Style\" ; }" " : pop { key = \"e4\" ; }" "" " }" " : row {" "" " : toggle { key = \"t8\" ; label = \"Alignment\" ; }" " : pop { key = \"e8\" ; }" "" " }" " : row {" "" " : toggle { key = \"t16\"; label = \"Height\" ; }" " : edit5 { key = \"e16\"; }" "" " }" " : row {" "" " : toggle { key = \"t32\"; label = \"Oblique Angle\"; }" " : edit5 { key = \"e32\"; }" "" " }" " : row {" "" " : toggle { key = \"t64\"; label = \"Rotation\" ; }" " : edit5 { key = \"e64\"; }" "" " }" "" " spacer;" "" " ok_cancel;" "}" ) (write-line str ofile) ) (setq ofile (close ofile)) (while (not (findfile filename))) filename ) ) ) (defun MakeList ( key lst ) (start_list key) (mapcar 'add_list lst) (end_list) ) (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))) (if (not (vl-file-directory-p (setq SavePath (LM:GetSavePath)))) (progn (LM:Popup "Warning" 16 "Save Path not Valid") (exit) ) ) (setq dcfname (strcat SavePath "\\LMAC_AttMod_V" VersionNumber ".dcl") dctitle (strcat "Attribute Modification Suite V" VersionNumber ) ) (setq TextStyles (acad_strlsort (vlax-for s (vla-get-TextStyles doc) (setq TextStyles (cons (vla-get-Name s) TextStyles)) ) ) ) (setq AlignLst (list (cons "Left" acAlignmentLeft ) (cons "Center" acAlignmentCenter ) (cons "Right" acAlignmentRight ) (cons "Aligned" acAlignmentAligned ) (cons "Middle" acAlignmentMiddle ) (cons "Fit" acAlignmentFit ) (cons "Top-Left" acAlignmentTopLeft ) (cons "Top-Center" acAlignmentTopCenter ) (cons "Top-Right" acAlignmentTopRight ) (cons "Middle-Left" acAlignmentMiddleLeft ) (cons "Middle-Center" acAlignmentMiddleCenter) (cons "Middle-Right" acAlignmentMiddleRight ) (cons "Bottom-Left" acAlignmentBottomLeft ) (cons "Bottom-Center" acAlignmentBottomCenter) (cons "Bottom-Right" acAlignmentBottomRight ) ) ) (cond ( (not (LM:WriteDCL dcfname)) (LM:Popup "Warning" 16 "Dialog Definition File could not be Written") (princ "\n** DCL File Could not be Written **") ) ( (not (setq asel (LM:GetAttribSelection doc nil))) (princ "\n*Cancel*") ) ( (<= (setq dcTag (load_dialog dcfname)) 0) (LM:Popup "Warning" 16 "Dialog Definition File could not be Found") (princ "\n** DCL File could not be Found **") ) ( (not (new_dialog "EdAtt" dcTag)) (LM:Popup "Warning" 16 "Dialog could not be Loaded") (princ "\n** Dialog could not be Loaded **") ) (t (mapcar 'MakeList '("e4" "e8") (list TextStyles (mapcar 'car AlignLst))) (set_tile "dctitle" dctitle) (setq o (car asel) ss (cadr asel) tag (caddr asel)) ( (lambda ( i ) (mapcar (function (lambda ( toggle edit value ) (mode_tile edit (- 1 (atoi (set_tile toggle (if (= (setq i (lsh i 1)) (logand i mode)) "1" "0")) ) ) ) (set (read edit) (set_tile edit value)) (action_tile toggle (strcat "(setq mode ((if (eq \"1\" $value) + -) mode " (itoa i) ")) " "(mode_tile " (vl-prin1-to-string edit) " (- 1 (atoi $value)))" ) ) (action_tile edit (strcat "(setq " edit " $value)")) ) ) '("t2" "t4" "t8" "t16" "t32" "t64") '("e2" "e4" "e8" "e16" "e32" "e64") (list (vlax-get-property o 'TextString) (itoa (vl-position (vlax-get-property o 'StyleName) TextStyles)) (itoa (vl-position (vlax-get-property o 'Alignment) (mapcar 'cdr AlignLst))) (rtos (vlax-get-property o 'Height)) (angtos (vlax-get-property o 'ObliqueAngle)) (angtos (vlax-get-property o 'Rotation)) ) ) ) 1 ) (action_tile "accept" (vl-prin1-to-string (quote (progn (cond ( (not (and (setq hgt (distof e16)) (< 0 hgt))) (LM:Popup "Information" 48 "Attribute Height Must be a Positive Number!") ) ( (not (and (setq obl (angtof e32)) (<= (/ (* pi -17.) 36.) obl (/ (* pi 17.) 36.)))) (LM:Popup "Information" 48 "Oblique Angle Must be between -85 and 85 degrees") ) ( (not (setq rot (angtof e64))) (LM:Popup "Information" 48 "Attribute Rotation Must be Numerical") ) (t (setq e4 (nth (atoi e4) TextStyles) e8 (cdr (nth (atoi e8) AlignLst)) e16 hgt e32 obl e64 rot) (done_dialog 1) ) ) ) ) ) ) (setq dcFlag (start_dialog) dcTag (unload_dialog dcTag)) (if (= 1 dcFlag) ( (lambda ( i props ) (LM:StartUndo doc) (setq lck (LM:UnlockLayers doc)) (while (setq e (ssname ss (setq i (1+ i)))) (mapcar (function (lambda ( attrib ) (if (eq tag (vla-get-TagString attrib)) (mapcar (function (lambda ( prop / err tmp ) (if (eq (car prop) 'Alignment) (setq tmp (vlax-get-property attrib 'InsertionPoint)) ) (if (vl-catch-all-error-p (setq err (vl-catch-all-apply 'vlax-put-property (cons attrib prop)) ) ) (princ (strcat "\nError: " (vl-catch-all-error-message err))) ) (if (and tmp (not (eq acAlignmentLeft (cadr prop)))) (vlax-put-property attrib 'TextAlignmentPoint tmp) ) ) ) props ) ) ) ) (vlax-invoke (vlax-ename->vla-object e) 'GetAttributes) ) ) (LM:ReLockLayers lck) (LM:EndUndo doc) ) -1 ( (lambda ( j ) (vl-remove-if 'null (mapcar (function (lambda ( prop ) (if (= (setq j (lsh j 1)) (logand j mode)) (list prop (eval (read (strcat "e" (itoa j))))) ) ) ) '(TextString StyleName Alignment Height ObliqueAngle Rotation) ) ) ) 1 ) ) (princ "\n*Cancel*") ) ) ) (princ) ) ;;---------------=={ Get Attribute Selection }==--------------;; ;; ;; ;; Prompts user to select an attribute, then a selection of ;; ;; blocks containing such attribute ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; doc - a VLA Document Object ;; ;; AllowMText - Boolean flag determining whether MText ;; ;; attributed are selectable (T=Allow MText) ;; ;;------------------------------------------------------------;; ;; Returns: list of (<Attribute> <SelectionSet> <TagString>) ;; ;;------------------------------------------------------------;; (defun LM:GetAttribSelection ( doc AllowMText / e b tag o mutt ss ) (vl-load-com) ;; © Lee Mac 2010 (if (and (setq e (LM:Selectif (lambda ( x / y ) (and (eq "ATTRIB" (cdr (assoc 0 (entget x)))) (or AllowMText (not (vlax-property-available-p (setq y (vlax-ename->vla-object x)) 'MTextAttribute)) (eq :vlax-false (vla-get-MTextAttribute y)) ) ) ) nentsel "\nSelect Attribute: " ) ) (princ (strcat "\n'" (cdr (assoc 2 (entget e))) "' Selected.")) (setq b (LM:BlockName (vla-ObjectIDtoObject doc (vla-get-OwnerId (setq o (vlax-ename->vla-object e)) ) ) ) ) (setq tag (vla-get-TagString o)) (progn (setq mutt (getvar 'NOMUTT)) (setvar 'NOMUTT 1) (princ "\nSelect Blocks <All> : ") (setq ss (cond ( (ssget (list (cons 0 "INSERT") (cons 2 B) (cons 66 1))) ) ( (ssget "_X" (list (cons 0 "INSERT") (cons 2 B) (cons 66 1))) ) ) ) (setvar 'NOMUTT mutt) ss ) ) (list o ss tag) ) ) ;;--------------------=={ Start Undo }==----------------------;; ;; ;; ;; Ends any active Undo marks and starts a new Undo mark ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; doc - VLA Document Object ;; ;;------------------------------------------------------------;; (defun LM:StartUndo ( doc ) (LM:EndUndo doc) (vla-StartUndoMark doc) ) ;;---------------------=={ End Undo }==-----------------------;; ;; ;; ;; Ends any active Undo marks ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; doc - VLA Document Object ;; ;;------------------------------------------------------------;; (defun LM:EndUndo ( doc ) (if (= 8 (logand 8 (getvar 'UNDOCTL))) (vla-EndUndoMark doc) ) ) ;;------------------=={ Unlock Layers }==---------------------;; ;; ;; ;; Unlocks all layers in the supplied Document Object and ;; ;; returns a list of those which were locked ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; doc - VLA Document Object ;; ;;------------------------------------------------------------;; ;; Returns: list of previously locked VLA Layer Objects ;; ;;------------------------------------------------------------;; (defun LM:UnlockLayers ( doc / r ) (vlax-for l (vla-get-layers doc) (if (eq :vlax-true (vla-get-lock l)) (vla-put-lock (car (setq r (cons l r))) :vlax-false) ) ) (reverse r) ) ;;-------------------=={ ReLock Layers }==--------------------;; ;; ;; ;; Locks all layers in the supplied list ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; lst - list of VLA Layer Objects ;; ;;------------------------------------------------------------;; (defun LM:ReLockLayers ( lst ) (mapcar '(lambda ( l ) (vla-put-lock l :vlax-true)) lst) ) ;;-----------------------=={ Popup }==------------------------;; ;; ;; ;; Displays a customisable message box dialog ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; title - title for the popup ;; ;; flags - bit flags determining the appearance of the popup ;; ;; msg - message to be displayed in the popup dialog ;; ;;------------------------------------------------------------;; (defun LM:Popup ( title flags msg / WSHShell result ) ;; © Lee Mac 2010 (setq WSHShell (vlax-create-object "WScript.Shell")) (setq result (vlax-invoke WSHShell 'Popup msg 0 title flags)) (vlax-release-object WSHShell) result ) ;;---------------------=={ Select if }==----------------------;; ;; ;; ;; Continuous selection prompts until the predicate function ;; ;; foo is validated ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2010 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; foo - optional predicate function taking ename argument ;; ;; fun - selection function to invoke ;; ;; str - prompt string ;; ;;------------------------------------------------------------;; ;; Returns: selected entity ename if successful, else nil ;; ;;------------------------------------------------------------;; (defun LM:Selectif ( foo fun str / e ) ;; © Lee Mac 2010 (while (progn (setvar 'ERRNO 0) (setq e (car (fun str))) (cond ( (= 7 (getvar 'ERRNO)) (princ "\n** Missed, Try again **") ) ( (eq 'ENAME (type e)) (if (and foo (not (foo e))) (princ "\n** Invalid Object Selected **") ) ) ) ) ) e ) ;;--------------------=={ Block Name }==----------------------;; ;; ;; ;; Returns the name of a block as found in the block ;; ;; definition. ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; obj - VLA Block Reference Object ;; ;;------------------------------------------------------------;; ;; Returns: block name, (effective if available) ;; ;;------------------------------------------------------------;; (defun LM:BlockName ( obj ) (vlax-get-property obj (if (vlax-property-available-p obj 'EffectiveName) 'EffectiveName 'Name ) ) ) (princ "\n:: Attribute Modification Suite | Copyright © 2010 by Lee McDonnell ::") (princ "\n:: Type \"mvAtt\", \"roAtt\" or \"edAtt\" to Invoke ::\n") (princ) " je pense que cela peux t'aider. Cordialement AHG
  23. ahbv

    Emplacement des xRef "externes"

    Salut Grandss, Le formateur MEP nous a apprit à placer les xref archi sous "éléments" (ce sont des plans rapportés de l'extérieur normalement ces plans seront consultés/référencés dans les plans techniques "constructions") et nos plans techniques sous "constructions" (et donc toutes les présentations sous "feuilles"). Cordialement AHG
  24. Merci patrick_35, je vais testé. Meilleures salutations AHG
  25. Salut à tous, très sympa ce petit lisp, comment faire si on veut sélectionner/filtrer plusieurs noms de blocs ? peut on utiliser des caractères génériques "*" , "??" ? Merci d'avance AHG
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité