Aller au contenu

Extraire des infos


dfbiagio

Messages recommandés

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.

Lien vers le commentaire
Partager sur d’autres sites

Coucou

Il se trouve que je suis en train de peaufiner mon site et que je travaille là-dessus,

du coup je te fais passer un exemple

sans contrôles

une 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
|;


Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Alors on ne va pas pouvoir faire plus, désolé

Sauf si tu expliques un peu plus

Que 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

 

Lien vers le commentaire
Partager sur d’autres sites

Voici comment je procède:

Chargement:

 

 

 

Command: ap

APPLOAD 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

Lien vers le commentaire
Partager sur d’autres sites

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 chose

Chez moi j'ai essayé avec un bloc simple et rois distances dynamiques

Et ça fonctionne

 

Amicalement

 

 

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é