Zeberb Posté(e) le 20 juin 2016 Posté(e) le 20 juin 2016 Bonjour à tous Je cherche à dessiner, l'une en dessous de l'autre, une ligne pour chacun des calques de mon DWG (comme lorsque l'on crée une légende). Qq'un a t'il déjà vu une routine capable de cela? merci Citer
GJulien Posté(e) le 20 juin 2016 Posté(e) le 20 juin 2016 Bonjour, A mon grand avis ceci pourrait être amélioré mais je pense que ça pourrait t'aider à faire ce que tu souhaite. (vl-load-com) (defun c:LLINE (/ ACADDOC bY eY ePoint bPoint) (setq ACADDOC (vla-get-activedocument (vlax-get-acad-object))) (setq bY 0.0 eY 0.0 bPoint (list 0.0 bY 0.0) ePoint (list 50.0 eY 0.0) ) (vlax-for temp (vla-get-layers ACADDOC) (vla-put-activelayer ACADDOC temp) (vl-cmdf "_LINE" bPoint ePoint "") (setq bY (+ bY 2.0) eY (+ eY 2.0) bPoint (list 0.0 bY 0.0) ePoint (list 50.0 eY 0.0)) ) ) Cordialement, Citer
Zeberb Posté(e) le 20 juin 2016 Auteur Posté(e) le 20 juin 2016 Génial! Ce serait parfait avec le nom du calque juste à côté. Citer
didier Posté(e) le 20 juin 2016 Posté(e) le 20 juin 2016 Coucou En AutoLisp : idem, c'est simplifiable et ajustable mais c'est un bon squelette de codeSi tu veux apprendre évite le copier-coller et regarde l'aide de chaque commande... (setq calq (list (cdr (assoc 2 (tblnext "LAYER" T))))) (while (setq tempo (tblnext "LAYER")) (setq calq (append (list (cdr (assoc 2 tempo))) calq))) (setq calq (reverse calq)) (setq ydep 0 n 0) (repeat (length calq) (setq calquedessin (cons 8 (nth n calq)) pdep (cons 10 (list 0 ydep 0)) pfin (cons 11 (list 50 ydep 0)) texdeb (cons 10 (list 50 ydep 0)) tex (cons 1 (strcat "Calque : " (cdr calquedessin))) ) (entmake (list (cons 0 "LINE") (cons 6 "BYLAYER") calquedessin pdep pfin (cons 39 0.0) (cons 62 256) (cons 210 (list 0.0 0.0 1.0))) ) (entmake (list (cons 0 "TEXT") tex (cons 6 "BYLAYER") (cons 7 "STANDARD") calquedessin texdeb pfin (cons 39 0.0) (cons 40 1.0) (cons 41 1.0) (cons 50 0.0) (cons 51 0.0) (cons 62 256) (cons 71 0) (cons 72 0) (cons 73 0) (cons 210 (list 0.0 0.0 1.0))) ) (setq n (+ 1 n) ydep (+ 10 ydep) ) ) Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Zeberb Posté(e) le 21 juin 2016 Auteur Posté(e) le 21 juin 2016 Je vous remercie chaleureusement.J'ai tellement rarement besoin de routines LISP qu'il m'est difficile de trouver le temps et l'intérêt d'apprendre. Mais je comprends. C'est vraiment pratique. Citer
Zeberb Posté(e) le 21 juin 2016 Auteur Posté(e) le 21 juin 2016 Question: Pourquoi le tout n'est pas classé par ordre alphabétique des calques? Merci d'avance. Citer
GJulien Posté(e) le 21 juin 2016 Posté(e) le 21 juin 2016 Bonjour, Pour les avoir en ordre alphabétique, je me permet de reprendre le lisp de Didier, il te suffit de changer en début de lisp (setq calq (reverse calq)) par (setq calq (acad_strlsort calq)) Avec celui que je t'ai envoyé, je ne saurais pas dire comment mettre en ordre alphabétique, il faut que je fasse des recherches ^^ Cordialement, Citer
didier Posté(e) le 21 juin 2016 Posté(e) le 21 juin 2016 Coucou Ben non !!... surtout parce que ce n'était pas demandé, non on a fait ce que tu nous a demandé. Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
didier Posté(e) le 21 juin 2016 Posté(e) le 21 juin 2016 Coucou Allez ! c'est un jour de bonté, je suis tellement gentil que j'en oublie que je suis mégalo (hihi) Pour ranger dans l'ordre croissant la liste des calques il faut que tu modifies la ligne 4 par celle-ci :(setq calq (vl-sort (reverse calq) '<)) Amicalement 1 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Zeberb Posté(e) le 21 juin 2016 Auteur Posté(e) le 21 juin 2016 Merci beaucoup à tous les deux. :D Citer
didier Posté(e) le 21 juin 2016 Posté(e) le 21 juin 2016 Coucou La prochaine demande sera sans doute de ne dessiner que les lignes des calques actifs, me trompé-je ? Allez ! je souhaite qu'on t'a tout de même dépatouillé. Amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Zeberb Posté(e) le 21 juin 2016 Auteur Posté(e) le 21 juin 2016 Non, Non, tout est bien comme cela. Merci Citer
didier Posté(e) le 21 juin 2016 Posté(e) le 21 juin 2016 Coucou Bon alors on va dire que j'ai persiflé (hihi)Content d'avoir participé au fait de t'avoir aidé Amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Messages recommandés