Aller au contenu

A L\'AIDE ! ATTRIBUT DE BLOC PARTI !


Messages recommandés

Posté(e)

Bonjour !

 

J'ai besoin d'une aide urgente :

Je suis sur un gros projet de cuisine, j'ai plein de bloc "REPERE" : un rectangle avec un attribut dedans.

Je ne sais pas par quelle manipulation, mes rectangles du blocs sont toujours bien placé mais tous les attributs sont sur 0,0,0 (et donc tous superposés).

Mon attribut avait pourtant une position verrouillée dans le bloc.

 

SVP aidez-moi à résoudre mon problème !

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

aie aie aie !

"#&P=*e !!!!!! il faut que ça arrive un vendredi soir !

J'ai pas mes routines avec moi :mad: Si tu peux patientez, je m'étais fais un truc qui pourrait t'aider

Nous n’ héritons pas de la terre de nos ancêtres.Nous l’empruntons à nos enfants.

Posté(e)

j'ai essayé battman, ça marche mais il me met la valeur par défaut plutot que la valeur de l'attribut

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

ayé ! ouf

 

en fait mon attribut été doublé dans mon bloc (??). J'ai supprimé l'attribut superflue et j'ai synchronisé le bon : tout est rentré dans l'ordre !!

 

Merci à vous, bon week end, bonnes vacances, bonne année !

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

Salut,

 

Un LISP vite fait (pas testé en profondeur)

 

edit : trop tard...

 

(defun c:test ()
 (or *acdoc*
     (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
 )
 (vlax-for e (vla-item
	(vla-get-Blocks
	  *acdoc*
	)
	"REPERE"
      )
   (if	(= (vla-get-ObjectName e) "AcDbAttributeDefinition")
     (setq ins (vlax-get e 'InsertionPoint))
   )
 )

 (if (ssget "_X" '((0 . "INSERT") (2 . "REPERE")))
   (vlax-for b	(vla-get-ActiveSelectionSet *acdoc*)
     (mapcar
'(lambda (a)
   (vla-move a
	     (vlax-3d-point '(0 0 0))
	     (vlax-3d-point (mapcar '+ ins (vlax-get b 'InsertionPoint)))
   )
 )
(vlax-invoke b 'getAttributes)
     )
   )
 )
 (princ)
) 

 

[Edité le 28/12/2007 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Ce LISP, fait dans l'urgence, est prévu pour essayer de réparer le souci de Ludwig uniquement.

Il récupère le point d'insertion de la définition de l'attribut dans la définition du bloc REPERE et déplace toutes les références d'attribut de 0,0 vers leurs points d'insertions dans chaque référence du bloc.

 

L'erreur que tu as eu est due au fait qu'il n'y a pas de bloc REPERE dans la collection du dessin dans lequel tu as lance le LISP.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Merci (gile) de t'être penché sur mon problème. Je ne l'ai résolu qu'en "bidouillant" (je ne maîtrise pas les attributs). Si jamais ça se reproduit (car je suspecte un des lisps de ma lispothèque), je me pencherais sur ton code !

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

Attention, comme dit plus haut, ce LISP était sensé répondre à ce problème précis avec ce bloc (1 seul attribut). Je pensais que tu avais déjà essayé BATTMAN ou ATTSYNC.

 

Plus général et polyvalent, j'avais fait ce LISP, qui fait la même chose qu'ATTSYNC mais sans boite de dialogue et qui fonctionne en "sélection nom-verbe".

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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é