Aller au contenu

Nouveautés AutoLISP avec AutoCAD 2021


(gile)

Messages recommandés

Salut,

 

Des nouveautés en LISP avec la version 2021 ! C'est tellement rare qu'on a envie de se réjouir.


     
  1. La possibilité d'utiliser Visual Studio Code comme environnement de développement intégré.
  2. Le support des caractères Unicode.

 

1. Visual Studio Code est un éditeur de code extensible multiplateforme développé par Microsoft.

Il supporte pour plusieurs langages des fonctionnalités classiques des éditeurs de code (coloration syntaxique appariement des parenthèses, etc) mais peut aussi servir au débogage par le biais d'extensions.

Pour AutoLISP, il faut lui attacher un interpréteur LISP, en l'occurence un processus AutoCAD 2021. Les utilisateur de MAC auront désormais un IDE.

En pratique,

- soit on lance la commande VLIDE depuis AutoCAD, VS Code s'ouvre et il faut charger un fichier .lsp pour lancer le débogage puis choisir d'"attacher AutoCAD" à la session de débogage ;

- soit on lance VS Code d'abord, on charge un fichier .lsp, on lance le débogage et on choisit de "lancer AutoCAD".

Moins pratique que le VLIDE...

Ensuite, on peut préférer VS Code (plus moderne) au VLIDE. Sur ce point, je serais mauvais juge, j'ai trop d'habitudes avec le VLIDE et VS Code est très loin des performances de Visual Studio (le "vrai") que j'utilise aussi par ailleurs.

On peut toujours utiliser le VLIDE avec AutoCAD 2021 en mettant la variable système LISPSYS à 0 et en redémarrant AutoCAD.

 

2. Le support des caractères Unicode est certainement une fonctionnalité réclamée par certains (on pense bien sûr à ceux qui utilisent d'autres caractères que les caractères romains). Les fonctions concernant les chaînes de caractères ont donc été mise à jour (voir ici).

Mais ça ne sera pas sans ramener les "joies" de l'encodage des caractères et donc des problèmes de compatibilité. D'après l'aide, une source AutoLISP compilée avec la variable système LISPSYS à 1 ne sera pas compatible avec les versions précédentes d'AutoCAD, et, plus simplement un fichier LISP enregistré depuis VS Code (LISPSYS à 1 ou 2) est encodé en Unicode et s'affichera avec des problèmes pour les lettres accentuées dans le VLIDE.

Autre exemple, les routines de la petite bibliothèque utilisant WScript.Regexp (ici) ne fonctionne dans AutoCAD 2021 que si LISPSYS est à 0, parce que VBScript.Regexp ne supporte pas les caractères Unicode.

 

Personnellement, je ne vois pas grand intérêt à utiliser VS Code et, plus grave, j'entrevois déjà les problèmes de compatibilité qu'AutoLISP nous avait épargné jusque là...

 

Enfin, ça devrait plaire aux utilisateurs d'AutoCAD MAC et des alphabets exotiques...

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

Lien vers le commentaire
Partager sur d’autres sites

YAY !!!!

 

La possibilité d'utiliser Visual Studio Code comme environnement de développement intégré.

La meilleure nouvelle de la journée ! C'est un outil bien plus puissant que l'éditeur natif d'AutoCAD !

 

J'avais commencé le LISP sur Visual Studio Code, mais malheureusement, lors de l'importation des codes via APPLOAD, les caractères non anglophones étaient remplacé par "@" (les accents par exemple) ce qui est assez gênant à la lecture...

Autre bémol, Visual Studio Code ne possédait pas d'outils de débogage fonctionnels avec le langage LISP, ce qui nécessite la création de fonctions et de tester directement sur AutoCAD via la ligne de commande...

 

Donc je suis comblée ! En espérant la plupart des défauts de compatibilité seront réglés ;)

 

Au fait, question un peu à part.. : pour quelles raisons le site d'AutoCAD Knowledge à supprimer l'ensemble des pages d'aide sur les fonctions AutoLISP ? Nous sommes contraints de travailler avec l'aide directement accessible depuis AutoCAD (ce qui limite le nombre de page ouvertes à 1 --") et donc de ne plus pouvoir travailler avec AutoCAD d'un côté, et internet de l'autre ?

 

Bref... bonne nouvelle pour ma part mais à suivre !

 

Bisous,

Luna

Lien vers le commentaire
Partager sur d’autres sites

La meilleure nouvelle de la journée ! C'est un outil bien plus puissant que l'éditeur natif d'AutoCAD !

Pour ce qui concerne l'édition de code certes, mais, pour moi, Notepad++ fait tout aussi bien l'affaire en bien plus léger.

 

 

J'avais commencé le LISP sur Visual Studio Code, mais malheureusement, lors de l'importation des codes via APPLOAD, les caractères non anglophones étaient remplacé par "@" (les accents par exemple) ce qui est assez gênant à la lecture...

D'après les quelques tests que j'ai fait, ça sera toujours le cas.

 

 

Autre bémol, Visual Studio Code ne possédait pas d'outils de débogage fonctionnels avec le langage LISP, ce qui nécessite la création de fonctions et de tester directement sur AutoCAD via la ligne de commande...

Tu pourras déboguer dans VS Code, mais comme dit plus haut, je trouve ça bien moins pratique que dans le VLIDE.

 

 

Donc je suis comblée ! En espérant la plupart des défauts de compatibilité seront réglés ;)

