Aviglémy Posté(e) le 7 juillet 2010 Posté(e) le 7 juillet 2010 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...
(gile) Posté(e) le 8 juillet 2010 Posté(e) le 8 juillet 2010 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
Aviglémy Posté(e) le 9 juillet 2010 Auteur Posté(e) le 9 juillet 2010 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…
Patrick_35 Posté(e) le 9 juillet 2010 Posté(e) le 9 juillet 2010 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 vlispPour 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 PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 9 juillet 2010 Posté(e) le 9 juillet 2010 Salut, Pour une sélection de blocs suivant les valeurs de paramètres dynamiques, tu trouveras la commande SSD dans Special_Selection.lsp sur cette page. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Aviglémy Posté(e) le 12 juillet 2010 Auteur Posté(e) le 12 juillet 2010 Merci à vous deux !!C'est la sélection spéciale qu'il fallait ! Ma demande fait écho à ce post : SELETION BLOC DYNAMIC!!!!!!!! Si vous n’êtes pas lassé des compliments : BRAVO !
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