Aller au contenu

[Résolu] Sélection de plusieurs textes dans une XRef


DenisHen

Messages recommandés

Bonjour à tous.

 

Voilà, aujourd'hui, je cherche à sélectionner plusieurs textes dans une XRef pour n'en faire qu'un seul (entrecoupé d'espace).

 

Je pense que c'est là qu'il me faudrait un nentsel, mais je ne trouve pas grand chose dessus...

 

Si quelqu'un a une astuce, une idée... Je suis preneur...

 

J'ai commencé à écrire ça, si ça peut aider...:

;;; **************************************
;;; Import d'un ou plusieurs textes issus 
;;;       d'un bloc ou d'une XRef         
;;; **************************************
(defun c:ImportTxt (/ ssTxt SomTxt Rot Coord etx doc)
 (princ "\nDéveloppé par Denis H. (vers.1.0)")
;;; Active le début de l'undo
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startundomark doc)
 (setq ss (ssget "_:S"))
 (if ss
   (progn (setq i 0)
          (while (< i (sslength ss))
            (setq etx (entget (ssname ss i)))
            (setq ssTxt (cdr (assoc 1 etx)))
            (setq Rot (cdr (assoc 50 etx)))
            (setq SomTxt (strcat SomTxt " " ssTxt))
            (setq Coord (cdr (assoc 10 etx)))
            (setq i (+ i 1))
          ) ;_ Fin:while
   ) ;_ Fin:progn
 ) ;_ Fin:if
 (setq SomTxt (vl-string-left-trim " " (vl-string-right-trim " " SomTxt)))
 ;;; Partie en cours de développement...
 (command "texte" "j" "mc" "_non" Coord (angtos Rot) SomTxt)
 (command "_move" "_last" "" "_non" Coord pause)
;;; Désctive l'undo
 (vla-EndUndoMark doc)
 (princ)
) ;_ Fin de defun

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Salut Denis

 

Essaye ceci

(entget (car (nentsel)))

 

Et si tu ne souhaites pas sélectionner les textes du xref, il reste plus qu'a faire une boucle pour analyser le xref afin de retrouver les textes.

 

ps : Dans autocad, xref = bloc que l'on retrouve dans la table des blocs.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Salut Denis

D'abord une remarque:(ssget "_:S") est pour une sélection d'un objet UNIQUE (_Single), donc pas la peine d'essayer de faire une boucle: (sslength) sera au mieux égal à 1 ou nil.

Voici un exemple de boucle que je ferais

((lambda ( / concatxt n_ent dxf_ent val_txt)
(setq concatxt "")
(while (setq n_ent (nentsel "\nChoix d'un texte imbriqué: "))
	(cond
		((member (cdr (assoc 0 (setq dxf_ent (entget (car n_ent))))) '("MTEXT" "TEXT"))
			(setq val_txt (cdr (assoc 1 dxf_ent)))
			(setq concatxt (strcat concatxt " " val_txt))
		)
		(T (princ "\nN'est pas un texte!"))
	)
)
(print concatxt)
(prin1)
))

Je te laisse compléter à ta guise.

 

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

Salut à vous, et merci pour votre aide...

 

Patrick_35 : je me doutais bien qu'un nentsel serait présent...

 

Bonuscad : pour la méthode de sélection, j'y ai pensé hier soir dans la bagnole, en rentrant chez moi...

 

Encore merci à vous...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é