C'est bien là où le bas blesse, je ne vois pas comment régler les problèmes de compatibilité entre deux encodage de texte différents (ASCII et Unicode) à part attendre que plus personne n'utilise de versions antérieures à 2021 (mais à ce moment là, ça ne sera plus mon problème).

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

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Le Lisp qui etait "plus ou moins" une garantie de bon fonctionnement sur N versions AutoCAD

commence a se verrouiller sur les versions 2021 et PLUS !

 

Voila comment "obliger" les gens a passer aux versions "dernier cri" A TERME !

Car quand on aura un Super Lisp qui ne marche que sur les 2021 et PLUS !?

 

SNIFF SNIFF Ca m'enerve "grave" !

 

Pour Gilles : et si on n'enclenche pas le Mode Unicode, etc !?

 

LA SANTE (Stay Safe), Bye, lecrabe "triste"

Automne 2020, la retraite

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Si vous avez installez le package précédant,

vous pouvez éditer ces 2 fichiers

 

C:\Users\<user>\.vscode\extensions\garciadelcastillo.autolisp-language-1.5.2\themes\autolisp light-color-theme.json

pour modifier les couleurs

et

C:\Users\<user>\.vscode\extensions\garciadelcastillo.autolisp-language-1.5.2\syntaxes\autolisp.tmLanguage.json

pour ajouter vos fonctions personnelles ou Doslib par exemple.

 

Mais, soyez sur de ce que vous modifiez et sauvegardez les fichiers avant.

Lien vers le commentaire
Partager sur d’autres sites

Autre réglage à faire

 

clic sur lisp en bas à droite

Search Marketplace extension...

Choisir Autolisp Language Package

Installer

Le langage Autolisp est rajouté et associé au .lsp

Le format DCL est reconnu

ainsi que le Visualisp

 

Ceci n'est pas nécessaire avec AutoCAD 2021, l'extension "AutoCAD AutoLISP Extension" s'occupe de tout.

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

Lien vers le commentaire
Partager sur d’autres sites

Pour moi, un éditeur de code sans débogage ne présente pas grand intérêt, et comme dit plus haut Notepad++ permet ce genre de personnalisations en beaucoup plus léger.

Je ne veux pas dénigrer VS Code, mais ce qui fait la force du LISP c'est avant tout son intégration à AutoCAD et la possibilité de tester/déboguer directement dans AutoCAD et, pour ça, je ne suis pas sûr que VS Code soit plus pratique que le VLIDE même si ce dernier est beaucoup plus pauvre en fonctionnalités d'édition de texte et d'affichage.

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

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Je suis comme Gille et Le Crabe, je ne voudrais pas qu'une bien timide amélioration se transforme en problème.

Pour moi, un éditeur de code sans débogage ne présente pas grand intérêt, et comme dit plus haut Notepad++ permet ce genre de personnalisations en beaucoup plus léger.

Je ne veux pas dénigrer VS Code, mais ce qui fait la force du LISP c'est avant tout son intégration à AutoCAD et la possibilité de tester/déboguer directement dans AutoCAD et, pour ça, je ne suis pas sûr que VS Code soit plus pratique que le VLIDE même si ce dernier est beaucoup plus pauvre en fonctionnalités d'édition de texte et d'affichage.

Vu que l'on peut utiliser l'un ou l'autre,

pour moi ce serait vraiment un plus si VS code était lui capable de corriger des erreurs de programmation objet,

du style appliquer une méthode à un objet qui ne la supporte pas,

également proposer les propriétés d'un objet :

(vlax-get-property monObj <property>)

un clic sur property et on a la liste des propriété, comme pour VB.net ou c#

ça existe ça, avec VS Code ?

ensuite, pour le débogage, on le ferait avec vlisp ?

a+

Gégé

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Lien vers le commentaire
Partager sur d’autres sites

Pour "débugger" avec VS code ou notepad++.

 

J'insère au début de mon lisp

 

(defun *error* (m) (vl-bt))

Ce qui permet de savoir ou ça plante.

 

Puis au lieu d'utiliser appload, je le glisse depuis l'explorateur sur mon dessin en cours.

Ce qui permet, dans Autocad de rappeler le chargement avec la flèche vers le haut du clavier ainsi que la commande pour le lancer.

 

Ensuite si je n'encapsule pas les variables pendant le développement, je les interroge simplement avec !ma_variable dans Autocad.

 

il y a surement d'autre techniques.

 

également proposer les propriétés d'un objet

 

Un rêve :rolleyes:

Lien vers le commentaire
Partager sur d’autres sites

Ensuite si je n'encapsule pas les variables pendant le développement, je les interroge simplement avec !ma_variable dans Autocad.

 

Je viens enfin de découvrir comment afficher le contenu d'une variable directement dans AutoCAD sans utiliser la fonction (princ) ... --"

Merci Fraid ! <3

 

J'insère au début de mon lisp

 

(defun *error* (m) (vl-bt))

 

Ce qui permet de savoir ou ça plante.

 

Encore une méthode inconnue... j'ai tellement de choses à apprendre moi..! Et dire qu'avant je copier coller les parties de code sous forme de fonction pour les tester jusqu'à trouver la ligne qui avait un bug...

 

En effet VS code n'est pas encore au point sur toutes les fonctionnalités de VLIDE, mais c'est notamment dû au fait qu'il ne fait pas parti intégrante d'AutoCAD..

Cela vient aussi des différences d'encodage (Unicode / ASCII) mais d'après Fraid, ce souci peut-être réglé !

 

Le souci principal que je rencontre sur l'utilisation de VLIDE c'est justement son implantation dans AutoCAD ! Il faut absolument avoir un fichier de dessin ouvert pour pouvoir programmer, en clair, si votre AutoCAD plante, vous perdez tout votre travail (Dessin et programmation).

Ce problème n'existe pas avec VS code car on peut très bien ouvrir un fichier .lsp sans même ouvrir AutoCAD (on peut très bien avoir à créer des programmes n'ayant pas besoin de tests approfondis et donc sans débogage nécessaires) !

De plus, l'interface VLIDE est assez "agressive" (contrairement à VLIDE, VS code peut avoir un thème applicable), alors que dans VS code, on a beaucoup plus d'options de réglage sur l'interface de travail (couleur d'arrière-plan, couleur des différents type de données, taille de texte, mip-map, ...)

Le nombre de fois que j'ai des problèmes entre AutoCAD et VLIDE, comme par exemple, impossible de reprendre la main sur AutoCAD car VLIDE considère qu'il a une action de débogage en cours alors qu'aucun programme est en cours d'exécution --"

 

Bref, VS code, malgré ses défauts de compatibilité avec l'interface directe d'AutoCAD possède de nombreux avantages sur le confort d'utilisation au quotidien. De plus, je trouve que le système de tabulation auto de VLIDE (équivalent à 2 espaces) n'est pas suffisamment aéré (mais il s'agit d'un avis purement personnel ! hihi), tandis que sur VS code, la gestion de la mip-map, de l'affichage/ masquage des fonctions et la sélection multiple de chaînes de caractères identiques (un régal lorsque l'on souhaite modifier une données répétitive au sein d'un programme)

 

Après pour ce qui est des propriétés des objets accessible via une liste déroulante, je crois qu'on ne le verra jamais, malheureusement ! :.( mais je suis totalement d'accord pour dire que ça serait un rêve !

Cependant, VS code possède la liste déroulante pour les fonctions connues, ce qui permet par exemple, en tapant "(vl-" d'avoir accès à l'ensemble des fonctions qui possèdent cette chaîne de caractères (très pratique pour découvrir de nouvelles fonctions que l'on ne cherche pas par exemple)

 

C:\Users\<user>\.vscode\extensions\garciadelcastillo.autolisp-language-1.5.2\syntaxes\autolisp.tmLanguage.json

pour ajouter vos fonctions personnelles ou Doslib par exemple.

ça c'est parfait pour savoir si une fonction perso est écrite correctement, ce qui est assez agaçant parfois..^^"

 

+1 avec Fraid !

 

Bisous,

Luna

Lien vers le commentaire
Partager sur d’autres sites

Au moins, ça fait causer. :)

 

Je ne m'étendrait pas plus sur l'utilisation de VS Code sans fonctions débogage, dans ce cas là on ne parle pas d'IDE (Environnement de Développement Intégré) mais juste d'éditeur de code (un traitement de texte spécialisé).

Entre parenthèses, je n'ai jamais compris qu'on puisse programmer en AutoLISP dans AutoCAD en se privant des fonctions de débogage offertes par le VLIDE depuis la version 2000.

 

On peut déboguer avec VS code à condition d'utiliser une extension qui lie VS Code à un interpréteur (ou à une console interactive -REPL-).

Dans le cas d'AutoLISP on peut utiliser l'extension AutoCAD AutoLISP Extension avec AutoCAD 2021 ou ZwLisp avec ZWCAD 2019 SP2 et ultérieur. Dans tous les cas, c'est l'interpréteur d'AutoCAD ou de ZWCAD qui est utilisé, le dessin courant étant celui dans lequel AutoLISP est exécuté.

Ceci fait on peut réellement faire du débogage comme dans le VLIDE (points d'arrêt, espions, utilisation de la console pour évaluer des expressions, etc.) le tout dans un environnement plus moderne.

 

pour moi ce serait vraiment un plus si VS code était lui capable de corriger des erreurs de programmation objet,

du style appliquer une méthode à un objet qui ne la supporte pas,

également proposer les propriétés d'un objet :

(vlax-get-property monObj )

un clic sur property et on a la liste des propriété, comme pour VB.net ou c#

ça existe ça, avec VS Code ?

Il ne s'agit pas d'une question de paradigme de programmation (programmation orientée objet, fonctionnelle, impérative ou autre) mais d'une question de typage statique ou dynamique. Tant que le LISP sera un langage au typage dynamique (comme Python ou Ruby) il est impossible à l'IDE de savoir à quel type d'objet est lié un symbole (une variable) donc de contrôler, au moment de l'édition, la validité des fonctions employées et de leurs arguments ; les erreurs de typage n'adviennent qu'au moment de l'exécution.

Le typage statique (utilisé dans C++, C#, Java, F#, etc.) permet ce qu'on appelle la liaison anticipée c'est à dire que le compilateur (et l'IDE) de connaître le type des variables et donc de contrôler, dès l'édition dans l'IDE la validité des arguments d'une méthode ou celle des propriétés d'un objet.

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

Lien vers le commentaire
Partager sur d’autres sites

je n'ai jamais compris qu'on puisse programmer en AutoLISP dans AutoCAD en se privant des fonctions de débogage offertes par le VLIDE

 

Je suis comme Luna, je ne supporte pas l'emprise qu'a VLIDE sur Autocad.

 

Cependant, VS code possède la liste déroulante pour les fonctions connues,

 

C'est l'auto-complétion, très efficace dans VS Code, beaucoup moins dans Notepad++, qui ne prend que les fonctions présentes dans le fichier en cours.

Ou il y a un réglage que je n'ai jamais trouvé.

Lien vers le commentaire
Partager sur d’autres sites

Je suis comme Luna, je ne supporte pas l'emprise qu'a VLIDE sur Autocad.

Tu risques de pas supporter non plus celle VS Code (ni d'aucun autre IDE) si tu fais vraiment du débogage.

Vous vous privez vraiment de la puissance d'un réel outil de développement.

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

Lien vers le commentaire
Partager sur d’autres sites

Vouih sauf que le débogage est toujours possible (uniquement à partir d'AutoCAD 2021..) sur VS code comme tu l'as dit :)

 

Après, j'ai beaucoup procédé en programmant sur VS code, et lorsque j'avais besoin de tester le programme, je lançais AutoCAD, VLIDE, un piti copier/coller entre VS code et VLIDE et le tour est joué, mais au moins, j'avais l'interface de VS code pour programmer.. ^^"

 

Et si AutoCAD me claquais entre les doigts, je n'avais rien perdu puisque mon code était sur VS code (après seul bémol, c'est lorsque les modifications à apporter sont importantes, auquel cas, il faut faire la passerelle entre VLIDE et VS code ..)

Mais pour info, j'utilise actuellement VLIDE uniquement, bien que je ne le supporte pas personnellement...

 

Bisous,

Luna

Lien vers le commentaire
Partager sur d’autres sites

  • 2 ans après...

Bonjour à la communauté.
Effectivement, la bonne nouvelle a été courte. Pour ma part, j'utilise toujours VLIDE, j'avais essayé VS Code, mais je n'ai pas trop aimé sa manipulation et son "intégration" à AutoCAD, et j'ai trop d'habitudes de mon VLIDE.
La bonne nouvelle aurait été une évolution de l'IDE, comme celui de BricsCAD par exemple, qui est réellement bien foutu. Je m'y suis intéressé lorsqu'on voulait changer AutoCAD par un "clone", beaucoup moins couteux que les produits AutoDe$k...
J'allais essayer ZWCad, mais la direction a changé d'avis avant.
Denis.

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)

Lien vers le commentaire
Partager sur d’autres sites

Salut à toi Ô Décapode...
Oui, et pour ce prix là, c'est la version Pro...

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)

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é