Aller au contenu

Renommer bloc anonyme


Messages recommandés

Posté(e)

Bonjour,

Est-il possible de renommer ou de récupérer les données de blocs anonymes ?

 

J'ai bien trouvé

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]

Posté(e)

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)

Posté(e)

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

Posté(e)

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: editref

Sélectionnez la référence :

** Impossible de lancer la commande EDITREF sur un bloc anonyme **

Posté(e)

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

Posté(e)

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

 

./__\.
(.°=°.)
Posté(e)

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

Posté(e)

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 trottoir

Comme 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 cher

architecte paysagiste :P de me fournir des bons blocs

 

 

Un bout de routine pour renommer un bloc en Vlisp

Ca 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

 

Posté(e)

C'est peut-être trop demandé mais on sait jamais. :)

 

Il y a ce lisp de Dominique Vacquant ICI

Qui permet de modifier un la couleur, le calque et le typeligne

et qui marche sur un bloc anonyme

 

Il "suffirait" d'intégrer le modification de l'épaisseur de ligne non ? ;)

 

Posté(e)

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?

Posté(e)

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

Posté(e)

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]

Posté(e)

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

 

Posté(e)

"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 ;)

 

 

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é