nen Posté(e) le 21 août 2023 Posté(e) le 21 août 2023 Bonjour le forum, J'aimerais solliciter vos connaissances sur deux points. Tout d'abord, j'utilise actuellement un lisp "RENAMETAG" de Gile qui fonctionne très bien, mais je me demande s'il serait envisageable de l'améliorer. Actuellement, ce lisp me demande à la fois l'ancienne et la nouvelle étiquette. Cependant, dans la plupart des cas, mes blocs possèdent trois ou quatre attributs, ce qui nécessite entre 6 et 8 opérations de copier/coller. Serait-il envisageable d'ajouter directement ces informations dans le lisp et de simplement sélectionner les blocs concernés ? Ensuite, en ce qui concerne le lisp "CATP" de "Patrick_35", je me demandais s'il serait possible d'ajouter une fonctionnalité de sélection à la volée. Cela éviterait d'avoir à le retaper la commande à chaque utilisation. Je vous remercie d'avance pour vos suggestions et vos idées. CatP.lsp RENAMETAG.lsp
Luna Posté(e) le 28 août 2023 Posté(e) le 28 août 2023 Coucou, Ceci n'est pas une amélioration mais une adaptation spécifique à ton besoin 😜 Essaye ceci (je ne l'ai pas testé) : (defun c:RENAMETAGNEN (/ lst old new ss) (vl-load-com) (or *acad* (setq *acad* (vlax-get-acad-object))) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*))) (setq lst '(("XXXXXXXXXXXXXX" . "DESIGNATION") ("XX-X-XXXX" . "NUMERO") ("XXXX" . "SURFACE") ("XX-XX" . "DIVERS"))) (if (ssget '((0 . "INSERT") (66 . 1))) (progn (vlax-for blk (setq ss (vla-get-ActiveSelectionSet *acdoc*)) (foreach att (vlax-invoke blk 'GetAttributes) (if (setq old (assoc (strcase (vla-get-TagString att)) lst)) (vla-put-TagString att (cdr old)) ) ) ) (vla-Delete ss) ) ) (princ) ) Bisous, Luna
nen Posté(e) le 29 août 2023 Auteur Posté(e) le 29 août 2023 Bonjour Luna, Je te remercie pour ton aide👍. Ton code fonctionne de manière optimale. Néanmoins, il présente un inconvénient en supprimant le texte de l'invite. Serait-il envisageable d'éviter cette suppression ? En effet, cette problématique répond à un besoin spécifique. Je suis fréquemment amené à recevoir des plans au format DWG provenant de diverses entreprises, chacune ayant ses propres attributs spécifiques. À chaque fois que des corrections sont nécessaires, cela requiert des solutions spécifique. Il me semble qu'Autodesk aurait pu développer des commandes spécifique aux attributs pour faciliter notre travail, surtout lorsque les blocs avec attributs sont mal conçus. @+ Meilleures salutations
Luna Posté(e) le 30 août 2023 Posté(e) le 30 août 2023 Coucou @nen, Qu'entends-tu par Il y a 14 heures, nen a dit : Néanmoins, il présente un inconvénient en supprimant le texte de l'invite. Quel texte de l'invite ? Veux-tu parler de ceci ? (/= (setq old (strcase (getstring "\nAncienne étiquette: "))) "") (/= (setq new (strcase (getstring "\nNouvelle étiquette: "))) "") Si c'est le cas, comment dois-je l'intégrer pour que cela réponde bien à tes besoins ? Bisous, Luna
nen Posté(e) le 30 août 2023 Auteur Posté(e) le 30 août 2023 Bonjour Luna, Désolé mes infos n'ont pas été claire, je joint une image qui sera plus parlant. @+
Luna Posté(e) le 30 août 2023 Posté(e) le 30 août 2023 Ohh, je vois ! Mais n'ayant fait que modifier le programme RENAMETAG, si le programme RENAMETAGNEN supprime l'invite alors RENAMETAG avait alors le même problème déjà, n'est-ce pas ? J'avoue ne jamais avoir eu à renommer les étiquettes donc je ne sais pas trop à quoi est liée l'invite d'un attribut. Je verrai ce que je peux faire et s'il y a moyen d'éviter ce genre de soucis. Bisous, Luna
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