Aller au contenu

AUTOLISP ou VLISP ? PAR QUOI COMMENCER


Messages recommandés

Posté(e)

:) Bonjour à tous,

 

Débutant en programmation d'autoCAD, j'observe nombre de routines que l'on trouve sur le net. Certaines sont en AutoLISP, mais nombreuses sont celle qui inclus du VLISP (commande vla, vlax, ...).

Il est dur d'assimiler dans un premier temps autoLISP, mais l'intégration de VLISP crée une confusion qui me laisse perplexe quand à l'orientation à prendre. Par ailleurs la "littérature" sur le VLISP est faible et disparate (trouvé une liste exaustive des commandes vla ou vlax par exemple n'est pas chose aisée). :huh:

Bref pour débuter, faut il attaquer directement en VLISP... ou pas ?

Cordialement,

 

PS : J'ai trouvé un site US de formation au LISP pas mal foutu. Pour les curieux... Word Class CAD

""Nous avons un avenir et il sera fait de nos rêves si nous avons le courage de bousculer les idées reçues" - S. HONDA

Posté(e)

Se passer de l'autolisp est possible. Je dirais que c'est dommage car, en s'y contraignant, on se cultive pas mal sur le coeur du système : le code DXF. Mais, d'un autre côté, on peut tout faire en Vlisp....

Je dirais d'apprendre tranquillement les deux.

Lire et comprendre des petits programmes suffit à se lancer. Le reste est de la culture issue de la lecture d'exemples, encore une fois. Bref, on abandonne vite la littérature.

 

http://www.caddsoftsolutions.com/VisualLISP-Developers-Bible-Download-PDF.htm

Le document à regarder.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Salut,

 

Je pense qu'il faut commencer par définir ce qu'on appelle 'AutoLISP' et 'Visual LISP'. Par exemple, pour Autodesk, 'Visual LISP' remplace, et donc contient, 'AutoLISP', alors que le commun des utilisateurs fait la distinction entre les fonctions dites 'Visual LISP' (fonctions préfixées avec vla-, vlax- ou vlr- qui nécessitent d'être chargées avec vl-load-com) et les autres.

 

Si on s'en tient à cette dernière description, on ne peut pas opposer/comparer 'AutoLISP' et 'Visual LISP' que pour ce qu'ils feraient l'un comme l'autre. or ceci ne concerne qu'une partie des deux, en gros l'accès aux objets AutoCAD.

 

Pour 'Visual LISP', il s'agit donc essentiellement de l'accès en LISP à l'API (Interface de Programmation pour Application) COM d'AutoCAD, API accessible pour tous les environnements de programmation supportés par AutoCAD Windows (Visual LISP, VBA, .NET, ObjectARX). Autrement dit, toutes les fonctions vla-. Tout le reste dans 'Visual LISP', à savoir les fonctions vlr- (reacteurs) et vlax- (converions entre objets COM et 'AutoLISP', accès à ActiveX ou fonctions spécifiques vlax-curve* ou vlax-ldata*) est absolument spécifique à 'Visual LISP' et n'a pas d'équivalent en 'AutoLISP'.

 

Avec AutoLISP, l'accès aux objets AutoCAD se fait principalement grace aux commandes AutoCAD et aux listes DXF, mais AutoLISP fournit aussi toutes les fonctions fondamentales des langages LISP (entre autre les fonctions de traitement des liste et de définition de fonction) qui sont incontournables et n'ont pas d'équivalent en 'Visual LISP'.

 

Pour répondre à famaice (et contredire/préciser ce que dit Tramber), l'apprentissage du LISP pour AutoCAD commence immanquablement par l'apprentissage d''AutoLISP' notamment des fonctions fondamentales (defun, car, cdr, cons, setq, etc.) qui seront utilisées aussi bien en 'pur AutoLISP' qu'en 'Visual LISP'.

 

La question du choix entre 'AutoLISP' et 'Visual LISP', n'intervient, à mon avis, que dans un deuxième temps de l'apprentissage du LISP : quand l'accès aux objets par les commandes natives (avec la fonction command) n'est plus suffisant.

Et l'expérience me fait dire qu'il ne s'agit de toute façon pas d'un choix absolu puisque selon les cas, l'un ou l'autre est plus pratique à mettre en oeuvre. Et parfois, le choix entre l'un ou l'autre est impératif: si certaines choses sont impossibles à faire avec 'AutoLISP' mais peuvent se faire avec 'Visual LISP', l'inverse est aussi vrai. Ceci s'est encore accentué en ce qui concerne les propriétés des objets avec l'arrivée des nouvelles fonctions 'AutoLISP' pour AutoCAD Mac (qui fonctionnent aussi sur Windows).

 

En conclusion, je conseillerais d'apprendre dans un premier temps 'AutoLISP' : les fondamentaux bien sûr (avec la fonction command pour piloter AutoCAD), puis l'accès aux objets par les liste DXF (entsel, entget, entmod, entmake, etc.). À ce moment là, quand le besoin s'en fera sentir, l'apprentissage de l'interface COM (fonctions vla-) ne devrait pas présenter beaucoup de difficultés : la 'grammaire' du LISP étant plus ou moins acquise, l'utilisation des fonctions vla- relève plus du 'vocabulaire'.

  • Upvote 1

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

Posté(e)

Bien sur, dans cette acception, on ne peut pas se passer d'Autolisp et des fonctions fondamentales.

Fonctions fondamentales qu'on appellerait lisp et non plus Autolisp si j'avais voulu être mieux compris.

 

Merci pour ces précisions. Je suis toujours dans la simplification.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Merci pour ces réponses ! Ca aide à y voir un peu plus clair ;)

Je continue à me former au LISP pour Autocad car je suis plus que convaincu des gains de productivité énorme que l'on obtient via la création de routines.

 

Fabrice ("jeune" padawan du LISP)... :)

""Nous avons un avenir et il sera fait de nos rêves si nous avons le courage de bousculer les idées reçues" - S. HONDA

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é