CadXP: Nouveautés AutoLISP avec AutoCAD 2021 - CadXP

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Nouveautés AutoLISP avec AutoCAD 2021 Est-ce vraiment un progès ?

#1 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11 393
  • Inscrit(e) : 02-septembre 05

Posté 08 avril 2020 - 17:35

Salut,

Des nouveautés en LISP avec la version 2021 ! C'est tellement rare qu'on a envie de se réjouir.
  • La possibilité d'utiliser Visual Studio Code comme environnement de développement intégré.
  • 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 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 -
Développements sur mesure pour AutoCAD
Image IPB
0

#2 L'utilisateur est hors-ligne   Luna 

  • ceinture verte
  • Groupe : Membres
  • Messages : 67
  • Inscrit(e) : 27-février 20

Posté 08 avril 2020 - 18:42

YAY !!!!

Citation

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
0

#3 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11 393
  • Inscrit(e) : 02-septembre 05

Posté 08 avril 2020 - 22:26

Voir le messageLuna, le 08 avril 2020 - 18:42 , dit :

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.


Voir le messageLuna, le 08 avril 2020 - 18:42 , dit :

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.


Voir le messageLuna, le 08 avril 2020 - 18:42 , dit :

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.


Voir le messageLuna, le 08 avril 2020 - 18:42 , dit :

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 -
Développements sur mesure pour AutoCAD
Image IPB
0

#4 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11 393
  • Inscrit(e) : 02-septembre 05

Posté 09 avril 2020 - 07:32

Les mauvaises nouvelles commencent à arriver...
Les dictionnaires de données LISP (vlax-ldata) créés avec VS Code (LISPSYS à 1 ou 2) sont perdues quand on ouvre le dessin avac une version antérieure à 2021 (CF cette réponse).
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#5 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8 939
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 09 avril 2020 - 08:14

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
0

#6 L'utilisateur est hors-ligne   Fraid 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2 027
  • Inscrit(e) : 08-août 05
  • LocationST Malo 35

Posté 09 avril 2020 - 08:28

Bonjour,

Dans VS Code, clic sur UTF8 en bas à droite
Puis Reopen with encoding
et choisir Western(Windows 1252) qui correspondant au format ANSI.
et plus de problème d'encodage.
...plus je sais où je suis, moins je sais où je vais....
Extrait d'une double interview simultanée d'une particule élémentaire.
0

#7 L'utilisateur est hors-ligne   Fraid 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2 027
  • Inscrit(e) : 08-août 05
  • LocationST Malo 35

Posté 09 avril 2020 - 09:40

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
...plus je sais où je suis, moins je sais où je vais....
Extrait d'une double interview simultanée d'une particule élémentaire.
0

#8 L'utilisateur est hors-ligne   Fraid 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2 027
  • Inscrit(e) : 08-août 05
  • LocationST Malo 35

Posté 09 avril 2020 - 12:01

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.
...plus je sais où je suis, moins je sais où je vais....
Extrait d'une double interview simultanée d'une particule élémentaire.
0

#9 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11 393
  • Inscrit(e) : 02-septembre 05

Posté 09 avril 2020 - 12:23

Voir le messageFraid, le 09 avril 2020 - 09:40 , dit :

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 -
Développements sur mesure pour AutoCAD
Image IPB
0

#10 L'utilisateur est hors-ligne   Fraid 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2 027
  • Inscrit(e) : 08-août 05
  • LocationST Malo 35

Posté 09 avril 2020 - 12:30

Ok

Mais du coup, cela permet de l'utiliser si Autocad 2021 n'est pas installé.
Hormis l'outil de "débuggage".
...plus je sais où je suis, moins je sais où je vais....
Extrait d'une double interview simultanée d'une particule élémentaire.
0

#11 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11 393
  • Inscrit(e) : 02-septembre 05

Posté 09 avril 2020 - 12:51

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 -
Développements sur mesure pour AutoCAD
Image IPB
0

#12 L'utilisateur est hors-ligne   GEGEMATIC 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 974
  • Inscrit(e) : 04-novembre 05

Posté 09 avril 2020 - 13:08

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

Voir le message(gile), le 09 avril 2020 - 12:51 , dit :

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
0

#13 L'utilisateur est hors-ligne   Fraid 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2 027
  • Inscrit(e) : 08-août 05
  • LocationST Malo 35

Posté 09 avril 2020 - 13:30

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.

Citation

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


Un rêve :rolleyes:
...plus je sais où je suis, moins je sais où je vais....
Extrait d'une double interview simultanée d'une particule élémentaire.
0

#14 L'utilisateur est hors-ligne   Luna 

  • ceinture verte
  • Groupe : Membres
  • Messages : 67
  • Inscrit(e) : 27-février 20

Posté 09 avril 2020 - 14:05

Citation

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

Citation

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)

Citation

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
0

#15 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11 393
  • Inscrit(e) : 02-septembre 05

Posté 09 avril 2020 - 15:55

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.

Voir le messageGEGEMATIC, le 09 avril 2020 - 13:08 , dit :

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 ?

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 -
Développements sur mesure pour AutoCAD
Image IPB
0

#16 L'utilisateur est hors-ligne   Fraid 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2 027
  • Inscrit(e) : 08-août 05
  • LocationST Malo 35

Posté 09 avril 2020 - 16:16

Citation

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.

Citation

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é.
...plus je sais où je suis, moins je sais où je vais....
Extrait d'une double interview simultanée d'une particule élémentaire.
0

#17 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11 393
  • Inscrit(e) : 02-septembre 05

Posté 09 avril 2020 - 16:43

Voir le messageFraid, le 09 avril 2020 - 16:16 , dit :

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 -
Développements sur mesure pour AutoCAD
Image IPB
0

#18 L'utilisateur est hors-ligne   Luna 

  • ceinture verte
  • Groupe : Membres
  • Messages : 67
  • Inscrit(e) : 27-février 20

Posté 09 avril 2020 - 17:02

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
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)