Aller au contenu

Enlever puis remettre une variable dans un bouton


LUDWIG

Messages recommandés

Hello

 

Est-il possible, dans un bouton et sans passer par un lisp, de récuperer une variable, lancer une commande, puis remettre la variable une fois la commande terminée ? Je m'explique, je veux lancer la commande _align et que l'accrochage soit automatiquement ext+mil. Une fois la commande finie, je voudrais retrouver mon osmode précédent (si je n'ai pas annulé la commande en cours bien sûr).

 

^C^Csetq O (getvar ("osmode"));setvar "osmode" 3);_align;setvar (osmode O)

 

Mais bien sûr ça ne marche pas...

Autocad 2021 - Revit 2022 - Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Il y a plusieurs possibilités, en voici une première :

 

^C^Cselect;\_align;p;;EXT,MIL;\EXT,MIL;\EXT,MIL;\EXT,MIL;\

 

La macro n'est pas complète, je me suis arêté au 2e Point, s'il te faut les 3 points tu rajoutes :

 

EXT,MIL;\EXT,MIL;

 

Voilà pour commencer

 

Si tu as des commentaires...

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Lien vers le commentaire
Partager sur d’autres sites

Ludwig,

 

Bien que je n'aime pas tout coder dans un bouton, voici quand même ceci:

 

^C^C^P(if (not (member "geom3d.arx" (arx))) (arxload "geom3d")) (setq oldOsmode (getvar "osmode")) (setvar "osmode" 165) (command "_align") ^P(while (> (getvar "cmdactive") 0) (command pause)) (setvar "osmode" oldOsmode)^P

 

 

Note: il faut s'assurer que la commande ALIGN soit disponible, donc vérifier si geom3d.arx est chargée.

 

Serge

Lien vers le commentaire
Partager sur d’autres sites

Merci les gars !

 

J'ai pris t'a commande, Christian, que je comprends mieux.

 

Serge, celle que tu m'as transmise ne semble pas fonctionner. Geom3d est chargée, mais ça doit être une erreur d'espace ou point virgule que je n'arrive pas à déceler. En tout cas la condition (while (> (getvar "cmdactive") 0) me servira ailleurs. Merci.

Autocad 2021 - Revit 2022 - Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Oui, mon raccourci ne marche pas sans doute parce qu'ALIGN n'est pas complètement renseigné.

Pas testé.

 

Mais, les gars, on fait ca comment en DIESEL ?

 

Bon sinon, y a toujours moyen de faire 2 boutons en s'arretant après align au premier.

 

Comme ca on peut faire plusieurs commandes indépendantes et restituer après un OSMODE.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Non, t'as raison, ca devient du bricolage.

 

Mais pour en revenir à ton essai du début, je suis sur qu'en mettant le nombre de "pause" ou "\" approprié dérrière le _align, tu peux enchainé le SETVAR sur la vieille valeur, bref, rester sur ton idée.

 

avec le petit load suggéré par Serge au début.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Voilà une réponse en diesel (pour les LT)

 

C'est toujours la même technique: utiliser les variables USERxx pour stocker une valeur.

 

Donc on pourrait définir un bouton comme ceci

^C^C_select;\useri1;$M=$(getvar,osmode);osmode;3;_align;_p;;\\\\\\osmode;$M=$(getvar,useri1);

 

NB: Pas d'espace après le dernier ";" et tout ça sur une seule ligne

 

Après essai il se revèle que cela marche en cas de réponse de 2 ou 3 points. En faite la dernière pause sert, si on a choisi 2pt, à répondre Oui ou Non pour mettre à l'échelle.

 

Moi aussi je vais mettre dans un coin l'astuce de Serge à propos de la boucle faite avec CMDACTIVE, cela pourra servir ;)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

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é