kallain Posté(e) le 6 avril 2006 Posté(e) le 6 avril 2006 Bonjour,Est-il possible de renommer ou de récupérer les données de blocs anonymes ? J'ai bien trouvé Cà mais malheuresement celà ne marche pas :P PS : le problème est que ces blocs anonymes ont été crées avec 0.00 en épaisseur de ligne :mad: [Edité le 6/4/2006 par kallain]
sergeluc Posté(e) le 11 avril 2006 Posté(e) le 11 avril 2006 Si je ne me trompe pas ,je crois me souvenir que la fonction "_audit" d'autocad renommeles blocs anonymes et les stocke dans le répertoire courant autocad.
kallain Posté(e) le 12 avril 2006 Auteur Posté(e) le 12 avril 2006 Ah j'y ai cru, d'autant qu"_audit" me disais rien. :o Mais en fait _audit, c'est la commande contrôle et (suivant l'aide) "Si vous paramétrez la variable système AUDITCTL sur 1, CONTROLE crée un fichier ASCII contenant la description des problèmes et les corrections effectuées, et place ce rapport dans le répertoire du dessin courant, avec l'extension .Autodesk Architectural Desktop. " Et malheureusement ça n'a aucun effet sur les blocs anonymes (*Uxxx)
bonuscad Posté(e) le 12 avril 2006 Posté(e) le 12 avril 2006 Et ce SUJET, ne pourrait pas t'aider? Oops excuse j'avais pas vu que tu y faisait référence. Pourrais tu faire un (entget (car (entsel))) sur un bloc qui te pose problème, et coller en retour. Peut être j'aurais besoin aussi d'un éventuel(entget (entnext (cdar (entget (car (entsel)))))) [Edité le 12/4/2006 par bonuscad] Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
DOUDOUACAD Posté(e) le 12 avril 2006 Posté(e) le 12 avril 2006 Salut !! Essaye la fonction " editréf " avec laquelle tu contrôle un nombre important, de paramètres. A+
kallain Posté(e) le 12 avril 2006 Auteur Posté(e) le 12 avril 2006 Voila, voila Pour Bonuscad Commande: (entget (car (entsel))) Choix de l'objet: ((-1 . ) (0 . "INSERT") (330 . d'entité: 7ed9e810>) (5 . "D753") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "VRD-Bordure A2") (100 . "AcDbBlockReference") (2 . "*U8") (10 739.139 5084.46 0.0) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.388588) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0)) Commande: (entget (entnext (cdar (entget (car (entsel)))))) Choix de l'objet: ; erreur: type d'argument incorrect: lentityp nil Pour Doudouacad Commande: editrefSélectionnez la référence :** Impossible de lancer la commande EDITREF sur un bloc anonyme **
bonuscad Posté(e) le 12 avril 2006 Posté(e) le 12 avril 2006 Mauvaise nouvelle l'ami ! J'ai essayé de faire quelque chose, mais je me suis heurté à une impossibilité:(entmod) refuse de modifier la table des blocs. Donc pas de solution relativement simple. La seule voie qui resterais peut être possible (mais beaucoup plus lourde à mettre en place), serait de passer par (entmake), avec lui on peut créer des blocs anonyme d'ailleurs, ce que ne peut faire la commande standard "bloc" Pour schématiser, comme si tu explosais ton bloc pour le reconstruire avec un "nom". D'ailleurs a tu essayé cette méthode manuelle pour redéfinir ton bloc avec nouveau nom? Pour info: Les blocs anonymes seront automatiquement purgés, s'ils ne sont pas référencés (insérés) dans le dessin lors de la prochaine ouverture de celui-ci. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Tramber Posté(e) le 12 avril 2006 Posté(e) le 12 avril 2006 Un bout de routine pour renommer un bloc en Vlisp Ca peut marcher sur des blocs anonymes, merci de me tenir au courant : (setq anciennom "bregiom") (setq nouvnom "bergios") (setq doc(vla-get-ActiveDocument (vlax-get-acad-object))result nil) (setq blos(vla-get-blocks doc)) (vlax-for item blos(if(=(vla-get-objectname item) "AcDbBlockTableRecord")(if(= (strcase (vla-get-name item)) (strcase anciennom))(setq result item))));;; result (if result (vla-put-name result nouvnom)) vlax-for cherche dans la base des blocks.un double IF permet, dans l'ordre, de vérifier qu'on a affaire à un bloc, vérifier que le nom correspond.Le "result" emmagazine le nom de l'objet VLA. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
bonuscad Posté(e) le 13 avril 2006 Posté(e) le 13 avril 2006 Essayé avec un bloc anonyme Bien que result -> vrai(vla-put-name result nouvnom) ne fonctionne pas! :casstet: (entmod) ou (vla-put-....) même combat :P Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
kallain Posté(e) le 13 avril 2006 Auteur Posté(e) le 13 avril 2006 D'ailleurs a tu essayé cette méthode manuelle pour redéfinir ton bloc avec nouveau nom? Evidemment ;) Mais outre le problème de l'épaisseur de ligne, ces blocs représentes des jardinières de trottoirComme un U fermé et de différentes largeurs et leurs points d'insersion est quelconque(ou plutôt fantaisiste ) :mad: S'il n'y a pas de solution simple, vous cassez pas la tête,d'autant plus que le projet risque de changer et je demanderais à mon cherarchitecte paysagiste :P de me fournir des bons blocs Un bout de routine pour renommer un bloc en VlispCa peut marcher sur des blocs anonymes, merci de me tenir au courant : :D Ca permet bien de renommer *U8 en U8 mais le bloc reste tout aussi anonyme
kallain Posté(e) le 13 avril 2006 Auteur Posté(e) le 13 avril 2006 C'est peut-être trop demandé mais on sait jamais. :) Il y a ce lisp de Dominique Vacquant ICIQui permet de modifier un la couleur, le calque et le typeligneet qui marche sur un bloc anonyme Il "suffirait" d'intégrer le modification de l'épaisseur de ligne non ? ;)
Fraid Posté(e) le 13 avril 2006 Posté(e) le 13 avril 2006 bonjour, j'ai souvent rencontrer ce probléme avec des blocs nommé AC$XXXXXX j'ai trouvé une solution en modifiant mon menu contextuel en editant l'acad.mnu***POP512**OBJECT_BLOCKREF [Menu contextuel de l'objet BLOC]ID_Ddrename [&Renommer]^P(setvar "USERS1" (cdr (assoc 2 (entget (ssname (cadr (ssgetfirst)) 0)))));_-RENAME;BL;(getvar "USERS1") peut etre que cela va t'aider? https://github.com/Fraiddd
bonuscad Posté(e) le 13 avril 2006 Posté(e) le 13 avril 2006 AC$XXXXXX Ceux-ci ne sont pas des blocs anonymes ! Les blocs anonymes ont un nom commencant par * et suivi d'une lettre tel que U ou D (cotations) et d'autres que je ne me souviens plus et un chiffre incrémenter par AutoCad. Les anciennes hachures utilisaient ces noms par U. Je penses qu'autodesk a verrouillé le nom de ces blocs pour éviter que l'on "foute le bazard" dans les cotations par exemples. L'utilisateur peut en créer (par programmation), mais la modification dans les tables devient impossible ou pas du tout aisée. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
sergeluc Posté(e) le 14 avril 2006 Posté(e) le 14 avril 2006 Bonjour ,Voilà ce que j'ai trouvé dans mes archives de d'antant :Les noms de symboles spécifiés dans les listes filtre peuvent contenir des caractères génériques. Les caractères génériques reconnus par ssget sont identiques à ceux acceptés par la fonction wcmatch et sont décrits dans la section "Recherche avec caractères génériques," ainsi que dans la section "wcmatch" du chapter 13.Remarque Lors du filtrage de blocs anonymes, vous devez inhiber la signification générique du caractère * grâce à une apostrophe inversée ( ` ), car ce caractère est interprété par ssget comme un caractère générique. Par exemple, pour extraire le bloc anonyme *U2, entrez : (ssget "X" '((2 . "`*U2"))) ;------------------------------------ ;ou une condition de recherche sur le nom pour tous les blocs anonymes du dessin (= (wcmatch (cdr (assoc 2 entbloc)) "*`**") t);blocs anonymes et particuliers [Edité le 14/4/2006 par sergeluc]
BTO Posté(e) le 21 avril 2006 Posté(e) le 21 avril 2006 Bonjour, j'utilise une version modifiée de unanon.lsp "Copyright © 1998, Fabricated Designs, Inc.",trouvable rapidement avec Google. A ma connaissance il n'y a personne qui a fait mieux depuis. Cependant cette routine souffre d'une lenteur qui augemente avec le nombre de blocs à traiter. (le temp d'éxécution n'est pas du tout linèaire avec le nombre de blocs) Bruno Toniutti
kallain Posté(e) le 21 avril 2006 Auteur Posté(e) le 21 avril 2006 "Tout vient à point à qui sait attendre,avec du temps et de la patience, on réussit,on obtient ce que l'on désire........" Parfait, ça marche au poil :D Merci BTO ;)
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