stephan35 Posté(e) le 22 janvier 2007 Posté(e) le 22 janvier 2007 Bonjour, Je cherche désepérement une solution pour accèder aux palettes d'outils via LISP, VLISP ou VBA- Ajouter un onglet- Basculer dans les onglets- Modifications diverses (ajout d'item dans les onglets etc) Merci
Patrick_35 Posté(e) le 22 janvier 2007 Posté(e) le 22 janvier 2007 SalutOui, il est possible de récupérer les infos des tools palettes, d'y ajouter des éléments et même de jouer un peu avec grâce au sendkey (bien que ça soit un peu tordu comme démarche) , mais le plus simple serait de nous dire ce que tu souhaites faire réellement @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
stephan35 Posté(e) le 22 janvier 2007 Auteur Posté(e) le 22 janvier 2007 Merci pour ta 1ère réponse :) Etant donné qu'a partir d'autocad 2008 il n'y aura plus de menu écran !,Je souhaite trouver une solution de substitution qui ne perturbe pas nos 30 utilisateurs ...Qui vont passer d'un autoCad 14 vers un autocad 2006 d'ici quelques mois ...Bref, la manip consisterait à recreer des pseudo menu ecran, chaque page menu_screen serait remplacée par un onglet , Activer au bon moment, puis cacher lors des fin de commandes.Les pages écran servent principalement à répondre à des options lors des executions lisp.(aspect convivialité non négligeable).Sachant que les boites de dialogue sont lourdingue à gérer en Lisp :mad2: , et ne maitrisant pas du tout le vba, vais-je trouver mon bonheur ??? :casstet: AVANT http://buchholz.s.free.fr/menu_screen.JPG APRES http://buchholz.s.free.fr/a2006.JPG [surligneur] -----------------------------------------------------------------------------------------------------------------------------------------------------------------[/surligneur] Peux-tu me fowarder des exemples de sendkey avec les _toolpalettes ? Merci pour ton aide
Patrick_35 Posté(e) le 23 janvier 2007 Posté(e) le 23 janvier 2007 SalutCe n'est pas ce que j'imaginais exactement, mais ce sujet devrait répondre à ta demande ps1: perso, je trouve les boites de dialogues assez simple à programmer. Et de mon point de vue plus facile que le vba car c'est du code et plus facilement maîtrisable ps2: le sendkey est une astuce qui simule les touches du clavier ps3: le 14 à 2008 (qui n'est pas encore sortie, sacré évolution pour les utilisateurs ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
stephan35 Posté(e) le 23 janvier 2007 Auteur Posté(e) le 23 janvier 2007 Merci ,J'ai peur que ces exemples ne s'adresses qu'au barres d'outils(_toolbar) et non pas aux palettes, il faudrait dans ce cas trouver comment atteindre les palettes d'outils (_toolpalettes) . (setq menus (vla-get-menugroups (vlax-get-acad-object))) (setq menu (vla-item menus "ACAD")) (setq tbs (vla-get-toolbars menu)) (setq tb (vla-item tbs "WORKSPACES"));;use a toolbar that is visible & not docked (setq top (vla-get-top tb) left (vla-get-left tb)) (princ (strcat (itoa left) " - " (itoa top))) (vla-put-top tb (+ top 100)) ;;+ is down, - is up (vla-put-left tb (- left 100)) (setq top (vla-get-top tb) left (vla-get-left tb)) (princ (strcat (itoa left) " - " (itoa top))) Je tente et je répondes de nouveau ... Cool de faire parler autocad ! :thumbup: et en français ? ...Merci et a+
Patrick_35 Posté(e) le 23 janvier 2007 Posté(e) le 23 janvier 2007 OkJ'ai trouvé le plus simple à faireTu fais ta palette d'outil manuellement sur Autocad comme tu le désireEnsuite, tu vas dansC:\Documents and Settings\+User <-- nom de l'utilisateur (login)+\Application Data\Autodesk\+AutoCAD 2005 <-- Version d'autocad+\R16.1 <-- Version d'autocad+\fra\Support\ToolPaletteEt tu as le fichier AcTpCatalog.atc qui contient ta palette personnalisée Pour l'install sur chaque poste, par exemple en s::startup(setq che (vla-get-toolpalettepath (vla-get-files (vla-get-preferences (vlax-get-acad-object)))) ma_source "AcTpCatalog.atc") (if (vl-string-search ";" che) (setq che (substr che 1 (vl-string-search ";" che))) ) (vl-file-copy (strcat "Mon_rep_d'install\\" ma_source) (strcat che "\\" ma_source)) A moins que tu changes plus simplement le chemin de recherche Cool de faire parler autocad ! :thumbup: et en français ? ...Sur ce lien :) ps : tu as raison en ce qui concerne les toolbars @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
stephan35 Posté(e) le 23 janvier 2007 Auteur Posté(e) le 23 janvier 2007 Bien,j'ai opté pour la solution du répertoire de pointage,la variable se met bien à jour, mais pas la palette ! (defun etool (/) (setq che (vla-get-toolpalettepath (vla-get-files (vla-get-preferences (vlax-get-acad-object))))) (if (vl-string-search ";" che) (setq che (substr che 1 (vl-string-search ";" che))) ) (print che) ) (defun ptool ( $tool /) (vla-put-ToolPalettePath (vla-get-files (vla-get-preferences (vlax-get-acad-object))) (strcat $drive "ToolPalette/" $tool) ) (setq che (vla-get-toolpalettepath (vla-get-files (vla-get-preferences (vlax-get-acad-object))))) (print che) ) Une idée, :( merci
stephan35 Posté(e) le 23 janvier 2007 Auteur Posté(e) le 23 janvier 2007 Je doute de mes comptétences .... voici un article, simple, fournit par autodesk, http:// http://usa.autodesk.com/adsk/servlet/ps/item?siteID=123112&id=8768445&linkID=2475323 Cela ne fonctionne pas sur la 2006 ! (sur mon PC ) quelqu'un peu verifier ? Merci
Patrick_35 Posté(e) le 23 janvier 2007 Posté(e) le 23 janvier 2007 Je crois que j'ai trouvéCa fonctionne sur 2005 mais à partir de 2006, il faut faire un (setvar "*_TOOLPALETTEPATH" PATH)comme indiqué dans ce post Simple comme logique :casstet: un coup en vlisp, un coup en variable. A quand la prochaine M.Autodesk @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
stephan35 Posté(e) le 23 janvier 2007 Auteur Posté(e) le 23 janvier 2007 :mad2: Etrange autocad ... :mad2: erratum Visiblement, lorsque l'on fait le 1er changement, il faut quitter autocad, puis le relancer ?ou alors mes premiers programmes ne sont pas propres : (defun ptool ( $tool /) (vla-put-ToolPalettePath (vla-get-files (vla-get-preferences (vlax-get-acad-object))) (strcat $drive "ToolPalette/" $tool) ) (setq che (vla-get-toolpalettepath (vla-get-files (vla-get-preferences (vlax-get-acad-object))))) (print che) ) Voici le code qui marche ( :( ): (defun ptool2 ( $tool /) (command "_ToolPalettesClose") (command "*_toolpalettepath" (strcat $drive "ToolPalette\\" $tool) ) (command "_ToolPalettes") ) J'aurais préféré une solution plus "pro..." Avis au ammateurs ...Merci
stephan35 Posté(e) le 23 janvier 2007 Auteur Posté(e) le 23 janvier 2007 Pour cloturer ... Je n'ai pas encore tenter le setvar de patrick (cela devrait fonctionner). Le changement de palette fonctionne à merveille ... Cependant, si quelqu'un avait une idée pour selectionner un onglet précis dans la tablette, je serais heureux comme un roi ! :D et Merci à tous, PS : je reste en ligne
Didier-AD Posté(e) le 25 janvier 2007 Posté(e) le 25 janvier 2007 Merci pour ta 1ère réponse :) Etant donné qu'a partir d'autocad 2008 il n'y aura plus de menu écran !,Je souhaite trouver une solution de substitution qui ne perturbe pas nos 30 utilisateurs ...Qui vont passer d'un autoCad 14 vers un autocad 2006 d'ici quelques mois ... Je n'ai pas souvenance d'un quelconque utilisateur ayant regretté les menus écrans mais si tu tiens à des menus, il devrait te rester même dans la 2008 les menus déroulants...
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