ludo07 Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 Bonjour à tous, Avant de me lancer dans la création d'un bloc dynamic pour mes différents section de poteau, j'ai quand même voulu savoir si un bloc dynamic était séléctionnable soit par la commande "filter" soit par "_qselect". Bin moi j'y suis pas arrivé. SNIF :casstet: Explication: Dans mon bloc dynamic j'ai un paramêtre de consultation qui affiche les différents section de poteau:20x20,30x30,40x40..............J'insers mon bloc dynamic dans un plan j'en ai 20 avec le paramêtre de consulatation 20x20 et 10 avec le paramêtre de consultation 40x40.Comment je fais pour selectionner en une fois tous mes poteaux 40x40 pour les passer en 30x30? Quelqu'un à une idée? MERCI Car là j'ai un gros problème et cela pourrait me faire arréter l'usage des blocs dynamics. A+
jalna Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 Salut!Très bonne question!! A part avec un lisp je vois pas trop sinon les mettre sur un calque différent "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/
lili2006 Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 Bonjour à toutes et tous, Comment je fais pour selectionner en une fois tous mes poteaux 40x40 pour les passer en 30x30? Je rejoint jalna Très bonne question!! A part une perso, je ne vois vraiment pas non plus et il est vrai que ce serait génial de pouvoir réaliser instantanément une modification sur tous les blocs "filtrés",... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Patrick_35 Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 Salut Avec ce petit lisp par exemple (defun selbl(/ js nom rec sel) (vl-load-com) (setq js (ssadd)) (and (setq nom (getstring T "\nNom du bloc : ")) (tblsearch "block" nom) (ssget (list (cons 0 "INSERT") (cons 2 (strcat nom ",`*U*")))) (progn (vlax-for bl (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) (setq rec (if (vlax-property-available-p bl 'effectivename) (vla-get-effectivename bl) (vla-get-name bl) ) ) (and (eq (strcase rec) (strcase nom)) (setq js (ssadd (vlax-vla-object->ename bl) js)) ) ) (vla-delete sel) ) ) js ) Exemple :Commande: dpDEPLACERChoix des objets: (selbl) Nom du bloc : test Choix des objets: Spécifiez le coin opposé: 2 trouvé(s) Choix des objets:2 trouvé(s) Choix des objets: Spécifiez le point de base ou [Déplacement] : Spécifiez le deuxième point ou : *Annuler* @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lili2006 Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 Re, Excuse moi Patrick_35, mais si on reprend l'exemple de ludo07, on peut alors modifier les paramètres dynamiques de tous les blocs filtrés ? Comme dirai LUDWIG, J'y arrive pô ! Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Patrick_35 Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 Ben ouiUn bloc dynamique dans un dessin est nommé comme un bloc anonyme et chaque bloc anonyme est unique.D'ailleurs, les noms des blocs dynamiques commencent toujours par *U*.La seul chose en commun est le paramètre EffectiveName qui donne le nom du bloc dynamique qui est le même que celui qui sert par exemple lors de l'insertion.Donc, pour pouvoir retrouver ses petits, ce bout de lisp que l'on lance lors de la sélection. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
ludo07 Posté(e) le 11 juillet 2008 Auteur Posté(e) le 11 juillet 2008 Salut Patrick_35, en effet quand j'essaye ton lisp il agit pas sur le paramêtre de consultation du bloc dynamic. A+
ludo07 Posté(e) le 11 juillet 2008 Auteur Posté(e) le 11 juillet 2008 Tu à r^pondu trop vite , je suis un peu lent. Donc cela signifie qu'on ne peu pas selectionner et faire un tri sur un bloc dynamic en fonction d'un paramêtre de consultation. AIE, AIE. Est ce que AUTODESK à prévu quelque chose pour cela, car pour moi cela annonce la fin des blocs dynamic. A+
Patrick_35 Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 A part en utilisant un lisp, je ne vois pas Perso, je n'utilise presque pas les blocs dynamiques. Peut-être un tord. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lili2006 Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 Re, Merci pour ta réponse Patrick_35, AIE, AIE. Pareil pour moi,... Autant les blocs dyns c'est génial car on peut faire vraiment énorméméent de choses (surtout en les associants à du language DIESEL) mais la limite est celle que tu énonces ludo07, et ça ça me fait penser à un travail non aboutit ! Mr Autodesk, si tu nous lis, (mais j'ai de gros doutes,...) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 Re, Peut-être un tord. Tu en as peut-être pas vu l'intérêt car tu sais déjà faire plein de trucs dans d'autres languages,.... :P Personnellemnt, je m'attaque à ce qui me semble le plus abordable en premier, plus par "manque de temps" que d'envie,... Et les blocs dyns, faut reconnaître que c'est une révolution dans la façon de travailler, et ça, y'a pas photo pour moi ! car pour moi cela annonce la fin des blocs dynamic. N'éxagérons rien ! Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
BIGC-ROMU Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 Bonsoir tout le monde. LILI2006, peut tu nous en dire plus! on peut faire vraiment énorméméent de choses (surtout en les associants à du language DIESEL) Etant un utilisateur archarné de blocs dynamiques, cela pourrait m'interesser... :P A+
lili2006 Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 Re, Par exemple pour retrouver dans une nomenclature la longueur développée d'un acier après étirement => Exemple ici sur un casque de pieu => les cotes du cadre (Acier repérés 1) se mettent à jour en fonction de l'étirement de ces différentes caractéristiques. http://images4.hiboox.com/images/2808/76ea049d898a56954abb5736bb9a103a.jpg Exemple d'écriture pour récupérer la longueur développée (Longueur totale Lt = 209 cm dans notre exemple) => 800x600http://images4.hiboox.com/images/2808/d4ba73287d6552fab30cd6bf12516209.jpg"[/img] Je ne peux pas mettre le fichier en ligne car développé conjointement avec un BE de structure qui compte faire des définitions de tous les ouvrages élémentaires de construction bâtiment. A ce jour, sur le même principe, environ 10 éléments (tout ce qui touche de prés et de loin aux fondations de tous types, et ça marche du feu de dieu,...) Je pars pour 15 jours testé ça grandeur nature en production ! J'estime à un gain d'efficacité de l'ordre de 1 pou 4 !!! Bref, la révolution lorsque l'on à que AutoCAD ! Je pense (du moins j'espère) qu'il n'y aura aucun soucis de lecture sur des lights, mais je suis confiant,... Je t'en dirais alors plus à mon retour,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 Salut, Donc cela signifie qu'on ne peu pas selectionner et faire un tri sur un bloc dynamic en fonction d'un paramêtre de consultation. Non, on peut avec de la programmation.Vite fait en reprenant le LISP de Patrick_35, en plus du nom du bloc, il faut donner le nom du paramètre de consultation et sa valeur. (defun selbl (/ js nom cns val rec sel prop) (vl-load-com) (setq js (ssadd)) (and (setq nom (getstring T "\nNom du bloc : ")) (tblsearch "block" nom) (setq cns (strcase (getstring T "\nNom du paramètre de consultation : "))) (setq val (getstring T "\nValeur de la consultation : ")) (ssget (list (cons 0 "INSERT") (cons 2 (strcat nom ",`*U*"))) ) (progn (vlax-for bl (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)) ) ) (setq rec (if (vlax-property-available-p bl 'effectivename) (vla-get-effectivename bl) (vla-get-name bl) ) ) (and (eq (strcase rec) (strcase nom)) (eq (vla-get-IsDynamicBlock bl) :vlax-true) (eq val (cdr (assoc cns (mapcar '(lambda (x) (cons (strcase (vla-get-PropertyName x)) (vlax-variant-value (vla-get-value x)) ) ) (vlax-invoke bl 'getDynamicBlockProperties) ) ) ) ) (setq prop (vlax-invoke bl 'getdynamicblockproperties)) (setq js (ssadd (vlax-vla-object->ename bl) js)) ) ) (vla-delete sel) ) ) js ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 Re, Désolé (gile) , mais je n'arrive à aucun résultats ! Mais je sais que je m'y prend mal => Commande: selbl Nom du bloc : MASSIF COFFRAGE DYN Nom du paramètre de consultation : linéaire Valeur de la consultation : 140 Choix des objets: Spécifiez le coin opposé: 1 trouvé(s) Choix des objets: Que faut-il répondre aux questions ?Nom du paramètre de consultation :Valeur de la consultation Un fichier test , éventuellement, Il faut absolument associer un paramètre de consultation je suppose ?Il faut que je reprenne ce bloc pour pouvoir tester ton lisp je pense. Jeu de valeurs de l'étirement => http://images4.hiboox.com/images/2808/b3827a5acb5f495048fa23e00f92230b.jpg Merci d'avance, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 12 juillet 2008 Posté(e) le 12 juillet 2008 Re, Désolé (gile) , mais je n'arrive à aucun résultats ! Mais je sais que je m'y prend mal => Commande: selbl Nom du bloc : MASSIF COFFRAGE DYN Nom du paramètre de consultation : linéaire Valeur de la consultation : 140 Choix des objets: Spécifiez le coin opposé: 1 trouvé(s) [surligneur]Choix des objets: [/surligneur] Si tu as un résultat : un jeu de sélection. Relis attentivement l'exemple d'utilisation donné par Patrick_35 ou essaye : (sssetfirst nil (selbl)) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 12 juillet 2008 Posté(e) le 12 juillet 2008 Salut, Dans le même esprit que les petites routines de Spécial_sélections, un routine pour sélectionner tous les blocs dynamiques qui ont la même valeur (pour le même paramètre) que ceux spécifiés dans la boite de dialogue. Je le laisse quelques temps en test pour corriger les bugs ou apporter des améliorations, je le rajouterais à Spécial_sélections ensuite. EDIT : suppression du fichier DCL temporaire. ;;; SSD (gile) ;;; Sélection de blocs dynamiques par un paramètre et sa valeur (defun c:ssd (/ ss blk name val res) (vl-load-com) (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)) (setq val (DynBlkPropValue (vl-remove-if (function (lambda (x) (= x "Origin")) ) (mapcar 'vla-get-PropertyName (vlax-invoke blk 'getDynamicBlockProperties) ) ) ) ) (ssget "_X" (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) (equal val (assoc (car val) (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) ) ;;; DynBlkPropValue (gile) ;;; Boite de dialogue pour choisir un paramètre dynamique et sa valeur ;;; ;;; Argument : la liste des paramètres dynamiques (defun DynBlkPropValue (lst / tmp file dcl_id val ret) (setq tmp (vl-filename-mktemp "Tmp.dcl") file (open tmp "w") ) (write-line "DynBlkProp:dialog{label=\"Propriétés dynamiques\"; :popup_list{label=\"Paramètre\";key=\"lst\";edit_width=25;allow_accept=true;} :edit_box{label=\"Valeur\";key=\"val\";edit_width=25;allow_accept=true;} spacer;ok_cancel;}" file ) (close file) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "DynBlkProp" dcl_id)) (exit) ) (start_list "lst") (mapcar 'add_list lst) (end_list) (action_tile "val" "(setq val $value)") (action_tile "accept" "(setq ret (cons (nth (atoi (get_tile \"lst\")) lst) (cond ((numberp (read val)) (read val)) ((listp (read val)) (read val)) (T (strcase val))))) (done_dialog)" ) (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) ret ) [Edité le 12/7/2008 par (gile)] [Edité le 12/7/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 12 juillet 2008 Posté(e) le 12 juillet 2008 Bonjour à toutes et tous, Je pense avoir compris l'esprit du Lisp de Patrick_35 ! J'ai testé SSD => Commande: ssdChoix de l'objet: ; erreur: type d'argument incorrect: VLA-OBJECT nilCommande: Une idée ? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 12 juillet 2008 Posté(e) le 12 juillet 2008 Re, Avec "(sssetfirst nil (selbl))" => Commande: (sssetfirst nil (selbl))Nom du bloc : testNom du paramètre de consultation : linéaireValeur de la consultation : 120Choix des objets: Spécifiez le coin opposé: 9 trouvé(s)Choix des objets:(nil ) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
ludo07 Posté(e) le 12 juillet 2008 Auteur Posté(e) le 12 juillet 2008 Bonjour à tous, Merci (gile) tu es un dieu. Ou un 1/2 dieu, enfin bref c'est exacrement ce que je rechercher. Et je pense que Mr AUTODESK devrait incorporer ce genre de programme pour completer la commande "_QSELECT". Merci (gile) A+
(gile) Posté(e) le 12 juillet 2008 Posté(e) le 12 juillet 2008 Salut lili2006, Tu peux ré-essayer SSB, il y avait une faute de frappe dans un nom de variable, c'est réparé. Si (sssetfirst nil (selbl)) retourne (nil ), c'est donc que ça fonctionne, le jeu de sélection devrait être mis en surbrillance (à moins qu'il soit vide) [Edité le 12/7/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 12 juillet 2008 Posté(e) le 12 juillet 2008 Re, J'ai à nouveau modifié le code, j'avais oublié de supprimer le fichier DCL temporaire créé à chaque appel.Ces fichiers sont enregistrés dans le dossier dont le chemin est donné dans Options > onglet Fichiers > Emplacement du fichier d'enregistrement automatique. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 12 juillet 2008 Posté(e) le 12 juillet 2008 Re, (gile) ça marche du tonnerre de dieu !!! Un grand merci ! Un outil qui va vite devenir indispensable !! Que dois-je rajouter au lisp "sel" pour avoir également SSD ? Si c'est la dernière ligne, un truc du genre => ":radio_button{""label=\"Sel Paramètre Blocdyn\";key=\"(c:ssd)\";}}""ok_cancel;}" Pour que le bouton radio fonctionne, il faut rajouter le lisp "ssd" dans "Spécial_sélections", ou il peut rester indépendant si charger ? J'avoue que je te pose la question avant de tester,... Merci encore, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 12 juillet 2008 Posté(e) le 12 juillet 2008 Le LISP peut rester indépendant, j'attends un peu de voir si d'aucun décèle des bugs avant de l'ajouter à Spécial_sélections. Tu peux rajouter les lignes de code que tu donnes, juste avant "ok_cancel;}" dans SEL. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 12 juillet 2008 Posté(e) le 12 juillet 2008 Re, Merci (gile) , tout fonctionne, j'attends un peu de voir si d'aucun décèle des bugs avant de l'ajouter à Spécial_sélections. Oui oui, bien sûr ! Je profite de cet exercice pour tenter de comprendre comment marche les boutons faisant appel aux lisps. Et comme le début de "sel" appelle (du moins, je suppose !!) "spécial selection" (Rappel => "IncrInputbox:dialog{label=\"Spécial sélections\";"), je me demandais si cela posait un pb pour "ssd", sachant qu'il est également chargé ! Merci encore, je reteste sur des blocs plus complet (au niveau des paramètres) et revient si je découvre des bugs,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
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