Aller au contenu

Messages recommandés

Posté(e)

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

 

Posté(e)

Salut

Oui, 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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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

Posté(e)

Salut

Ce 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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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+

Posté(e)

Ok

J'ai trouvé le plus simple à faire

Tu fais ta palette d'outil manuellement sur Autocad comme tu le désire

Ensuite, tu vas dans

C:\Documents and Settings\

+User <-- nom de l'utilisateur (login)

+\Application Data\Autodesk\

+AutoCAD 2005 <-- Version d'autocad

+\R16.1 <-- Version d'autocad

+\fra\Support\ToolPalette

Et 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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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

Posté(e)

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

: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

 

 

Posté(e)

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

 

Posté(e)
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...

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité