jalna Posté(e) le 10 novembre 2006 Posté(e) le 10 novembre 2006 Bonjour... et merci à (gile)J'aimerais avoir une boite de dialogue lorsque je clique ma poly.Exemple:Je clique ma polyEt a partir de la j'aimerais que le programme m'ouvre une boite de dialogue (ou je peu moi-meme ajouter des noms) ou je peu sélectionner des noms (ENTREE-SEJOUR-WC-BAINS....)Car j'ai souvent les memes noms. :P C'est juste pour éviter de les taper à chaque fois.... :P "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/
(gile) Posté(e) le 10 novembre 2006 Posté(e) le 10 novembre 2006 Tu as de la chance que j'ai du temps... :cool: Voici une petite boite de dialogue pour choisir un nom dans une liste déroulante ou le rentrer au clavier.Les nouveaux noms entrés sont ajoutés à la liste.La liste est conservée dans le dessin. Le fichier DCL à enregistrer sous GetName.dcl dans un dossier du chemin de recherche des fichiers de support. getname:dialog{ label="Choisir un nom"; initial_focus="pop"; :boxed_column{ :row{ :column{ spacer; :text{ label="Nom :"; alignment=left; } } } :edit_box{ key="tp"; edit_width=25; } :popup_list{ key="pop"; edit_width=25; } spacer; } ok_cancel; } Le LISP, la [surligneur]liste d'origine[/surligneur] peut être modifiée. ;;; GetName Retourne le nom spécifié ou choisi dans la liste. ;;; Les noms entrés sont ajoutés à la liste. ;;; La liste est conservée dans le dessin. (defun getname (/ lst what_next dcl_id nom) (if (not (vlax-ldata-get "Pline_block" "Name")) (vlax-ldata-put "Pline_block" "Name" '([surligneur]"Entrée" "Séjour" "WC" "Bain"[/surligneur])) ) (setq dcl_id (load_dialog "GetName.dcl")) (setq what_next 2) (while (>= what_next 2) (if (not (new_dialog "getname" dcl_id)) (exit) ) (setq lst (vlax-ldata-get "Pline_block" "Name")) (start_list "pop") (mapcar 'add_list lst) (end_list) (action_tile "tp" "(setq nom (get_tile \"tp\")) (done_dialog 3)" ) (action_tile "accept" (strcat "(progn" "(setq nom (nth (atoi (get_tile \"pop\")) lst)))" "(done_dialog 1))" ) ) (setq what_next (start_dialog)) (cond ((= what_next 3) (vlax-ldata-put "Pline_block" "Name" (cons nom lst)) (setq what_next 1) ) ((= what_next 0) (setq nom nil) ) ) ) (unload_dialog dcl_id) nom ) Dans ta version de Pline_Block, remplace : (initget 1) (setq nom (getstring T "\nNom de la pièce: ")) par : (if (not (setq nom (getname))) (setq nom "") ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 10 novembre 2006 Posté(e) le 10 novembre 2006 Allez, je pousse le bouchon un peu plus loin ;)Déjà, le vlax-data c'est très bien :) mais modifier la liste depuis la boite de dialogue, c'est encore mieux, surtout pour ceux qui ne maitrisent pas le lisp Tu dois te dire que je commence à te faire ch..r, mais c'est juste une amélioration possible sans plus et comme tu as le temps :cool: @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
jalna Posté(e) le 10 novembre 2006 Auteur Posté(e) le 10 novembre 2006 Salut (Gile)...D'abord merci de prendre un peu de temps pour résoudre mes problemes...Vraiment super, maintenant je vais laisser mon clavier de coté... :P :P :P :P Merci :) :) :) "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/
(gile) Posté(e) le 10 novembre 2006 Posté(e) le 10 novembre 2006 Voilà une nouvelle version, avec possibilité de modifier la liste de noms (ajouter/retirer) directement depuis la boite de dialogue. Le DCL : getname:dialog{ label="Choisir un nom"; initial_focus="tp"; :boxed_column{ label="Modifier la liste"; :row{ spacer; :edit_box{ key="tp"; edit_width=20; alignment=left; } spacer; } :row{ :button{ label="Ajouter"; key="add"; } :button{ label="Retirer"; key="del"; } } } spacer_1; :row{ spacer; :popup_list{ key="pop"; width=25; } spacer; } spacer_1; ok_cancel; } Le LISP : ;;; GetName Retourne le nom spécifié ou choisi dans la liste. ;;; Les noms entrés sont ajoutés à la liste. ;;; La liste est conservée dans le dessin. (defun getname (/ lst what_next dcl_id nom) (if (not (vlax-ldata-get "Pline_block" "Name")) (vlax-ldata-put "Pline_block" "Name" '("Entrée" "Séjour" "WC" "Bain")) ) (setq lst (vlax-ldata-get "Pline_block" "Name")) (setq dcl_id (load_dialog "GetName.dcl")) (setq what_next 2) (while (>= what_next 2) (if (not (new_dialog "getname" dcl_id)) (exit) ) (start_list "pop") (mapcar 'add_list lst) (end_list) (action_tile "pop" (strcat "(if (or (= $reason 1) (= $reason 4))" "(set_tile \"tp\" (nth (atoi $value) lst)))" ) ) (action_tile "add" (strcat "(if (not (member (get_tile \"tp\") lst))" "(setq lst (cons (get_tile \"tp\") lst)))" "(done_dialog 2)" ) ) (action_tile "del" (strcat "(setq lst (vl-remove (get_tile \"tp\") lst))" "(done_dialog 5)" ) ) (action_tile "accept" (strcat "(setq nom (nth (atoi (get_tile \"pop\")) lst))" "(vlax-ldata-put \"Pline_block\" \"Name\" lst)" "(done_dialog 1)" ) ) (setq what_next (start_dialog)) (if (= what_next 0) (setq nom nil) ) ) (unload_dialog dcl_id) nom ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
jalna Posté(e) le 10 novembre 2006 Auteur Posté(e) le 10 novembre 2006 Tres bien (gile) je n'en demandais pas autant...Mais je dois dire que cette version est plutot sympa... :P Bon week end "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/
(gile) Posté(e) le 10 novembre 2006 Posté(e) le 10 novembre 2006 Je l'ai fait parceque je suis suffisament "gamin" pour relever les "défis" de l'hirsute Patrick_35. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 10 novembre 2006 Posté(e) le 10 novembre 2006 C'est ce qui arrive quand on réfléchit de trop ;)Et puis cette versio n est quand même plus ergonomique non ? @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
kallain Posté(e) le 10 novembre 2006 Posté(e) le 10 novembre 2006 Salut Gilles, Là ça commence à faire compliqué J'y arrive po .....:P J'ai pas tout suivi mais pour résumer , dis-moi, il faut : ¨Pline_block.lsp," ....mais quelle version ?Getmane.dclGetmane.lsp Une petite dernière, un seul et même point à spécifier à l'intérieur de la polyligne pour sa sélection et l'insertion du bloc. Les routines SelPlineByPoint et SelByObj doivent être chargées. :casstet: :P :casstet:
(gile) Posté(e) le 10 novembre 2006 Posté(e) le 10 novembre 2006 Salut, ¨Pline_block.lsp," ....mais quelle version ? Il y a eu en effet pas mal de versions pour répondre au désir des uns et des autres : qui veut deux attributs, qui n'en veut qu'un, qui veut des suffixes, qui n'en veut pas, qui veut une rotation ... La "petite dernière" relève plus de l'effet de style, il faut en effet que les deux routines SelByObj et SelPlineByPoint soient chargées mais elle ne fonctionne qu'avec des polylignes fermées (tout ça pour gagner 1 clic). :casstet: La boite de dialogue GetName peut être utilisée avec chacune des versions à condition de faire les modifications citées plus haut et que le fichier getname.lsp soit chargé et que getcnme.dcl soit dans le chemin de recherche, bien sûr. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
kallain Posté(e) le 10 novembre 2006 Posté(e) le 10 novembre 2006 Ok Je verrais ça lundi. Bon week end
Patrick_35 Posté(e) le 10 novembre 2006 Posté(e) le 10 novembre 2006 Il y a eu en effet pas mal de versions pour répondre au désir des uns et des autres Mais avoue que tu y prends du plaisir :cool: Et comme tu te débrouilles très bien, on peux se permettre "certaines" remarques mais toujours constructives @+ 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 10 novembre 2006 Posté(e) le 10 novembre 2006 Mais avoue que tu y prends du plaisir Bien sûr, sinon je ne le ferais pas, même si parfois je tiques un peu devant des demandes trop spécifiques. on peux se permettre "certaines" remarques Ça, c'est toujours avec plaisir ;) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Atelier43 Posté(e) le 8 février 2010 Posté(e) le 8 février 2010 heu sur version 2006 j'ai un peu de retard mais bon... Voilà, je suis utilisateur et c'est TOUT. Je dois avouer que vos indications sont un peu du chinois pour moi.Si j'ai bien compris cette pline_block permet d'otenir un affichage de données liées à une polyligneSuper pour indiquer mes surfaces sur mes plans ! ... Mais bon voilà que ça commence pas malJ'ai bien charger l'application et le block est bien dans ma liste de block de dessin a l'écran j'ai bien un tableau de choix de pièces qui s'affiche au lancement de la commande pline_block mais je n'ai le choix que du nom ... dans le menu bon passons c'est pas là l'urgence. ensuite je justifie la polyligne l'emplacement du block et : ex BAin #### m² !!!!! Patarac mais c'est nul ce machin !!! pas de chant qui n'a rien de dynamique d'ailleur je crois que j'ai dû louper une étape dans l'instal de l'application Quelqu'un peut m'aider ? Merci
lili2006 Posté(e) le 8 février 2010 Posté(e) le 8 février 2010 Bonsoir à toutes et tous, Et la dernière version sur cette page, ça dis quoi chez toi ? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
denisf Posté(e) le 22 juillet 2010 Posté(e) le 22 juillet 2010 Bonjour Superbe cette routine!!Bizarre... tout marche à merveille sauf la conversion du résultat (cm2 >m2)J'ai une version 2005 (intégrée avec la suite Inventor AIS9...) Si quelqu'un a une idée d'ousque... Merci
(gile) Posté(e) le 22 juillet 2010 Posté(e) le 22 juillet 2010 Salut, Tu trouveras, sur cette page, la dernière version qui contient un fichier PDF "mode d'emploi" qui explique ce qu'il faut modifier dans le code pour les conversions d'unités. Tu trouveras aussi, sur la même page, TotalArea, qui à mon avis, est plus puissant et polyvalent. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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