Aller au contenu

TEXTE ALIGNE POLYLIGNE


Messages recommandés

Posté(e)

Bonjour,

Est il possible d'aligner un texte en conservant toujours le même écart entre mon texte et ma polyligne.

Dans mon cas il s'agit de renseigner un réseau nature diamètre longueur pente.

Merci a tous

Posté(e)

Lilian,

Je dois créer un bloc polyligne et ensuite un attribut pour la longueur?

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

Merci a toi

Posté(e)

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 2025 - COVADIS_18.3c

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

Posté(e)

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

Posté(e)

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

 

Autodesk Expert Elite Team

  • 4 semaines après...
Posté(e)

Bonjour,

 

J'utilise le lisp seglen__300 (Merci à Giles :) ), mais comment faire pour n'inscrire que la longueur totale de l'élément?

 

Merci

 

Karmélie

Posté(e) (modifié)
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

Posté(e)

Bonjour à tous.

 

Merci Bonuscad Label_Side_Length fonctionne très bien, mais serait-il possible de l'adapter pour qu'elle fonctionne aussi pour les polylignes 3D ?

Si ce n'est pas trop demander :huh:

Posté(e)
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

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é