Aller au contenu

Routine Lisp necessaire ?


lecrabe

Messages recommandés

Hello

 

Je suis fatigue aujourd'ui et mes neurones sont "mous" !

 

Soit un DWG avec de nombreux Blocs dont certains sont inseres au niveau Z = ZERO

et certains en Z qq part ...

mais les attributs visibles / invisibles (non verrouilles) se baladent en Z : parfois Z=0, parfois Z Positif, parfois Z Negatif !!

 

Je pense que j'aurais besoin d'un programme Lisp/VLisp qui :

- sur une selection AutoCAD CLASSIQUE

- filtre les Blocs puis traite seuleument les Blocs avec Attributs

- pour mettre le Z = ZERO sur TOUS les attributs !?

ATTENTION : je ne veux pas mettre a ZERO le point d'Insertion Z du Bloc !!

 

Ou bien y a t-il une manipulation EVIDENTE que je ne vois pas dans mon brouillard du jour ?

 

Si routine Lisp/VLisp imperative, SVP je suis dans l'attente "d'un gentil" ...

 

Merci d'avance de votre attention, Bye, lecrabe

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Si j'ai bien compris la demande :

 

(defun c:attZero (/ getAtts flatten ss i)
 (defun getAtts (ent / elst lst)
   (while
     (and
(setq ent (entnext ent))
(= (cdr (assoc 0 (setq elst (entget ent)))) "ATTRIB")
     )
      (setq lst (cons elst lst))
   )
   (reverse lst)
 )
 
 (defun flatten (elst / dxf10 dxf11)
   (setq dxf10	(assoc 10 elst)
  dxf11	(assoc 11 elst)
   )
   (entmod
     (subst (reverse (cons 0.0 (cdr (reverse dxf10))))
     dxf10
     (subst (reverse (cons 0.0 (cdr (reverse dxf11))))
	    dxf11
	    elst
     )
     )
   )
 )

 (if (setq ss (ssget '((0 . "INSERT") (66 . 1))))
   (repeat (setq i (sslength ss))
     (foreach att (getAtts (ssname ss (setq i (1- i))))
(flatten att)
     )
   )
 )
 (princ)
)

 

Attention, toute synchronisation repositionnerait les attributs à leur place définie dans la définition de bloc.

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

Lien vers le commentaire
Partager sur d’autres sites

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é