Invité Patrick Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 A quand la possibilité de renommer une définition de bloc en renommant une de ses instances depuis la fenêtre Propriétés? Allez, Autodesk, encore un effort!
(gile) Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 Salut, En attendant on peut toujours utiliser ce petit LISP qui permet la sélection de la référence avant le lancement de la commande (si PICKFIRST est à 1) et peut donc d'être glissé dans le Menu contextuel des objets de référence de bloc. http://img324.imageshack.us/img324/4304/renomblockc2.png Le code : ;;; Renomme le bloc sélectionné avant ou après le lancement de la commande (defun c:rename_block (/ AcDoc ss ref name new) (vl-load-com) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))) (if (and (= 1 (getvar "pickfirst")) (setq ss (ssget "_I" '((0 . "INSERT")))) (eq 1 (sslength ss)) ) (sssetfirst nil nil) (progn (sssetfirst nil nil) (while (not (setq ss (ssget "_:S:E" '((0 . "INSERT"))))) ) ) ) (setq ref (vlax-ename->vla-object (ssname ss 0))) (if (vlax-property-available-p ref 'EffectiveName) (setq name (vla-get-EffectiveName ref)) (setq name (vla-get-Name ref)) ) (setq bloc (vla-item (vla-get-blocks AcDoc) name)) (while (not (and (setq new (getstring "\nSpécifiez le nouveau nom : ")) (not (tblsearch "BLOCK" new)) (/= new "") ) ) (if (tblsearch "BLOCK" new) (princ (strcat "\Le bloc \"" new "\" existe déjà.")) ) ) (vla-put-Name bloc new) (princ) ) [Edité le 7/8/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
nomutt Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 Ca serait chouêeeette ! Pour les utilisateurs d'AutoCAD LT, je propose un copier/coller du bloc dans un nouveau dessin, l'utilisation de la commande 'renommer' puis à nouveau un copier/coller vers le dessin d'origine.Attention à l'échelle des objets insérés du contrôle des unités. Ca surprend parfois. Nomutt,Consultant, Responsable Projets CAD/PLM'Add-ins pour Inventor + Trucs et Astuces.Disponible pour un poste administrateur CAO/PLM.
Invité Patrick Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 Rêvons un peu, clic droit + renommer sur n'importe quel objet qui a un nom, révolutionnaire, non?Bon, je suis un peu sarcastique... j'avoue, mais la commande clic droit/renommer dans un logiciel comme AutoCAD, ça manque depuis un certain temps, disons vingt ans, alors on trouve le temps long... :casstet:
Fraid Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 Bonjour, en placant dans le pop 512 du fichier mnu cette incantation on a le meme resultat du lisp de gile **OBJECT_BLOCKREF [Menu contextuel de l'objet BLOC]ID_Explode [Déco&mposer]^C^C_explodeID_Ddrename [&Renommer]^P(setvar "USERS1" (cdr (assoc 2 (entget (ssname (cadr (ssgetfirst)) 0)))));_-RENAME;BL;(getvar "USERS1") mais il est vrai que cela renomme tout les blocssi on veut en isoler un pour pouvoir le modifier a souait sa marche pas :P https://github.com/Fraiddd
Patrick_35 Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 Salut PatrickEt avec ce lisp ? @+ (defun Clic_Droit_Renommer(Rea Pt / Bk Bks Nom Sel Txt) (defun MsgBox (Titre Bouttons Message / Reponse WshShell) (setq WshShell (vlax-create-object "WScript.Shell")) (setq Reponse (vlax-invoke WshShell 'Popup Message 7 Titre (itoa Bouttons))) (vlax-release-object WshShell) Reponse ) (defun InputBox (Titre Message Defaut / *acad* users1 valeur) (setq *acad* (vlax-get-acad-object) users1 (getvar "users1")) (acad-push-dbmod) (vla-eval *acad* (strcat "ThisDrawing.SetVariable \"USERS1\"," "InputBox (\"" Message "\", \"" Titre "\", \"" Defaut "\")")) (setq valeur (getvar "users1")) (setvar "users1" users1) (acad-pop-dbmod) valeur ) (if (setq Sel (ssget (car Pt))) (progn (setq Sel (vlax-ename->vla-object (ssname Sel 0))) (if (eq (vla-get-ObjectName Sel) "AcDbBlockReference") (progn (if (vlax-property-available-p Sel 'EffectiveName) (setq nom (vla-get-EffectiveName Sel)) (setq nom (vla-get-Name Sel)) ) (if (setq Txt (InputBox "Renommer Bloc" "Veuillez donner un nouveau nom au bloc" Nom)) (if (not (eq (strcase Txt) (strcase Nom))) (if (not (eq Txt "")) (progn (setq Bks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))) (if (vla-item Bks Txt) (MsgBox "Renommer Bloc" 16 "Nom de bloc déjà existant. Rien de changé") (progn (setq Bk (vla-item Bks Nom)) (vla-put-name Bk Txt) ) ) ) ) (MsgBox "Renommer Bloc" 48 "Nom identique. Rien de changé") ) ) ) ) ) ) (princ) ) (defun creation_reacteur_renommer (/ i j n) (vl-load-com) (if (vlr-reactors :vlr-mouse-reactor) ; si déjà un réacteur dans :vlr-mouse-reactor (progn (setq n 1) (while (setq i (nth n (car (vlr-reactors :vlr-mouse-reactor)))) (if (eq (cdr (car (vlr-reactions i))) 'CLIC_DROIT_RENOMMER) (setq j i) ) (setq n (1+ n)) ) (if j (vlr-remove j) ) ) ) (setq mrea_ren (vlr-mouse-reactor nil '((:vlr-beginRightClick . Clic_Droit_Renommer)))) (princ "\nClic droit pour Renommer les blocs ACTIF.") (princ) ) (if (not mrea_ren) (creation_reacteur_renommer) ) (princ) [Edité le 7/8/2006 par Patrick_35] Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Tramber Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 (setq WshShell (vlax-create-object "WScript.Shell")) (setq Reponse (vlax-invoke WshShell 'Popup Message 7 Titre (itoa Bouttons))) C'est pas bientôt fini de frimer !? :cool: Tu crois que je sais pas où tu as attrapé ce bout de code :D Sinon, renommer une insertion de bloc pourrait être sympa mais alors je vois bien l'éditeur se mettre en route automatiquement, histoire que les gens fassent le distingo. Et puis j'imagine une option qui permet d'en cliquer d'autres dans la foulée de l'opération, tant qu'on y est. Ca serait pratique. [Edité le 7/8/2006 par Tramber] Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Patrick_35 Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 C'est pas bientôt fini de frimer !? :cool: [/code]Non, non :cool: Tu crois que je sais pas où tu as attrapé ce bout de code :D Je sais mais il est tellement génial que je ne vais pas m'en priver ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 Salut Patrick_35, Ton LISP est encore une belle démonstration d'utilisation des réacteurs. Juste deux petites remarques, tu ne testes pas si le nouveau nom n'est pas déjà dans la collection, et pour les blocs dynamiques (anonymes) il faut récupérer le EffectiveName de la référence qui correspond au Name de la définition : (if (vlax-property-available-p ref 'EffectiveName) (setq name (vla-get-EffectiveName ref)) (setq name (vla-get-Name ref)) ) PS : J'ai failli te piquer ton "InputBox" pour mon LISP, je ne regrettes pas de t'en avoir laissé la primeur ;) [Edité le 7/8/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
rebcao Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 Bonsoir Patrick, Nous serons deux rêveurs là dessus, je l'avais déjà rêvé... Christian 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 @)
Patrick_35 Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 tu ne testes pas si le nouveau nom n'est pas déjà dans la collection Pourquoi faire ? Comme c'est depuis un clic droit dans le dessin, le nom est forcement dans la collection our les blocs dynamiques (anonymes) il faut récupérer le EffectiveName de la référence qui correspond au Name de la définition Tu as raison, je n'ai pas encore le réflexe des blocs dynamiques J'ai failli te piquer ton "InputBox" pour mon LISP, je ne regrettes pas de t'en avoir laissé la primeur ;) Tu pouvais, je ne suis pas jaloux. Et d'aiileurs, je cherche en ce moment comment faire le même InputBox mais en utilisant le wscript. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 Pourquoi faire ? Comme c'est depuis un clic droit dans le dessin, le nom est forcement dans la collection Je parle du nom que tu récupères avec l'input-box, et de tester si ce nom n'est pas déjà utilisé par un autre bloc du dessin, je fais : (while (not(and (setq new (getstring "\nSpécifiez le nouveau nom : "))(not (tblsearch "BLOCK" new))(/= new ""))) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 Ah oui, exacteJe crois que j'ai écrit un peu trop vite ce lisp ;) Et puisque le sujet s'y prete, à quand un lisp avec des réacteurs :D @+ [Edité le 7/8/2006 par Patrick_35] Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Patrick_35 Posté(e) le 7 août 2006 Posté(e) le 7 août 2006 Faisant suite aux remarques de (gile), le lisp à été modifié @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bilbeau Posté(e) le 5 novembre 2006 Posté(e) le 5 novembre 2006 @Patrick.Toucher aux fonctinalités de strict changement des paramètres existants toucheraient à l'ergonomie et à la logique de l'onglet propriétés.Par contre plus globalement on pourrait lui adjoindre des fonctionalités d'édition.
Patrick_35 Posté(e) le 5 novembre 2006 Posté(e) le 5 novembre 2006 Salut Bilbeau (le hobbit ?)Je ne comprends pas le sens de ta remarque :casstet: Si un souhait peut-être réalisé par le biais de réacteur, cela va dans le sens de l'ergonomie de l'utilisateur ? @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
PascAnna Posté(e) le 10 juillet 2008 Posté(e) le 10 juillet 2008 Bonjour Patrick_35 et tout le monde ! J'ai récupère REN V1.01 se trouve dans sujet de "Lisps de Patrick_35", je te remercie et je l'excute.Je clique droit pour renommer un bloc, je tape un nom "test" au lieu de "A$C4B250EC4" (bloc de copier/coller) puis ok, le message de commande: "; erreur: Erreur Automation Clé introuvable" ! Pourquoi et que fais je ? Merci de votre aide,PascAnna. P.S. Avec Autocad 2009 / Architecture 2009 [Edité le 10/7/2008 par PascAnna] Avec Autocad 2009 / Architecture 2009
Patrick_35 Posté(e) le 10 juillet 2008 Posté(e) le 10 juillet 2008 Salut Il y avait un bug, c'est corrigé. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
PascAnna Posté(e) le 10 juillet 2008 Posté(e) le 10 juillet 2008 Nickel !! merci encore :) Avec Autocad 2009 / Architecture 2009
rebcao Posté(e) le 10 juillet 2008 Posté(e) le 10 juillet 2008 NON ! après presque 2 ans on découvre qu'il y a un BUG ??? :( ça voudrait dire que beaucoup testent et ne remonte pas les infos si ça marche ou pas ?! :casstet: ça m'arrive aussi... Christian 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 @)
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