lili2006 Posté(e) le 12 juillet 2008 Partager Posté(e) le 12 juillet 2008 Re, Tout semble bien fonctionner chez moi ! Une idée, un peu comme la commande find => cumuler plusieurs filtrage ? Je ne me rend pas compte de la difficulté, donc arrêtes moi tout de suite si tu le penses ! Exemple => 1er jeu de selection => Etat de visibilité = 1/75 (les blocs conformes restent sélectionnés) 2nd jeu de selection => Distance1 = 120 (seul les blocs correspondant à ces deux critères restent sélectionnés) (Je fais référence aux données du fichier joint plus haut !) Civil 3D 2025 - COVADIS_18.3a https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 12 juillet 2008 Partager Posté(e) le 12 juillet 2008 Et comme le début de "sel" appelle (du moins, je suppose !!) "spécial selection" (Rappel => "IncrInputbox:dialog{label=\"Spécial sélections\";") Non, sel n'appelle pas "spécial_sélection", il s'agit du titre de la boite de dialogue (label). Les LISP appelés par sel doivent être chargés (depuis un seul fichier ou séparément, peu importe. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 12 juillet 2008 Partager Posté(e) le 12 juillet 2008 Re, Ok (gile) ! J'ai testé sur des blocs assez complexes, ça roule nickel !! Et que penses-tu de l'idée de la réponse 25 ? Merci encore, Civil 3D 2025 - COVADIS_18.3a https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 12 juillet 2008 Partager Posté(e) le 12 juillet 2008 hello gile lili pas de souci pour moi ca marche phil Autodesk Architecture 2023 sous windows 11 64 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 12 juillet 2008 Partager Posté(e) le 12 juillet 2008 Une nouvelle version pour filtrer avec les valeurs d'un ou plusieurs paramètres EDIT : si aucune valeur de propriété n'est entrée dans les cases de la BD, tous les blocs de même nom (EffectiveName) sont sélectionnés. ;;; SSD (gile) -13/07/08- ;;; Sélection de blocs dynamiques par des valeurs de paramètres dynamiques (defun c:ssd (/ DynBlkPropValue ss blk name ret sel res) (vl-load-com) ;; DynBlkPropValue ;; Boite de dialogue pour choisir des valeurs de paramètres dynamiques ;; ;; Argument : la liste des paramètres dynamiques (defun DynBlkPropValue (lst / tmp file dcl_id val) (setq tmp (vl-filename-mktemp "Tmp.dcl") file (open tmp "w") ) (write-line (strcat "DynBlkProps:dialog{label=\"Filtre de blocs dynamiques\";" ":text{label=\"Nom du bloc : \"" (vl-prin1-to-string name) ";}spacer;:boxed_column{label=\"Propriétés dynamiques\";" ) file ) (foreach p lst (write-line (strcat ":edit_box{label=" (vl-prin1-to-string p) ";key=" (vl-prin1-to-string p) ";edit_width=25;allow_accept=true;}" ) file ) ) (write-line (strcat "}spacer;:radio_row{key=\"selset\";" ":radio_button{label=\"Tout le dessin\";key=\"all\";}" ":radio_button{label=\"Sélection\";key=\"sel\";}}" "spacer;ok_cancel;}" ) file ) (close file) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "DynBlkProps" dcl_id)) (exit) ) (set_tile "all" "1") (action_tile "accept" "(foreach p lst (if (/= (setq val (get_tile p)) \"\") (setq ret (cons (cons p (cond ((numberp (read val)) (read val)) ((listp (read val)) (read val)) (T (strcase val)))) ret)))) (and (not ret) (setq ret T)) (setq sel (get_tile \"selset\")) (done_dialog)" ) (action_tile "cancel" "(setq ret nil)") (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) ret ) ;;----------------------------------------------------;; (and (or (and (setq ss (cadr (ssgetfirst))) (= 1 (sslength ss)) (setq blk (vlax-ename->vla-object (ssname ss 0))) ) (and (sssetfirst nil nil) (setq blk (car (entsel))) (setq blk (vlax-ename->vla-object blk)) ) ) (= (vla-get-ObjectName blk) "AcDbBlockReference") (= (vla-get-IsDynamicBlock blk) :vlax-true) (setq name (vla-get-EffectiveName blk)) (DynBlkPropValue (vl-remove-if (function (lambda (x) (= x "Origin")) ) (mapcar 'vla-get-PropertyName (vlax-invoke blk 'getDynamicBlockProperties) ) ) ) (if (= sel "all") (ssget "_X" (list '(0 . "INSERT") (cons 2 (strcat name ",`*U*"))) ) (ssget (list '(0 . "INSERT") (cons 2 (strcat name ",`*U*"))) ) ) (setq res (ssadd)) (vlax-for b (setq ss (vla-get-ActiveSelectionSet (vla-get-activeDocument (vlax-get-acad-object) ) ) ) (if (and (= (vla-get-EffectiveName b) name) (or (= ret T) (equal (reverse ret) (vl-remove-if-not (function (lambda (p) (assoc (car p) ret)) ) (mapcar '(lambda (x) (cons (vla-get-PropertyName x) ((lambda (v) (if (= (type v) 'STR) (strcase v) v ) ) (vlax-get x 'Value) ) ) ) (vlax-invoke b 'getDynamicBlockProperties) ) ) ) ) ) (ssadd (vlax-vla-object->ename b) res) ) ) (vla-delete ss) ) (sssetfirst nil res) (princ) ) [Edité le 13/7/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 12 juillet 2008 Partager Posté(e) le 12 juillet 2008 Rere, Excellent (gile) ,... Multi filtrage parfait et très facile pour renseigner les différents critères de recherche,... Chapeau ! Je suis une fois de plus impressionné,.. Une idée, et aussitôt concrétisation ! (Et fonctionne instantanément !). Quant je pense que ludo07 , voulait jusqu'à laisser tomber les blocsdyns,... Il va halluciner en revenant sur ce post,... :P Salut PHILPHIL , Marche aussi chez toi "SSDM" ? Civil 3D 2025 - COVADIS_18.3a https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 12 juillet 2008 Partager Posté(e) le 12 juillet 2008 hello gile avec ssdm tant que l'on rentre que des chiffres ca va quand on cherche avec le parametre etat d'inversion le programme ne trouve plus rien autant avec des parametre a chiffre on peut mettre ce que l'on veutautant avec l'etat d'inversion on a pas le choix soit "Inversé" ou " Pas inversé" le fait de devoir ecrire avec la majuscule du début et l'accent sur le "é" en fina son importance ou pas ???? apres vérification il faut renseigner l'etat d'inversion en ecrivant : "0" = pas inversé"1" = inversé je suis tombé dans le panneau de récrire comme dans la fenetre des propriétées et la pas de souci le programme trouve les blocs ca serait possible d'avoir un bouton ne laissant que les trois possibilités"Inversé""Pas inversé""aucun" phil [Edité le 12/7/2008 par PHILPHIL] [Edité le 12/7/2008 par PHILPHIL] Autodesk Architecture 2023 sous windows 11 64 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 12 juillet 2008 Partager Posté(e) le 12 juillet 2008 ca serait possible d'avoir un bouton ne laissant que les trois possibilités"Inversé""Pas inversé""aucun" Tu as donné toi même la réponse : entrer 1 ou 0 le fait de devoir ecrire avec la majuscule du début et l'accent sur le "é" en fin a son importance ou pas ???? Les entrées alphabétiques (état de visibilité par exemple) ne tiennent pas compte de la casse (tout est automatiquement passé en majuscules pour la comparaison). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 12 juillet 2008 Partager Posté(e) le 12 juillet 2008 Re, Ce qui est vraiment tip-top c'est de pouvoir travailler sur les blocs sélectionnés un par un sans perdre le filtre de sélection,... Encore un grand merci (gile) , c'est ce qu'il manquait aux blocs dyns pour être des outils incroyables,.... Civil 3D 2025 - COVADIS_18.3a https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 12 juillet 2008 Partager Posté(e) le 12 juillet 2008 Rere, c'est de pouvoir travailler sur les blocs sélectionnés un par un sans perdre le filtre de sélection,... J'voulais dire si on à des modifs différentes selon le filtrage réalisé ! (Sans passer par la palette des propriétés !) Testé à peu près de façon identique sur une 2008 et sur une 2009, aucun soucis !! :D :D Civil 3D 2025 - COVADIS_18.3a https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 12 juillet 2008 Partager Posté(e) le 12 juillet 2008 J'ai ajouté deux boutons radio à la dernière version (renommée SSD) pour choisir entre une sélection dans tout le dessin ou dans une fenêtre spécifiée par l'utilisateur. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 12 juillet 2008 Partager Posté(e) le 12 juillet 2008 Rere, La cerise sur le gâteau, ;) Merci encore (gile) Civil 3D 2025 - COVADIS_18.3a https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 13 juillet 2008 Partager Posté(e) le 13 juillet 2008 Nouvelle petite amélioration pour un fonctionnement plus "cohérent". Quand on ne spécifie pas de valeur de proptiété dans une case de la BD, toutes les valeurs pour cette propriété sont acceptées.Donc, si aucune valeur de propriété dynamique n'est entrée dans la BD (toutes les cases vides), le filtre se fait uniquement sur le nom et tout les blocs de même nom (EffectiveName) seront sélectionnés. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
ludo07 Posté(e) le 13 juillet 2008 Auteur Partager Posté(e) le 13 juillet 2008 Bonjour à tous, Merci à toi une fois de plus (gile), LILI2006: cette fois c'est sur je n'abandonne plus les blocs dynamic. Et Monsieur AUTODESK devrait vraiment dans AUTOCAD 2010 intégré une selection pour les blocs dynamics qui s'inspires du programme de (gile). (gile): je vais un tous petit peu abuser, mais te serait-il possible dans les différents choix : ex: visibilité, consultation ...... à la place de faire une fenêtre dans laquelle on doit saisir une valeur. Avoir une fenêtre déroulante qui liste les différente valeurs des différents bloc dynamics. On aurait juste à parcourir les différents valeurs et à séléectionner celle que l'on veut conserver pour la recherche. Merci (gile). A+++++++++++++++ Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 13 juillet 2008 Partager Posté(e) le 13 juillet 2008 Salut, Ça commence à devenir sérieusement pointu au niveau modulation de la boite de dialogue suivant les propriétés dynamiques du bloc. Je mets ici une nouvelle version qui tente de répondre à ta demande, je n'ai pas fais de tests très approfondis. On peut faire une sélection en entrant ssd à ligne de commande, on peut aussi appeler la routine à l'intérieur d'une commande en entrant (ssd) à l'invite "Choix des objets: " (voir l'explication de Patrick_35 au début de ce sujet). EDIT 1 : version2.1 modification mineuresEDIT 2 : version 2.2 ajout d'une tolérance de comparaison pour les valeurs numériques (distances, angles)EDIT 3 : version 2.3 Entrée des distances et angles dans l'unité courante. ;;; SSD version 2.3 beta (gile) 14/07/08 ;;; Sélection de blocs dynamiques par des valeurs de paramètres dynamiques (defun ssd (/ DynBlkPropValue ss blk name pop fuzz ret sel res) (vl-load-com) ;; DynBlkPropValue ;; Boite de dialogue pour choisir des valeurs de paramètres dynamiques ;; ;; Argument : la liste des paramètres dynamiques (defun DynBlkPropValue (lst / tmp file pn av dcl_id val) (setq tmp (vl-filename-mktemp "Tmp.dcl") file (open tmp "w") ) (write-line (strcat "DynBlkProps:dialog{label=\"Filtre de blocs dynamiques\";" ":text{label=\"Nom du bloc : \"" (vl-prin1-to-string name) ";}spacer;:boxed_column{label=\"Propriétés dynamiques\";" ) file ) (foreach p lst (setq pn (vla-get-PropertyName p)) (cond ((setq av (vlax-get p 'AllowedValues)) (setq pop (cons (cons pn (cons "" (mapcar 'vl-princ-to-string av))) pop ) ) (write-line (strcat ":popup_list{label=" (vl-prin1-to-string pn) ";key=" (vl-prin1-to-string pn) ";edit_width=25;allow_accept=true;}" ) file ) ) ((/= pn "Origin") (setq fuzz (cons pn fuzz)) (write-line (strcat ":row{:edit_box{label=" (vl-prin1-to-string pn) ";key=" (vl-prin1-to-string pn) ";edit_width=12;allow_accept=true;}" ":edit_box{label=\"Tolérance\";key=" (vl-prin1-to-string (strcat pn "_fuzz")) ";value=\"0.0\";edit_width=6;allow_accept=true;}}" ) file ) ) ) ) (write-line (strcat "}spacer;:radio_row{key=\"selset\";" ":radio_button{label=\"Tout le dessin\";key=\"all\";value=\"1\";}" ":radio_button{label=\"Sélection\";key=\"sel\";}}" "spacer;ok_cancel;}" ) file ) (close file) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "DynBlkProps" dcl_id)) (exit) ) (foreach p pop (start_list (car p)) (mapcar 'add_list (cdr p)) (end_list) ) (action_tile "accept" "(foreach p (mapcar 'vla-get-PropertyName lst) (if (assoc p pop) (setq val (nth (atoi (get_tile p)) (cdr (assoc p pop)))) (setq val (get_tile p))) (if (and val (/= val \"\")) (setq ret (cons (cons p val) ret)))) (setq fuzz (mapcar (function (lambda (x) (cons x (get_tile (strcat x \"_fuzz\"))))) fuzz)) (and (not ret) (setq ret T)) (setq sel (get_tile \"selset\")) (done_dialog)" ) (action_tile "cancel" "(setq ret nil)") (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) ret ) ;;----------------------------------------------------;; (and (or (and (setq ss (cadr (ssgetfirst))) (= 1 (sslength ss)) (setq blk (vlax-ename->vla-object (ssname ss 0))) (sssetfirst nil nil) ) (and (sssetfirst nil nil) (setq blk (car (entsel))) (setq blk (vlax-ename->vla-object blk)) ) ) (= (vla-get-ObjectName blk) "AcDbBlockReference") (= (vla-get-IsDynamicBlock blk) :vlax-true) (setq name (vla-get-EffectiveName blk)) (DynBlkPropValue (vlax-invoke blk 'getDynamicBlockProperties) ) (if (= sel "all") (ssget "_X" (list '(0 . "INSERT") (cons 2 (strcat name ",`*U*"))) ) (ssget (list '(0 . "INSERT") (cons 2 (strcat name ",`*U*"))) ) ) (setq res (ssadd)) (vlax-for b (setq ss (vla-get-ActiveSelectionSet (vla-get-activeDocument (vlax-get-acad-object) ) ) ) (if (and (= (vla-get-EffectiveName b) name) (or (= ret T) ((lambda (lst) (apply '= (cons T (mapcar (function (lambda (p / n v l u f) (setq n (car p) l (assoc n lst) u (vla-get-UnitsType (caddr l)) ) (equal (cond ((= 0 u) (cdr p)) ((= 1 u) (angtof (cdr p))) (T (distof (cdr p))) ) (cadr l) (if (and (setq f (cdr (assoc n fuzz))) (numberp (read f)) ) (atof f) 0.0 ) ) ) ) ret ) ) ) ) (mapcar (function (lambda (p / n v) (list (setq n (vla-get-PropertyName p)) (vlax-get p 'Value) p ) ) ) (vlax-invoke b 'getDynamicBlockProperties) ) ) ) ) (ssadd (vlax-vla-object->ename b) res) ) ) (vla-delete ss) ) res ) (defun c:ssd () (sssetfirst nil (ssd)) (princ) ) [Edité le 14/7/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
ludo07 Posté(e) le 13 juillet 2008 Auteur Partager Posté(e) le 13 juillet 2008 OK (gile) pour ma part c'est plus que bon et je t'en remerci. Je viens d'essayer ton SSD avec un autre bloc dynamic dans lequel il y a beaucoup plus de paramettre que dans mon premier bloc dynamic avec lequel je faisais mes essais initiaux. Et je me suis rendu compte que ta boite était beaucoup plus longue qu'avant, alors bien car en faite tu a prévu de faire des tris sur tous les paramêtres d'un bloc dynamic et pas seulement sur le paramêtre de "consultation". Je disais dans un de mes message que tu étais un 1/2 dieu mais je peu t'élever au grade de DIEU. prend pas la grosse tête quand même, mais c'est sincére. Car pour moi le fait de ne pas pouvoir A CE JOUR séléectionner un bloc dynamic en fonction d'un paramêtre afin de pouvoir le remplacer par un autre était vraiment rédibitoir. Quand tu insers 50 fois un bloc dynamic de poteaux en 50x50 parmis les 250 poteaux d'un projet de 200 000m² et que tu dois les retrouver pour les changer de section en 40x40, cela m' a demander 30 minutes. Alors pour la dernière fois pour ce sujet : MERCI A+ Et bon week end en espérant que tu n'a pas passer trop de temps dessus et que tu as pu profiter de ton week end. CIAO Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 14 juillet 2008 Partager Posté(e) le 14 juillet 2008 Suite à un suggestion sur un autre forum, j'ai ajouté la possibilité de spécifier une tolétance dans la comparaison des valeurs numériques (distance, angle ...) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 16 juillet 2008 Partager Posté(e) le 16 juillet 2008 Bonjour à toutes et tous, Je n'ai malheureusement pas la possibilités de tester maintenant, mais je ne doute pas de l'évolution de cet outil qui était déjà terrible !!! Je profite de ce post pour poser une question sur les BD lié aux lisps. Comment peut-on faire appel depuis un lisp aux différents paramètres du BD (distances, angle,etats de visibilités,...) afin de renseigner ces paramètres depuis le lisp !!! J'espère m'être fait comprendre (je dispose de peu de temps et ne pourrai revenir voir que demain dans la journée,... :mad: ) Merci d'avance. LILI2006: cette fois c'est sur je n'abandonne plus les blocs dynamic. Me semble une très très bonne idée,.... Civil 3D 2025 - COVADIS_18.3a https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
yw22 Posté(e) le 16 juillet 2008 Partager Posté(e) le 16 juillet 2008 Bonjour à toutes et à tous, Je suis très intéressé par cette discussion. Mais malheureusement, je suis peu formé quand à l'utilisation de lisp de cette complexité. Est-il possible de développer un exemple pratique avec un bloc dynamique. Je suis prêt à dévelloper, un tuto avec saisie d'écran (du style Jeu de feuilles), avec votre aide j'espère. Pour commencer ! 1° Quel type de bloc dynamique faut-il dessiner ?2° Comment employer le lisp ?3° Quel sera le résultat obtenu ? Merci par avance pour vos réponses. Cordialement. yw22 Ps. Je ne pense pas que je vais me mettre à étudier le lisp (il faut laisser quelle que chose pour la prochaine vie !!!, mais très certainement tirer parti des divers applications présentes ce forum (comprendre le sens et les mettre en pratique). yw22 Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 16 juillet 2008 Partager Posté(e) le 16 juillet 2008 Re, Rapidement (faut qu'je parte, snif :mad: ) 1° Quel type de bloc dynamique faut-il dessiner ? Aucune importance ! 2° Comment employer le lisp ? Tu le charges et tu lances la commande 'ssd" depuis ta barre de commande Eventuellement, un p'tit tour ici 3° Quel sera le résultat obtenu ? Une Boite de dialogue ou tu peux remplir un ou plusieurs critères de sélection de filtre. mais très certainement tirer parti des divers applications présentes ce forum (comprendre le sens et les mettre en pratique). Encore une excellente idée ! @+, Civil 3D 2025 - COVADIS_18.3a https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 16 juillet 2008 Partager Posté(e) le 16 juillet 2008 Salut, Comment peut-on faire appel depuis un lisp aux différents paramètres du BD (distances, angle,etats de visibilités,...) afin de renseigner ces paramètres depuis le lisp !!! Visual LISP permet d'accéder aux paramètres des blocs dynamiques, je récupère ces paramètres depuis le bloc source sélectionné.Le fichier DCL qui définit dans la boite de dialogue est ensuite créé depuis le LISP dans un répertoire temporaire en fonction de ces informations : nombre et nature des paramètres.À la fermeture de la boite de dialogue, les entrée utilisateur sont récupérées et servent comparer tous les blocs dynamiques de même nom sélectionnés pour ne conserver que ceux dont les valeurs correspondent aux données. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 16 juillet 2008 Partager Posté(e) le 16 juillet 2008 Re, depuis le bloc source sélectionné. Merci (Gile) , mais peux-tu développer un peu STP ?? Je cherche en fait à entrer les données dynamiques de mes blocs depuis un lisp, Peux-tu m'aiguiller sur la façon de procéder , Merci d'avance. (Je repasserai demain,,..) Civil 3D 2025 - COVADIS_18.3a https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 16 juillet 2008 Partager Posté(e) le 16 juillet 2008 lili2006, Sans vouloir préjuger de tes capacités/connaissances en LISP, ce que tu veut faire là n'est pas vraiment du niveau débutant.Cela suppose une connaissance de Visual LISP, sans dispenser d'une maitrise d'AutoLISP. On sélectionne un bloc : (setq blk (car (entsel \nSélectionnez un bloc dynamique))) À la variable blk est attribué le nom d'entité (ENAME) de la référence de bloc.Pour pouvoir le traiter en Visual LISP il faut le transformer en objet "vla" (VLA-OBJECT). (setq blk (vlax-ename->vla-object blk) On peut maintenant récupérer la liste des propriétés dynamiques du bloc. (setq prop-lst (vlax-invoke blk 'getDynamicBlockProperties)) prop list est une liste de VLA-OBJECTs dont chacun a ses propre propriétés, exemple : PropertyName : le nom du paramètre, AllowedValues : les valeurs acceptées pour les paramètres de visibilité, consultation ou inversionUnitsType : le type d'unité de la valeur (distance, angle surface ou aucune)Value : sa valeurOn peut voir toutes les propriétés et méthode d'un VLA-OBJECT avec la fonction vlax-dump-object.Par exemple (vlax-dump-object (car prop-lst)) retourne les propriétés de la première propriété dynamique contenue dans prop-lst. À l'intérieur d'une routine on utilise vla-get-* pour récupérer la valeur d'une propriété et vla-put-* pour lui attribuer une valeur (si elle n'est pas Read-Only) par exemple : (mapcar 'vla-get-PropertyName prop-lst) retournera la liste des noms de propriété correspondant à prop-lst. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 16 juillet 2008 Partager Posté(e) le 16 juillet 2008 Re, Merci (gile) de ta réponse. Sans vouloir préjuger de tes capacités/connaissances en LISP Je suis accompagné de personnes qui connaissent bien le lisp et essayons de renseigner les propriétés dynamiques depuis un lisp. Ces personnes ne connaissant que très peu le VL étaient donc bloqués. Depuis tes infos, nous allons essayer de suivre tes conseils et reviendrons donner des nouvelles, Merci encore, Civil 3D 2025 - COVADIS_18.3a https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 17 juillet 2008 Partager Posté(e) le 17 juillet 2008 Bonjour à toutes et tous, Suite aux différents tests, nous sommes bloqués dans la récupération des informations de la liste des paramètres dynamiques. Exemple (variante 0 1/50), nous n'arrivons pas à récupérer juste l'état de visibilité nommé 1/50 et le remplacer par une saisie clavier à l'insertion du bloc par le lisp,(Même problème pour les autres paramètres,...). Peux-tu jeter un oeil sur le dossier ci-joint contenant le lisp et le fichier test pour nous débloquer (Un commentaire est en fin de lisp) ?. Merci (Gile) pour tes premières explications, mais malheureusement personne ne connait le Vlisp autour de moi,... Merci d'avance. Civil 3D 2025 - COVADIS_18.3a https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
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