DenisHen Posté(e) le 20 octobre 2006 Posté(e) le 20 octobre 2006 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)
zebulon_ Posté(e) le 20 octobre 2006 Posté(e) le 20 octobre 2006 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)
fabcad Posté(e) le 20 octobre 2006 Posté(e) le 20 octobre 2006 Et pourquoi pas un bloc avec attributs ? Le T= en objet texte et la valeur avec un attribut.Tampon = valeur fabcad
DenisHen Posté(e) le 20 octobre 2006 Auteur Posté(e) le 20 octobre 2006 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)
DenisHen Posté(e) le 20 octobre 2006 Auteur Posté(e) le 20 octobre 2006 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)
zebulon_ Posté(e) le 20 octobre 2006 Posté(e) le 20 octobre 2006 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)
(gile) Posté(e) le 20 octobre 2006 Posté(e) le 20 octobre 2006 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
DenisHen Posté(e) le 20 octobre 2006 Auteur Posté(e) le 20 octobre 2006 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)
DenisHen Posté(e) le 20 octobre 2006 Auteur Posté(e) le 20 octobre 2006 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)
(gile) Posté(e) le 20 octobre 2006 Posté(e) le 20 octobre 2006 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
DenisHen Posté(e) le 20 octobre 2006 Auteur Posté(e) le 20 octobre 2006 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)
didier Posté(e) le 20 octobre 2006 Posté(e) le 20 octobre 2006 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 à renseignerpar exemple "T=" signifie Tamponensuite la valeur de l'altitude de ce dernier.astuce en passant, au moment de ATTDEFsignifier le point d'insertion du TEXTE à droiteet à 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 Éternel débutant... Mon site perso : Programmer dans AutoCAD
(gile) Posté(e) le 20 octobre 2006 Posté(e) le 20 octobre 2006 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
DenisHen Posté(e) le 20 octobre 2006 Auteur Posté(e) le 20 octobre 2006 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)
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant