Aller au contenu

Introduction à AutoLISP


Messages recommandés

Posté(e)

Je viens de tester une petite tentative et ça à l'aire de fonctionner :

(action_tile "Calq2DTxt" "(mode_tile \"Pt2D\" (if (= 1 (atoi $value)) 0 1))")

 

Juste pour le fun avec un classique de la bascule 0/1 :

(action_tile "Calq2DTxt" "(mode_tile \"Pt2D\" (- 1 (atoi $value))")

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

Posté(e)

D'abord, le DCL (Dialog Control Language) ne fait que décrire de manière statique et indépendante la boite de dialogue

Pour abonder dans le sens de (gile), ce n'est que du texte.

Quand tu maitriseras suffisamment le DCL et le lisp, tu pourras utiliser des listes et des boucles pour alléger et apporter de la souplesse au code.

 

@+

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 à vous pour votre aide...

 

Sympa le "Fun" de (gile), je ne connaissais pas... ;)

 

Je galère, mais j'y arrive petit à petit...

 

Merci encore...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

  • 3 mois après...
Posté(e)

Je viens ajouter ma contribution avec un petit site en ANGLAIS malheureusement, mais compréhensible avec quelques notions d'anglais, (puis sa fais un peu travailler son anglais)

 

Pour trouver son bonheur, cliquer sur la flèche à coté de AutoLisp, les tutos sont bien foutus et il y à pleins de notions de base regroupées :D

 

Site Accueil http://www.afralisp.net/index.php

 

Raccourci vers le Beginner's Tutorial http://www.afralisp.net/autolisp/tutorials/index.php?category_id=1

“L'environnement est important, pour sauver un arbre, mangez un castor !”

Posté(e)

Merci à Gilles et Patrick pour le partage de l'information.

 

Veuillez aussi trouver 63 vidéos tutoriels très intéressants sous le lien suivant :

 

 

 

Bonne Journée à tous.

  • 4 ans après...
Posté(e)

Salut à tous.

Je suis en train de me familiariser avec (entmake, et je vois, dans le formidable "Introduction à AutoLISP", que dans cet exemple :

(entmake '((0 . "CIRCLE") (8 . "TEST") (10 5.0 8.0 0.0) (40 . 10.0)))

Il n'y a pas de "point" après le code DXF 10, mais il fonctionne.  J'avoue être un peu perdu... 😉 

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Salut (gile), et merci de me répondre un dimanche...

Je n'ai rien dis sur ton code, il fonctionne très bien, ce que je ne comprend pas, c'est que le code DXF 10 ne me semble pas une paire pointé...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

As-tu essayé d'exécuter les expressions données dans la console de l'éditeur Visual LISP ? Ça devrait t'aider à comprendre.

Les fonctions fondamentales (au sens littéral) concernant les listes en LISP sont : cons, car et cdr. Ces fonctions ont un fonctionnement cohérent avec les listes comme avec les paires pointées.

cons sert à construire une liste ou une paire pointée (qui est une forme de liste particulière)

(cons 0 "CIRCLE")          ; -> (0 . "CIRCLE")
(cons 10 '(5.0 8.0 0.0))   ; -> (10 5.0 8.0 0.0)

car sert à obtenir le premier élément de la liste (ou paire pointée)

(car '(10 5.0 8.0 0.0))   ; -> 10
(car '(0 . "CIRCLE"))     ; -> 0

cdr sert à obtenir la liste (ou paire pointée) sans le premier élément

(cdr '(10 5.0 8.0 0.0))   ; -> (5.0 8.0 0.0)
(cdr '(0 . "CIRCLE"))     ; -> "CIRCLE"

De plus amples explications ici (au moins le premier message).

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

Posté(e)

Merci (gile) pour ces explications, je commence effectivement à comprendre un peu mieux les listes.

Mais dans "(10 5.0 8.0 0.0)", il n'y a ni cons, ni un point après le 10, je pensais que ça devait s'écrire comme ça : (10 . 5.0 8.0 0.0). C'est juste ça que j'ai un peu de mal à comprendre.

Est-ce que l'interpréteur comprend que c'est une paire pointé ?

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Tu n'as pas lu assez attentivement l'article donné en lien.

'(0 . "CIRCLE") n'est qu'une abréviation de (cons 0 "CIRCLE")
'(10 50.0 80.0 0.0) n'est qu'une abréviation de (cons 10 (cons 50.0 (cons 80.0 (cons 0.0 nil))))

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

Posté(e)

Si si, je l'ai lu, je l'avais déjà lu plusieurs fois depuis ces dernières années...

Mais si on peut écrire '(10 50.0 80.0 0.0) pourquoi ne peut-on pas écrire '(0 "CIRCLE") sans le point ?

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)
4 minutes ago, DenisHen said:

Mais si on peut écrire '(10 50.0 80.0 0.0) pourquoi ne peut-on pas écrire '(0 "CIRCLE") sans le point ?

Si, on peut l'écrire, mais ça donne une liste "normale", pas une paire pointée
Essaye :
(cdr '(0 . "CIRCLE"))
et
(cdr '(0 "CIRCLE"))

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

Posté(e)

Ok, là j'ai compris... Merci pour ton aide... 😉 

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é