Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

j'ai trouvé dans le site ce post :http:// http://www.cadxp.com/sujetXForum-14758.htm

le lisp suivant :

 

 (setq e (entlast))
(setq e (vlax-ename->vla-object e))
(vlax-dump-object e)
(setq dbp (vla-getdynamicblockproperties e))
(setq dbp (vlax-variant-value dbp))
(setq dbp (vlax-safearray->list dbp))
(setq bp (car dbp))
(vlax-dump-object bp)
(setq ListeAdmis (vlax-safearray->list (vlax-variant-value (vla-get-AllowedValues bp))))
(setq ListeAdmis (mapcar 'vlax-variant-value ListeAdmis))
(vla-put-value bp "contour")

 

j'aimerais savoir comment traiter tous les blocs dynamique d'un dessin.

 

j'ai essayé avec un (setq li_e (ssget "_X" (list (cons 0 "INSERT"))))

mais après je n'arrive pas à traiter cette liste et faire passer les étapes décrites par zebulon_

 

Merci d'avance...

Posté(e)

Salut,

 

Je pense qu'il faudrait que tu précises le traitement que tu veux faire sur chaque bloc.

 

Le code que tu as posté utilise 2 fois la fonction vlax-dump-object : une fois sur le bloc et une autre fois sur la première propriété dynamique de ce bloc.

Cette fonction sert surtout aux développeurs pendant le développement pour afficher les propriétés COM d'un objet (+ les méthodes applicables si on fait (vlax-dump-object e T)).

Ensuite elle liste les valeurs admises pour un état de visibilité ou un paramètre de consultation qui la première (ou la seule) propriété dynamique du bloc.

 

Ces lignes on donc été écrite pour un type de bloc dynamique particulier et ne fonctionneront pas si le bloc sélectionné n'a pas les mêmes propriétés dynamiques ou, à fortiori s'il n'est pas dynamique.

Donc difficile de traiter un jeu de sélection de tous les blocs insérés sans en savoir un petit peu plus.

 

Par ailleurs, tu sembles ne pas encore savoir traiter un jeu de sélection (qui n'est pas une liste), j'en déduis que tu débutes, et je pense que débuter avec les blocs dynamiques, c'est un peu vouloir courir avant de savoir marcher.

 

Donc, précise s'il te plait ce que tu veux faire et si tu veux juste de l'aide pour apprendre à le faire tout seul ou si tu préfères un code tout fait qui répond à ta demande.

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

Posté(e)

Bonjour (giles),

Comme tu l’as compris je débute, et pour le moment je ne marche pas je rampe. Donc pour courir après les blocs dynamiques c’est du saut à la perche avec une allumette. (ça vol pas haut)

 

J’aimerais pouvoir sélectionner les propriétés de visibilité de blocs dynamique. J’ai des blocs avec 2 états de visibilités, 1 Trame et 1 Contour.

Il est possible d’accéder aux paramètres dynamiques dans les propriétés des objets, mais il faut sélectionner les blocs dynamiques concernés. Or la sélection rapide ne permet pas de choisir les blocs par les paramètres dynamiques.

 

Le problème est dans la sélection des blocs, j’aimerais pouvoir choisir dans la liste des blocs dynamiques, les blocs répondant à un critère d’état de visibilité.

 

Par extension, il serait génial de faire la liste des paramètres dynamiques des blocs dans un dessin ?

Et répondre à la question : Tous les blocs dynamiques avec le paramètre de visibilité sur « Trame » passe en « Contour ».

 

Je suis sur de ne pas réussir à faire ce code seul, et je n’aime pas « passer commande » sur Cadxp, mais comme je disais en intro, l’allumette est très courte et la barre est haute…

 

Posté(e)

Salut

 

On va ajouter des rallonges ;)

 

Je suppose que tu sais faire la différence entre blocs "simple" et dynamiques et que tu connais le vlisp

Pour trouver les propriétés dynamiques, tu fais une boucle dans l'appel de la focntion getdynamicblockproperties de ton bloc

 

Par exemple

(mapcar 'vla-get-propertyname (vlax-invoke (vlax-ename->vla-object (car (entsel))) 'getdynamicblockproperties))

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

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é