Aller au contenu

Sélection de texte pour modification


Messages recommandés

Posté(e)

Bonjour à tous...

 

Voilà, je cherche à "modifier" un texte en cliquant dessus, exemple :

 

Je clique sur un texte "124.36" et je lui rajoute un préfixe pour avoir "T=124.36"...

 

J'aimerai automatiser ce "T="

 

J'aimerai quelques conseils ou quelques astuces... Car il va falloir manipuler des ssget..... Et je ne les connais absolument pas, enfin... pas encore...

 

Merci,

 

Denis...

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)

Posté(e)

bonjour,

 

Quelque chose comme ça ?

 

(defun c:prefixe (/ ss PREF I ETX IDX NEWIDX)
 (setq ss (ssget '((0 . "*TEXT"))))
 (if ss
   (progn
     (setq PREF "T=")
     (setq I 0)
     (while (< I (sslength ss))
       (setq ETX (entget (ssname ss I)))
       (setq IDX (cdr (assoc 1 ETX)))
       (setq NEWIDX (strcat PREF IDX))
       (setq ETX
         (subst (cons 1 NEWIDX) (assoc 1 ETX) ETX)
       )
       (entmod ETX)
       (setq I (+ I 1))
     )
   )
 )
 (princ)
)

 

Amicalement

 

Zebulon_

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Posté(e)

fabcad :

Et pourquoi pas un bloc avec attributs ?

 

Parceque ce sont des altitudes, qu'il y en a parfois des centaines et qu'il faut les orienter selon l'entité qu'il cote, et que surtout :

 

95% sont sans préfix et que les 5% qui restent sont partagés entre "T=" "R=" "F=" "F et R="

On peut même avoir "Repère=" ou "Clou="....

 

Ont peut aussi avoir dans une coupe par exemple : "Plf="

 

C'est pour cela que je pense à un préfixe à un texte...

 

Pas toit ? Toute hypothèse est la bienvenue...

 

Zebulon_ :

 

Je regarde ça cette après-midi...

 

Merci à tous,

 

Denis...

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)

Posté(e)

Zebulon_

 

Merci, c'est exactement ce dont j'avais besoin...

 

Pile Poil ! !

 

Denis...

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)

Posté(e)

Hé Denis, il va falloir que tu changes bientôt de forum. A l'allure à laquelle tu progresses ces deniers jours, "Débuter en LISP" n'est plus un endroit pour toi :)

 

Amicalement

 

Zebulon_

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Posté(e)

Salut,

 

Une autre manière, un peu plus concise (et peut-être moins facile à comprendre) :

 

(defun c:pref (/ ss)
 (if (setq ss (ssget '((0 . "*TEXT"))))
   (foreach txt
     (mapcar 'entget
	     (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
     )
     (entmod (subst (cons 1 (strcat "T=" (cdr (assoc 1 txt))))
	     (assoc 1 txt)
	     txt
      )
     )
   )
 )
 (princ)
) 

 

[Edité le 20/10/2006 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Merci zebulon_...

 

Je n'ai jamais appris...(problème de mémoire). Heureusement, dès que je comprend, dès que le "déclic" a eut lieu, c'est bon, je pourrais toujours recomprendre plus tard...

 

L'inconvéniant, c'est que je peux perdre un temps fou avant de comprendre...

 

Pour la manipulation des listes... Ca commence à venir... Mais le chemin est encore long...

 

La prochaine étape, c'est la liste "DXF" des entités... Comme ce que tu m'as écris dans ta routine... Mais il y a encore trop de truc que je ne maitrise pas, mais que j'utilise par des "copier/coller" dans mes routines... Comme les (ssget '((0 . "*TEXT"))))... les (entget, les (ssname et alors encore moins les (assoc, (subst, (cons, (entmod. Mais je lis et relis l'Aide aux développeurs....

 

Pour (gile), je regarde ta routine avec les (vl-* (comme dans Gile.lsp ;) )

 

Je regarde et m'entraine...

 

Merci encore à tous,

 

Denis...

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)

Posté(e)

Oh lalalala ! ! ! :o (gile) :o ! ! ! Il a pas déclaré une variable ! ! ! ! :o

 

(defun c:pref (/ ss txt)

J'ai bien appris ma leçon t'as vu ? ;)

 

Merci pour ce code.... Mais la vache ! ! C'est du concentré ! ! Waow

 

Denis...

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)

Posté(e)

Dans ce code txt n'est pas une variable :

pas de (setq txt ...) et si après l'exécution du code tu interroges txt (!txt à la ligne dommande) tu auras nil.

 

(foreach txt une_liste ...) récupère dans txt les valeurs de chaque élément de la liste mais à la fin de l'expression txt est "vide".

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Pfffff ! ! !

 

Tu es comme ma femme... Toujours le dernier mot ! ! :casstet:

 

Arh... Il est si bon de rire parfois... ;)

 

Donc, on ne déclare que les variable qu'on affectera avec (setq et qu'on ne veux pas utiliser ailleurs (dans d'autres routines) ?

 

Denis...

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)

Posté(e)

coucou,

 

Je crois que je vais prendre le rôle de rabat-joie,

mais je suis habitué.

si tu rentres de l'alpha dans une valeur numérique,

tu t'interdis, sauf manip fastidieuse de "jouer" avec les valeurs numériques.

la solution du bloc avec attributs est la plus plaisante en l'occurence,

un attribut du Type de l'ouvrage à renseigner

par exemple "T=" signifie Tampon

ensuite la valeur de l'altitude de ce dernier.

astuce en passant, au moment de ATTDEF

signifier le point d'insertion du TEXTE à droite

et à gauche pour la VALEUR NUMERIQUE,

à l'écran, au tracé on croit à une chaîne de texte,

mais différence non négligeable ce n'est pas du simple texte,

donc on fait facilement des listings,

on remonte ses tampons de 20 centimètres d'un simple clic etc,etc...

 

encore une fois, je commence à radoter,

il faut PENSER informatique et arrêter de FAIRE du papier.

 

amicalement

 

Posté(e)

Donc, on ne déclare que les variable qu'on affectera avec (setq et qu'on ne veux pas utiliser ailleurs (dans d'autres routines) ?

 

Exact, et on n'utilisera les variables globales avec parcimonie, par exmple pour conserver une valeur par défaut entre deux lancement d'une routine. Une convention veut que les variables globales aient des nom du type : *NomDeLaVariable* entre deux astérisques.

 

Je te renvois à ce message

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Oui....

 

Mais j'ai des problèmes de mémoire... ;)

 

Ben si c'est vrai... :o

 

Denis...

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)

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é