Aller au contenu

Variable avec 2 arguments


Messages recommandés

Posté(e)

Bonjours,

 

Encore une histoire de syntaxe....

 

J'ai besoin de modifier la variable SNAPUNIT pour un accrochage tout les 20

 

je tappe donc

 

(setvar "SNAPUNIT" 20 20)

 

marche paw

 

(setvar "SNAPUNIT" 20,20)

 

marche pah

 

(setvar "SNAPUNIT" "20,20")

 

toujours pahwwrg

 

 

Help me :(

Posté(e)

Merci

 

Ce n'est pas la premiere fois que je bloque à cause de l'apostrophe.

 

Mais quelle est son role ?

 

Je n'ai pas trouver de doc sur l'utilisation de certain caractéres comme l'apostrophe, le point,

le [ , \ , $ , | .....

 

Il y a peut etre une page dans le developer's guide, je viens encore de fouiller

rien trouver...

Posté(e)

Bonjour à toutes et tous,

 

quelques unes ici =>

 

Caractères spéciaux des macros

 

Caractère

Description

 

;

Génère la touche ENTREE.

 

^M

Génère la touche ENTREE.

 

^I

Génère la touche TAB.

 

[espace]

Entre un espace vierge entre des séquences de commandes dans une commande, ce qui équivaut à appuyer sur ESPACE.

 

\

Génère une pause en vue d'une entrée utilisateur (ne peut pas être utilisé avec des accélérateurs).

 

.

Vous permet d'accéder à la commande intégrée d'AutoCAD même si elle a été non définie à l'aide de la commande NONDEF.

 

_

Traduit les commandes et options AutoCAD qu'il précède.

 

=*

Affiche le menu déroulant, contextuel ou d'images du niveau le plus élevé.

 

*^C^C

Répète une commande jusqu'à ce qu'une autre soit sélectionnée.

 

$

Introduit une expression de macro DIESEL conditionnelle ($M=)

 

^B

Active ou désactive la résolution (équivaut à CTRL+B).

 

^C

Annule la commande ou l'option de commande active (équivaut à ECHAP).

 

^D

Active ou désactive le SCU dynamique (équivaut à CTRL+D).

 

^E

Définit la plan isométrique suivant (équivaut à CTRL+E).

 

^G

Active ou désactive la grille (équivaut à CTRL+G).

 

^H

Génère la touche RETOUR ARRIERE.

 

^O

Active ou désactive le mode ortho.

 

^P

Active ou désactive MENUECHO.

 

^Q

Renvoie un écho de tous les messages, listes d'état et saisies vers l'imprimante (équivaut à CTRL+Q).

 

^T

Active ou désactive la tablette (équivaut à CTRL+T).

 

^V

Change de fenêtre courante.

 

^Z

Caractère nul qui supprime l'ajout automatique d'ESPACE à la fin d'une commande.

 

 

 

Il y a peut etre une page dans le developer's guide

 

Personnalisation de l'interface utilisateur => Création de macros

 

Donnent déjà quelques pistes,...

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Posté(e)

Salut,

 

En LISP l'apostrophe est un diminutif de la fonction quote.

'(20 20) est équivalent à (quote (20 20))

La fonction quote est utilisée pour ne pas évaluer l'expression suivante.

voir ce sujet pour de plus amples explications.

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

Posté(e)

Merci pour vos reponse

 

Il me semble que l'apostrophe a plusieur role...

 

Gile, ton lien ne fonctionne pas

et le quote non plus si je remplace

par contre list fonctionne

 

je suis allez voir dans la description de la fonctions list (AutoLISP Reference Guide)

 

....

As an alternative to using the list function, you can explicitly quote a list with the quote function if there are no variables or undefined items in the list. The single quote character (') is defined as the quote function.

 

_$ '(3.9 6.7)means the same as (list 3.9 6.7)

This can be useful for creating association lists and defining points.

 

 

J'en conclu que j'ai pas fini.... ;)

et que quote a l'air de s'utiliser avec des chaines de caracteres et list avec des variables

Donc l'apostrophe peut etre list ou quote

 

et au passage dans le guide a la page du quote

j'ai trouvé cela

 

Command: !'a

A

 

le point d'exclamation aussi a une fonction?

Posté(e)

Salut

 

Je persiste l'apostrophe est bien une abréviation pour la fonction quote :

The single quote character (') is defined as the quote function.

et l'expression (setvar "snapunit" (quote (20 20))) fonctionne exactement comme (setvar "snapunit" '(20 20)).

 

Poussons un peu plus loin :

(list 4 5 8) est équivalent à (quote (4 5 8)) ou '(4 5 8) parce que tout les éléments composant la liste sont des valeurs et pas des expression à évaluer.

 

(setq a 4)

 

(list a 5 (* 2 a)) retourne (4 5 8) chaque expression a été évaluée

(quote (a 5 (* 2 a))) ou '(a 5 (* 2 a)) retourne (a 5 (* 2 a)) rien n'est évalué à l'intérieur des parenthèses.

 

Mais quote ne s'applique pas qu'aux listes et peut être utilisé avec des symboles (noms de variables ou de fonctions) ou des applications de fonction :

 

(list 'a 5 (* 2 a)) ou (list (quote a) 5 (* 2 a)) retournent (A 5 8) la variable a n'a pas été évaluée

 

(list a 5 '(* 2 a)) ou (list a 5 (quote (* 2 a))) retournent (4 5 (* 2 A)) l'appel de fonction (* 2 a) n'est pas évalué.

 

Le point d'exclamation n'est pas un caractère réservé en LISP et n'est utilisé que pour la ligne de commande. AutoCAD, pour pouvoir interpréter les expressions LISP directement depuis la ligne de commande, doit pouvoir différencier celles-ci des commandes.

Si la chaine de caractères entrée en ligne de commande commence par une parenthèse AutoCAD passe la main à l'interpréteur LISP, mais pour un symbole LISP (nom de variable ou de fonction) qui ne peut pas commencer par une parenthèse, il a faluut déterminer un signe distinctif, c'est le point d'exclamation.

 

PS : j'ai édité le lien

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

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é