Dilack33 Posté(e) le 28 avril 2024 Posté(e) le 28 avril 2024 Bonjour, je suis à la recherche d'une solution qui me permettrait de récupérer le nom du type de ligne d'une polyligne et l’intégrer à un texte existant en supprimer les caractères dudit texte existant. Merci d'avance pour votre aide. Citer
rebcao Posté(e) le 29 avril 2024 Posté(e) le 29 avril 2024 Bonjour, Pas sur d'avoir tout compris ? Mais tu peux utiliser le CHAMP OBJET et choisir la PROPRIETE type de ligne de l'objet avec la commande _FIELD. Christian 1 Citer Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Olivier Eckmann Posté(e) le 29 avril 2024 Posté(e) le 29 avril 2024 Essaie avec ça (defun C:UpdTxt ( / oPoly oPolyDxf oText oTextDxf oLineType) (while (and (setq oPoly (car (entsel "\nSélectionner la polyligne :"))) (= "LWPOLYLINE" (cdr (assoc 0 (setq oPolyDxf (entget oPoly))))) (setq oText (car (entsel "\nSélectionner le texte :"))) (= "TEXT" (cdr (assoc 0 (setq oTextDxf (entget oText))))) ) (if (assoc 6 oPolyDxf) (setq oLineType (cdr (assoc 6 oPolyDxf))) (setq oLineType (cdr (assoc 6 (tblsearch "LAYER" (cdr (assoc 8 oPolyDxf)))))) ) (entmod (subst (cons 1 oLineType) (assoc 1 oTextDxf) oTextDxf)) ) ) Olivier Citer
Dilack33 Posté(e) le 29 avril 2024 Auteur Posté(e) le 29 avril 2024 Bonjour Christian, Suivant la capture, j'ai une multitude de polylignes avec différents type de ligne et j'aimerais récupérer le nom du type de ligne sous forme de texte. Citer
Dilack33 Posté(e) le 29 avril 2024 Auteur Posté(e) le 29 avril 2024 Bonjour olivier, ça fonctionne pas, j'ai un message d'erreur "nil" après la sélection de la polyligne. Citer
Olivier Eckmann Posté(e) le 29 avril 2024 Posté(e) le 29 avril 2024 Un petit bout de DWG pour être sûr que c'est bien un objet LWPOLYLINE et un texte ligne et pas un texte multiligne Olivier Citer
Dilack33 Posté(e) le 29 avril 2024 Auteur Posté(e) le 29 avril 2024 Ci joint le dwg PJX_BASE_ACAD.dwg Citer
Olivier Eckmann Posté(e) le 29 avril 2024 Posté(e) le 29 avril 2024 Effectivement, ce sont des polyligne 2D (ancienne génération) et pas des polylignes LW. Soit tu les convertis avec la commande CONVERT, soit tu utilises le code modifié ci-dessous (defun C:UpdTxt ( / oPoly oPolyDxf sTypeObj oText oTextDxf oLineType) (while (and (setq oPoly (car (entsel "\nSélectionner la polyligne :"))) (setq sTypeObj (cdr (assoc 0 (setq oPolyDxf (entget oPoly))))) (or (= "LWPOLYLINE" sTypeObj) (= "POLYLINE" sTypeObj)) (setq oText (car (entsel "\nSélectionner le texte :"))) (= "TEXT" (cdr (assoc 0 (setq oTextDxf (entget oText))))) ) (if (assoc 6 oPolyDxf) (setq oLineType (cdr (assoc 6 oPolyDxf))) (setq oLineType (cdr (assoc 6 (tblsearch "LAYER" (cdr (assoc 8 oPolyDxf)))))) ) (entmod (subst (cons 1 oLineType) (assoc 1 oTextDxf) oTextDxf)) ) ) Olivier Citer
Dilack33 Posté(e) le 29 avril 2024 Auteur Posté(e) le 29 avril 2024 Merci Olivier, la deuxième solution fonctionne. Citer
Messages recommandés