dfbiagio Posté(e) le 11 octobre 2015 Posté(e) le 11 octobre 2015 Bonjour à tous,Comment peut-on en VL extraire les informations comme la suivante:(setq Objet (entget (car (entsel))))Select object: ((-1 . <Entity name: 7ffffb2d390>) (0 . "INSERT") (330 . <Entity name: 7ffffb03a30>) (5 . "33F61") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (62 . 1) (100 . "AcDbBlockReference") (2 . "TUYAU-110") (10 474.803 761.156 0.0) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.825059) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0)) J'ai dans ce bloc dynamique une variable que j'ai appelé distance1 que je n'arrive pas à extraire.Merci d'avance.
dfbiagio Posté(e) le 17 octobre 2015 Auteur Posté(e) le 17 octobre 2015 Bonjour à tous,je vois que je n'ai pas de réponse à ma question. Je vais poser ma question autrement. Comment puis-je faire pour extraire la variable "distance1" de mon bloc dynamique.Merci d'avance.BàV.
PHILPHIL Posté(e) le 17 octobre 2015 Posté(e) le 17 octobre 2015 hello voila un lisp avec des explications pour etre plus clair bon week end Phil (defun c:infobloc1 () (prompt "\nCLIQUER SUR LE BLOC : POUR RECUPERER L INFO") (setq bl1 (ssget (list (cons 0 "insert"))));; on sélectionne un bloc (foreach prop (vlax-invoke (vlax-ename->vla-object (cdr (assoc -1 (entget (ssname bl1 0))))) 'getdynamicblockproperties );;; on regarde toutes les propriétées dynamiques (if (= (vla-get-propertyname prop) "distance1");; si une propriétée dnamique a le nom "distance1" (PROGN (setq valeuredeprop (vla-get-value prop));; on regarde pour info comment c est agencé (setq valeurextraite (vlax-variant-value (vla-get-value prop)));; on extrait la valeur de la propriété ) ) ) valeuredeprop valeurextraite ) FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
dfbiagio Posté(e) le 17 octobre 2015 Auteur Posté(e) le 17 octobre 2015 Après l'avoir essayé, voici ce qu'il met Command: infobloc1 CLIQUER SUR LE BLOC : POUR RECUPERER L INFOSelect objects: 1 found Select objects:; error: no function definition: VLAX-ENAME->VLA-OBJECT
capde06 Posté(e) le 19 octobre 2015 Posté(e) le 19 octobre 2015 il faut ajouter cette ligne au debut(vl-load-com) Vous fîtes ce que vous pûtes et vous m'épatâtes !!!!
dfbiagio Posté(e) le 19 octobre 2015 Auteur Posté(e) le 19 octobre 2015 Command: INFOBLOC1CLIQUER SUR LE BLOC : POUR RECUPERER L INFOSelect objects: Specify opposite corner: 31 found Select objects:nil J'ai toujours pas les valeurs de distance1
Patrick_35 Posté(e) le 20 octobre 2015 Posté(e) le 20 octobre 2015 Salut (setq blo (vlax-ename->vla-object (car (entsel)))) ; Sélection du bloc --> #<VLA-OBJECT IAcadBlockReference 000000002cd2e258> (setq dyn (vlax-invoke blo 'getdynamicblockproperties)) ; Liste des propriétés dynamiques du bloc --> (#<VLA-OBJECT IAcadDynamicBlockReferenceProperty 000000002ce43db8> #<VLA-OBJECT IAcadDynamicBlockReferenceProperty 000000002ce44db8> #<VLA-OBJECT IAcadDynamicBlockReferenceProperty 000000002ce44e38> #<VLA-OBJECT IAcadDynamicBlockReferenceProperty 000000002ce44e78>) (mapcar 'vlax-dump-object dyn) ; Lister les données dynamiques du bloc @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
dfbiagio Posté(e) le 20 octobre 2015 Auteur Posté(e) le 20 octobre 2015 Command: infobloc1 Select object: ; IAcadDynamicBlockReferenceProperty: AutoCAD Dynamic Block Property Interface; Property values:; AllowedValues (RO) = nil; Description (RO) = ""; PropertyName (RO) = "Distance1"; ReadOnly (RO) = 0; Show (RO) = -1; UnitsType (RO) = 2; Value = 273.781; IAcadDynamicBlockReferenceProperty: AutoCAD Dynamic Block Property Interface; Property values:; AllowedValues (RO) = nil; Description (RO) = ""; PropertyName (RO) = "Origin"; ReadOnly (RO) = -1; Show (RO) = 0; UnitsType (RO) = 0; Value = (-3.74051e-016 0.0); IAcadDynamicBlockReferenceProperty: AutoCAD Dynamic Block Property Interface; Property values:; AllowedValues (RO) = nil; Description (RO) = ""; PropertyName (RO) = "Angle1"; ReadOnly (RO) = 0; Show (RO) = -1; UnitsType (RO) = 1; Value = 4.71239; IAcadDynamicBlockReferenceProperty: AutoCAD Dynamic Block Property Interface; Property values:; AllowedValues (RO) = nil; Description (RO) = ""; PropertyName (RO) = "Origin"; ReadOnly (RO) = -1; Show (RO) = 0; UnitsType (RO) = 0; Value = (-3.74051e-016 0.0)(T T T T) Voici ce que j'obtiens. C'est magnifique, mais je ne sais toujours pas comment faire pour placer la valeur de distance1 dans une variable.
GJulien Posté(e) le 20 octobre 2015 Posté(e) le 20 octobre 2015 Bonsoir, J'ai fait un petit essai, tu peux récupérer la valeur avec (vlax-variant-value (vla-get-value (car dyn))) en le mettant après (setq dyn (vlax-invoke blo 'getdynamicblockproperties)) Cordialement,GJulien
Patrick_35 Posté(e) le 21 octobre 2015 Posté(e) le 21 octobre 2015 Bonsoir, J'ai fait un petit essai, tu peux récupérer la valeur avec (vlax-variant-value (vla-get-value (car dyn))) en le mettant après (setq dyn (vlax-invoke blo 'getdynamicblockproperties)) Cordialement,GJulienOui, car c'est la 1ere valeur.Maintenant, si on veut quelque chose de plus générique(vlax-dump-object (car (vl-remove-if-not '(lambda(x)(eq (vla-get-propertyname x) "Distance1")) dyn))) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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