Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Me voilà rendu dans le gas-oil !

humm humm humm ...

 

Un petit coup de pouce svp :

 

J'ai récupéré grace aux véterans (encore merci à vous) un petit exemple qui me permet grace à une variable de faire un choix entre 2 sous fonctions pour un même boutons, seulement dans mon cas mes guillemets sont ignorés

 

 

 $M=$(if,$(eq,$(getenv,Gestion_Projet),"1"),^C^C(rcalque "NEUTRE");_line;,^C^C(@mess 1)) 

 

donne (rcalque NEUTRE) !!! :casstet:

 

Merci !

 

 

 

 

Posté(e)

Salut,

 

Dans ta macro l'expression (rcalque "NEUTRE") est une expression LISP, il faut donc faire précéder les guillemets par une "barre oblque" (anti-slash) :

 

$M=$(if,$(eq,$(getenv,Gestion_Projet),"1"),^C^C(rcalque \"NEUTRE\");_line;,^C^C(@mess 1)) 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

J'ai voulu revérifier, je l'avais tenté et il l'interprête comme une attente d'entrée au clavier

 

:casstet:

 

 

 

Commande: (rcalque

Commande:

Commande: (rcalque

(_> NEUTRE*Annuler*

 

 

 

Merci ...

Posté(e)

En effet j'ai répondu une bétise, les expressions LISP ne semblent pas faire bon ménage à l'intérieur d'expressions Diesel.

Peut-être faut-il obligatoirement passer par des commandes :

 

(defun c:toto ()

(rcalque "NEUTRE")

(princ)

)

 

(defun c: tata ()

(@mess 1)

(princ)

)

 

et appeler toto et tata depuis la macro.

 

$M=$(if,$(eq,$(getenv,Gestion_Projet),"1"),^C^Ctoto;_line;,^C^Ctata;)

 

Pas testé non plus.

 

[Edité le 3/5/2007 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Bon, Les parametres sans guillemets fonctionnent bien :

(@mess 1) ne pose aucun soucis,

Par contre pour le (rcalque "neutre") c'est embêtant de repasser par un fonction pour executer une fonction ! :casstet:

 

Je cherche un peu de mon coté !

Posté(e)

Le diesel est un évaluateur de chaine, pour qu'il ne l'évalue pas directement, il n'y a pas moyen.

Je tenterais de passer par la variable USERS1 en lui plaçant la chaine "NEUTRE" et non pas NEUTRE.

 

Essayes ceci (je ne peux pas tester)

 

$M=$(if,$(eq,$(getenv,Gestion_Projet),"1"),^C^C(rcalque $(getvar,users1));_line;,^C^C(@mess 1))

 

Si cela fonctionne, il te faudra définir dans ta macro la variable USERS1 AVANT le $M= qui lance l'évaluateur diesel

 

 

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

Posté(e)

FRAPPADINGUE !!!!

 

(setvar "users1" (strcat (chr 34) "NEUTRE" (chr 34)));$M=$(if,$(eq,$(getenv,Gestion_Projet),"1"),^C^C(rcalque $(getvar,users1));_line;,^C^C(@mess 1))

 

pour mettre les guillemets (chr 34) à cause du \ qui est considéré comme une attente utilisateur !

 

Dans ce cas, il n'y aurait pas l'équivalent en diesel afin d'éviter de passer par une variable ???

Posté(e)

Dans ce cas, il n'y aurait pas l'équivalent en diesel afin d'éviter de passer par une variable ???

Hé non, du moins pas à ma connaissance.

 

Le diesel empêche l'usage des guillemets "" et les macros dans les menu l'usage de l'anti-slash \, ce symbole étant affecté à la pause pour l'utilisateur.

 

Je pense pas que tu sois obligé de passer par une expression lisp pour définir USERS1

^C^CUSERS1;"NEUTRE",

devrait fonctionner aussi, je dis ça pour un usage sur une LT (ce qui n'a pas l'aire d'être ton cas)

 

Dans ce cas une expression lisp aurait été peut être plus facile, quitte à employer (lambda ...) pour avoir une fonction anonyme dans ton bouton.

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

Posté(e)

coucou roucoucou, :)

 

lorsque je suis confronté à des \...\ dans une MACRO je fais appel à un SCRIPT à l'intérieur de ma MACRO... par exemple lorsqu'il s'agit d'appeler un fichier en utilisant son chemin absolu !

 

Mais ça ne fonctionne pas toujours si la MACROS est plus ou moins complexe... en général ça marche

 

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 @)

Posté(e)

Merci à tous,

 

Faute de solution satisfaisante j'utiliserai la solution proposée par bonuscad :

^C^CUSERS1;"NEUTRE", .....

 

 

lorsque je suis confronté à des \...\ dans une MACRO je fais appel à un SCRIPT à l'intérieur de ma MACRO... par exemple lorsqu'il s'agit d'appeler un fichier en utilisant son chemin absolu !

 

Celle-ci aurait pu fonctionner, mais je développe en relatif, a tout moment mon arborescence peut changer (indexée sur une autre variable), Hormis le coté fonctionnel (c'est le résultat qui compte) à mon avis çette solution aurais tendance à semer des fichiers un peu partout ...

 

 

PS: il est vrai que j'aurais aussi pu faire le tout en lisp .... :casstet:

 

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é