dfbiagio Posté(e) le 9 décembre 2018 Posté(e) le 9 décembre 2018 Bonjour à tous,J'ai des blocs dynamiques et j'aimerai en extraire les paramètres via un lisp. Avec les commandes habituelles, je n'ai pas grand chose Command: (setq bloc (entget (car (entsel)))) Select object: ((-1 . <Entity name: 7ffff1d71e0>) (0 . "INSERT") (5 . "39A8E") (102 . "{ACAD_XDICTIONARY") (360 . <Entity name: 7ffff1d71f0>) (102 . "}") (102 . "{ACAD_REACTORS") (330 . <Entity name: 7ffff1e73c0>) (330 . <Entity name: 7ffff1e73f0>) (102 . "}") (330 . <Entity name: 7ffff1f5a30>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "bia-menuiserie int") (62 . 41) (100 . "AcDbBlockReference") (2 . "*U1103") (10 2817.0 299.5 0.0) (41 . -1.0) (42 . 1.0) (43 . 1.0) (50 . 3.14159) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0)) Je voudrai extraire le type d'ouverture que j'ai appelé POUSSANT soit droit ou gauche, la largeur et l'épaisseur de l'ébrasement.Quelqu'un sait-il comment je pourrais faire. En visualisp existe-t'il une commande du type entget qui extrait toutes les propriétés? Merci d'avance pour votre aide. Bon dimanche à tous.
didier Posté(e) le 9 décembre 2018 Posté(e) le 9 décembre 2018 CoucouIl se trouve que je suis en train de peaufiner mon site et que je travaille là-dessus,du coup je te fais passer un exemplesans contrôlesune piste de recherche pour toi : amicalement(defun da-code-val-dyn (ent / blk lstblk n dyn valdyn lst) (setq blk (vlax-ename->vla-object ent)) (setq lstblk (vlax-safearray->list (vlax-variant-value (vla-getdynamicblockproperties blk ) ) ) ) (setq n 0) (repeat (length lstblk) (setq dyn (vla-get-propertyname (nth n lstblk))) (if (/= dyn "Origin") (progn (setq valdyn (vlax-variant-value (vla-get-value (nth n lstblk))) ) (setq lst (cons (list dyn valdyn) lst)) ) ) (setq n (+ 1 n)) ) lst ) ;_ Fin de defun: ;| exemple de syntaxe (setq ent (car(entsel))) (setq liste-param (da-code-val-dyn ent)) ent doit être sous forme de ename |; Éternel débutant... Mon site perso : Programmer dans AutoCAD
didier Posté(e) le 9 décembre 2018 Posté(e) le 9 décembre 2018 Coucoudans mon cas sur un bloc avec trois paramètres la liste renvoyée est : (("Distance1" 3.19046) ("Distance2" 1.18629) ("Distance3" 0.323114)) ça te va ? amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
lecrabe Posté(e) le 9 décembre 2018 Posté(e) le 9 décembre 2018 HelloWaouh le vieux Did (Didactique) est encore Dynamic le Dimanche !Bye, lecrabe Autodesk Expert Elite Team
didier Posté(e) le 9 décembre 2018 Posté(e) le 9 décembre 2018 Coucou Eh oui !! je respire encore... Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
lecrabe Posté(e) le 9 décembre 2018 Posté(e) le 9 décembre 2018 Hello Merci a Didier et aussi a Lee-Mac ! ICI tu as tout ce qu'il faut : http://www.lee-mac.com/dynamicblockfunctions.html Bye, lecrabe Autodesk Expert Elite Team
dfbiagio Posté(e) le 10 décembre 2018 Auteur Posté(e) le 10 décembre 2018 Bonsoir,Je dois certainement faire un mauvaise manip, car ça ne fonctionne pas !!Bàt
didier Posté(e) le 11 décembre 2018 Posté(e) le 11 décembre 2018 Coucou N'aurais-tu pas oublié la ligne(vl-load-com) Dis-nous quand même ce que tu as fait et le message reçu et autres choses qui nous permettront de t'aider Dire que ça ne fonctionne pas est quelque peu insuffisant Éternel débutant... Mon site perso : Programmer dans AutoCAD
didier Posté(e) le 11 décembre 2018 Posté(e) le 11 décembre 2018 Coucou Alors on ne va pas pouvoir faire plus, désoléSauf si tu expliques un peu plusQue veux-tu qu'on puisse faire à distance ?Sans explications, sans même savoir si tu as bien copié le code, attention le formatage du site web peut insérer des caractères parasites Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
dfbiagio Posté(e) le 11 décembre 2018 Auteur Posté(e) le 11 décembre 2018 Voici comment je procède:Chargement: Command: apAPPLOAD da-code-val-dyn.lsp successfully loaded. command: (vl-load-com) Command: (da-code-val-dyn); error: no function definition: DA-CODE-VAL-DYN J'ai même essayé de le faire ligne par ligne. A la première, il met une erreur Command: (setq blk (vlax-ename->vla-object ent)); error: bad argument type: lentityp nil Je ne sais pas en dire plus.BàV
didier Posté(e) le 11 décembre 2018 Posté(e) le 11 décembre 2018 Coucou Tu n'as pas lu jusqu'au bout, c'est pas bien, on fait des efforts pourtant (hihi)J'ai mis un exemple de syntaxe et je pense que si tu tapais : (setq ent (car(entsel)))(setq liste-param (da-code-val-dyn ent)) La variable "liste-param" devrait contenir quelque choseChez moi j'ai essayé avec un bloc simple et rois distances dynamiquesEt ça fonctionne Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
dfbiagio Posté(e) le 12 décembre 2018 Auteur Posté(e) le 12 décembre 2018 Effectivement, je n'ai pas lu jusqu'au bout.Merci bcq.
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