Aller au contenu

Messages recommandés

Posté(e)

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émi

tlen.lsp

longt.lsp

Posté(e)

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

Autodesk Expert Elite Team

  • 2 semaines après...
Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é