richard-c Posté(e) le 26 septembre 2007 Posté(e) le 26 septembre 2007 (re)bonjour, je cherche un petit lisp qui pourrait mesurer chaque segment d'une LWPOLYLIGNE ou d'une polyligne 2D ou d'une ligne et qui mettrait la distance au milieu de chaque segment (choix de la hauteur du texte)ceci pour faire des triangulations rapides le pied serait qu'il mesure le dévelopement des arcs des polylignes et non les cordes (mais la, j'en demande peut être un peut trop) Je suis (encore) sur AutoCAD V2002, hé oui, il y en a encore. Bonne journée. A+
Bred Posté(e) le 26 septembre 2007 Posté(e) le 26 septembre 2007 Salut,Je pense que ce lisp de (gile) répondras en partie à ta question. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
richard-c Posté(e) le 26 septembre 2007 Auteur Posté(e) le 26 septembre 2007 D'accord pour ce programme, mais ce que j'aimerais, c'est la distance de chaque segment composant la LWPOLYLIGNE ou la polyligne 2D merci A+
(gile) Posté(e) le 26 septembre 2007 Posté(e) le 26 septembre 2007 Salut, Un petit truc vite fait (defun c:seglen (/ ss ht n ent len pa) (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object))) (if (and (setq ss (ssget '((-4 . "[b] (0 . "LINE") (-4 . "[b] (0 . "*POLYLINE") (-4 . "[b] (-4 . "&") (70 . 112) (-4 . "NOT>") (-4 . "AND>") (-4 . "OR>") ) ) ) ( (setq ht (getdist "\nSpécifiez la hauteur de texte: ")) ) ) (progn (vla-StartUndoMark acdoc) (repeat (setq n (sslength ss)) (setq ent (ssname ss (setq n (1- n)))) (if (= "LINE" (cdr (assoc 0 (entget ent)))) (progn (setq len (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent) ) ) (vla-addText (vla-get-ModelSpace acdoc) (rtos len) (vlax-3d-point (vlax-curve-getPointAtDist ent (/ len 2.0)) ) ht ) ) (repeat (setq pa (fix (vlax-curve-getEndParam ent))) (setq len (- (vlax-curve-getDistAtParam ent pa) (vlax-curve-getDistAtParam ent (setq pa (1- pa))) ) ) (vla-addText (vla-get-ModelSpace acdoc) (rtos len) (vlax-3d-point (vlax-curve-getPointAtparam ent (+ pa 0.5)) ) ht ) ) ) ) (vla-EndUndoMark acdoc) ) ) (princ) ) [Edité le 26/9/2007 par (gile)] [Edité le 26/9/2007 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
richard-c Posté(e) le 26 septembre 2007 Auteur Posté(e) le 26 septembre 2007 voila le message d'erreur [surligneur] erreur: cdrs supplémentaire dans la paire pointée en entrée[/surligneur]
(gile) Posté(e) le 26 septembre 2007 Posté(e) le 26 septembre 2007 Oupss ! J'avais encore oublié de trafficoter les " [Edité le 26/9/2007 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
richard-c Posté(e) le 26 septembre 2007 Auteur Posté(e) le 26 septembre 2007 Super (gile) le papy te remercie A+
(gile) Posté(e) le 26 septembre 2007 Posté(e) le 26 septembre 2007 De rien, Je viens de corriger une erreur dans la routine : le groupe undo n'était pas refermé à la fin de la routine, ce qui peut provoquer une erreur fatale en cas d'annulations multples. Charge plutôt cette dernière version corrigée. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant