rrobert Posté(e) le 9 mars 2021 Posté(e) le 9 mars 2021 Autocad 2021. Bonjour, N'ayant pas trouvé de sujet répondant à ma question, je lance un nouveau topic. Voilà, j'utilise beaucoup de splines dans mes plans, et j'ai besoin de leur donner une certaine largeur en fonction du type de réseau qu'elles représentent. J'ai également besoin de connaître leur longueur. Ne pouvant donner une largeur globale à une spline, je dessine une polyligne, puis, via la commande pedit, je la transforme en spline. Cela me génère donc une polyligne 2D de forme courbée dont je peux mesurer la longueur et changer la largeur.Jusqu'ici tout va bien. Je précise bien : la courbe obtenue via pedit est une polyligne 2D. Sauf que j'ai besoin de sommer la longueur des courbes, et les Lisps que j'ai essayés (je suis complètement débutant sur les Lisps) ne détectent pas les polylignes 2D. Splines et polylignes se mesurent sans souci, mais les polylignes 2D me retournent soit une valeur erronée, soit une valeur nulle... Je vous ai joint les deux Lisps testés. Existe-t-il un Lisp détectant les polylignes 2D? Ou un type de spline dont on peut connaitre la longueur et modifier l'épaisseur? Pour info, j'ai essayé la commande convert, sans résultat, j'ai toujours une polyligne 2D... Je vous remercie pour votre aide, Rémitlen.lsplongt.lsp Citer
lecrabe Posté(e) le 9 mars 2021 Posté(e) le 9 mars 2021 Hello Voir la routine TLENGTH de Kent1Cooper ... Et si tu veux un resultat sur l ecran texte (F2) pour faire un copier / coller "facile" du resultat !?alors tu remplaces la ligne : (alert ...par ceci : (princ (strcat "Total Length of selected objects is " (rtos tl))) La Sante, Bye, lecrabe "fatigue" ;; ;; http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/new-tlen-lsp-for-polylines/m-p/2794184#M292300 ;; ;; Routine: TLength from Kent1Cooper ;; (vl-load-com) (defun C:TLENGTH (/ ss tl ent) (setq ss (ssget '((0 . "LINE,ARC,CIRCLE,*POLYLINE,SPLINE,ELLIPSE"))) tl 0 ); end setq (repeat (sslength ss) (setq ent (ssname ss 0) tl (+ tl (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent)) ); end + & tl ); end setq (ssdel ent ss) ); end repeat (alert (strcat "Total Length of selected objects is " (rtos tl))) (princ) ); end defun Citer Autodesk Expert Elite Team
Messages recommandés