pointpower Posté(e) le 14 juin 2012 Posté(e) le 14 juin 2012 Bonjour, J'ai des blocs avec matricule et altitude, je voudrais pouvoir les exploser et récupérer l'altitude dans les propriétés des points en z. Svp quelqu'un l'a déjà fait? Merci
patrick.albinet Posté(e) le 14 juin 2012 Posté(e) le 14 juin 2012 Avec le menu express : Express \ blocks \ explode attributes to text
bryce Posté(e) le 14 juin 2012 Posté(e) le 14 juin 2012 Bonjour, Les blocs sont en Z=0 ? Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
patrick.albinet Posté(e) le 14 juin 2012 Posté(e) le 14 juin 2012 Qd tu fais ca, il transforme ton bloc en un point autocad et deux textes (matricules et altitude). Si le bloc possede une altitude en z, il l'a garde pour le point. C'est juste une explosion du bloc en gardant les textes qui sont deja noté dans les attributs.
bryce Posté(e) le 14 juin 2012 Posté(e) le 14 juin 2012 Ma question s’adressait à pointpower. ;)Si les blocs sont en Z=0, il faudra utiliser un Lisp pour les remettre à la bonne coordonnée Z avant de les exploser. Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
pointpower Posté(e) le 14 juin 2012 Auteur Posté(e) le 14 juin 2012 Re, en fait y'a ce bloc de patrick 35: (defun c:altz(/ att bas doc ent lsp pos pts sel nombl) (defun nombl(bl) (if (vlax-property-available-p bl 'effectivename) (vla-get-effectivename bl) (vla-get-name bl) ) ) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (and (setq ent (nentsel)) (setq att (vlax-ename->vla-object (car ent))) (eq (vla-get-objectname att) "AcDbAttribute") (setq bas (vla-objectidtoobject (vla-get-database att) (vla-get-ownerid att)) lst (vlax-invoke bas 'getattributes) pos (- (length lst) (length (member att lst))) ) (ssget "x" (list (cons 0 "insert") (cons 2 (strcat "`**," (nombl bas))) (cons 66 1))) (progn (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (and (eq (nombl bas) (nombl ent)) (progn (setq pts (vlax-get ent 'insertionpoint)) (vlax-put ent 'insertionpoint (list (car pts) (cadr pts) (atof (vla-get-textstring (nth pos (vlax-invoke ent 'getattributes)))))) ) ) ) (vla-delete sel) ) ) (vla-endundomark doc) (princ)) Merci
lecrabe Posté(e) le 14 juin 2012 Posté(e) le 14 juin 2012 Hello Le ALTZ de P35 fonctionne parfaitement !et le BLOC-ALT de Gilles aussi ! lecrabe ;; Par GC le 13/03/2008 ;; Commande : BLOC-ALT ;; Mettre les blocs a l'altitude d'un attribut (vl-load-com) (defun c:bloc-alt (/ att elst blk tag ss n ins) (if (and (setq att (car (nentsel "\nSelectionnez l'attribut \"altitude\": "))) (setq elst (entget att)) (= (cdr (assoc 0 elst)) "ATTRIB") (setq blk (cdr (assoc 330 elst))) (setq name (cdr (assoc 2 (entget blk)))) (setq tag (cdr (assoc 2 elst))) (setq ss (ssget "_X" (list '(0 . "INSERT") (assoc 2 (entget blk))))) (setq n -1) ) (progn (while (setq blk (ssname ss (setq n (1+ n)))) (setq elst (entget blk) ins (cdr (assoc 10 elst)) att (entnext blk) ) (while (and att (= (cdr (assoc 0 (entget att))) "ATTRIB")) (if (= (cdr (assoc 2 (entget att))) tag) (entmod (subst (list 10 (car ins) (cadr ins) (atof (cdr (assoc 1 (entget att)))) ) (assoc 10 elst) elst ) ) ) (setq att (entnext att)) ) ) (vl-cmdf "_.attsync" "_n" name) ) ) (princ) ) Autodesk Expert Elite Team
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