Dilack33 Posté(e) le 28 avril Posté(e) le 28 avril 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 Posté(e) le 29 avril 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 Posté(e) le 29 avril 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 Auteur Posté(e) le 29 avril 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 Auteur Posté(e) le 29 avril 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 Posté(e) le 29 avril 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
Olivier Eckmann Posté(e) le 29 avril Posté(e) le 29 avril 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 Auteur Posté(e) le 29 avril Merci Olivier, la deuxième solution fonctionne. Citer
Messages recommandés