Aller au contenu

TEXTE ALIGNE POLYLIGNE


Loran81

Messages recommandés

Re,

Est il possible de faire varier mon attribut (longueur) automatiquement en fonction de la longueur de ma polyligne.

 

C'est ce que fait l'exemple joint,..(J'ai mis un champ "longueur" dans l'attribut)

 

Après tu peux rajouter d'autres champs ou attributs, ou textes,...

 

Ouvre mon bloc dans l'éditeur, tu comprendras mieux,...

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Salut Lilian

J'ai essayé ton bloc,mais j'aimerai en fait d’après un semi de points (regards) représentant ma cana pouvoir relier par une polyligne ces points (regards) et que je puisse avoir mon texte qui m'indique directement la longueur entre mes regards et qu'il soit parallèle a ma polyligne.

Merci encore pour ton aide

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Si tu es multi-segments et/ou multi-arcs sur ta polyligne entre 2 regards/tampons

le boulot risque d'etre long !

 

L'excellente routine "SEGLEN" de notre indispensable Gilles

ecrit un texte simple (non associatif a la longueur)

le long de chaque segment ou arc des Polylignes

avec possibilite d'ajouter un prefixe et/ou un suffixe

+ forcage du sens de lecture si necessaire ...

 

En resume MERCI Gilles, j'adore cette routine !

 

lecrabe

SEGLEN__300.zip

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

L'excellente routine "SEGLEN" de notre indispensable Gilles

Bonjour,

Je ne connaisais pas cette routine, merci lecrabe et surtout merci gile

Il manque plus que les flèches sur les sommets et by by la cotation :P ;) :D

Studio Gfilm - Agence de communication par l'image

 

"Le matin tu peux rester couché pour poursuivre ton rêve, ou te lever pour le réaliser"

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...
mais comment faire pour n'inscrire que la longueur totale de l'élément?

 

Avec un champ dynamique.

On peut automatiser s'il y en a plusieurs à faire.

 

(vl-load-com)
(defun c:Label_Side_Length ( / js htx AcDoc Space n obj ename pr pt deriv rtx nw_obj)
 (princ "\nSélectionnez des polylignes: ")
 (setq js
   (ssget
     (list
       (cons -4 "<AND")
         (cons 0 "*POLYLINE,LINE")
         (cons -4 "<NOT")
           (cons -4 "&") (cons 70 112)
         (cons -4 "NOT>")
         (cons 67 (if (eq (getvar "CVPORT") 1) 1 0))
         (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model"))
       (cons -4 "AND>")
     )
   )
 )
 (cond
   (js
     (initget 6)
     (setq htx (getdist (getvar "VIEWCTR") (strcat "\nSpécifiez la hauteur du texte <" (rtos (getvar "TEXTSIZE")) ">: ")))
     (if htx (setvar "TEXTSIZE" htx))
     (setq
       AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
       Space
       (if (= 1 (getvar "CVPORT"))
         (vla-get-PaperSpace AcDoc)
         (vla-get-ModelSpace AcDoc)
       )
     )
     (cond
       ((null (tblsearch "LAYER" "Label Longueur"))
         (vlax-put (vla-add (vla-get-layers AcDoc) "Label Longueur") 'color 96)
       )
     )
     (repeat (setq n (sslength js))
       (setq
         obj (ssname js (setq n (1- n)))
         ename (vlax-ename->vla-object obj)
         pr (* 0.5 (vlax-curve-getEndParam ename))
         pt (vlax-curve-GetpointAtParam ename pr)
         deriv (vlax-curve-getFirstDeriv ename pr)
         rtx (- (atan (cadr deriv) (car deriv)) (angle '(0 0 0) (getvar "UCSXDIR")))
       )
       (if (or (> rtx (* pi 0.5)) (< rtx (- (* pi 0.5)))) (setq rtx (+ rtx pi)))
       (setq nw_obj
         (vla-addMtext Space
           (vlax-3d-point (setq pt (polar pt (+ rtx (* pi 0.5)) (getvar "TEXTSIZE"))))
           0.0
           (strcat
             "{\\fArial|b0|i0|c0|p34;"
             "%<\\AcObjProp Object(%<\\_ObjId "
             (itoa (vla-get-ObjectID (vlax-ename->vla-object obj)))
             ">%).Length \\f \"%lu2%pr2\">%"
           )
         )
       )
       (mapcar
         '(lambda (pr val)
           (vlax-put nw_obj pr val)
         )
         (list 'AttachmentPoint 'Height 'DrawingDirection 'InsertionPoint 'StyleName 'Layer 'Rotation 'BackgroundFill)
         (list 5 (getvar "TEXTSIZE") 5 pt "Standard" "Label Longueur" rtx 0)
       )
     )
   )
 )
 (prin1)
)

 

Si tu ne veux pas conserver les liens dynamiques (gourmands en ressources), tu explose le résultat pour obtenir des textes classiques.

Modifié par bonuscad

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

mais serait-il possible de l'adapter pour qu'elle fonctionne aussi pour les polylignes 3D ?

 

Les polylignes 3D ayant aussi la propriété "Length", il suffit d'étendre le filtre à celles-ci.

 

J'ai modifié le code précédent.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é