Aller au contenu

evolution des programmations lisp


Messages recommandés

Posté(e)

bonjour

je rebondis sur les réponses apportées par (gile) et bryce dans ce post :

 

Mon lien

 

j'ai appris le lisp sous autocad 12 à partir de 1995 et je ne l'ai utilisé que de temps en temps au fil de mes besoins professionnels

 

je constate une énorme évolution entre le lisp de 1995 et ce qui se fait aujourd'hui

 

le visual lisp avec les VLAX ..............

et l'accès aux tables avec tblnext

 

moi j'étais plus habitué aux (command ..... )

 

quels sont les avantages et les inconvenients de ces 3 "types" de programmation ?

 

merci

Posté(e)

Salut,

 

Je ne connaissait pas le LISP en 1995, mais il me semble bien que l'accès aux données DXF (entget, entmake, entmod, entnext) et aux tables (tblnext, tblobjname, tblsearch) est quasiment aussi ancien qu'AutoLISP.

 

L'accès à l'interface COM/ActiveX date, il me semble, de l'arrivée de Visual LISP et de son éditeur avec la version 2000.

 

L'utilisation de l'une ou l'autre de ces deux technique permet d'écrire des programmes qui vont (bien) au delà de ce que permet la fonction command (qui limite la programmation à des scripts ou macros améliorées).

L'exécution est notablement plus rapide avec ces techniques qu'avec command et il n'y a plus de soucis avec les accrochages aux objets par exemple.

Toutefois, il subsiste de (très) rares exceptions où l'utilisation de command reste incontournable (geler des calques dans une fenêtre flottante par exemple.

 

Entre ces deux techniques (listes DXF ou COM), mon cœur balance. Elles sont toutes deux aussi performantes en terme de rapidité d'exécution et permettent, à peu de choses près, les mêmes choses dans AutoCAD (certaines sont plus faciles ou uniquement faisables avec l'une ou avec l'autre).

Un code écrit en Visual LISP (COM) est souvent plus facile à lire, l'utilisation des listes DXF demandant une bonne connaissance des manipulations de liste (mais c'est l'âme de tout langage LISP).

Par contre, il est pitoyable qu'Autodesk ait cru bon devoir supprimer toute documentation concernant l'API COM depuis la version 2011 au prétexte que VBA doit disparaître (ce qui n'est toujours pas effectif).

 

Par ailleurs, l'utilisation de COM/ActiveX permet d'accéder à d'autres applications (Excel par exemple) ce qui représente l'extension la plus notable apportée par Visual LISP.

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

Posté(e)

Bonjour à tous,

 

Rien à ajouter. Si ce n'est que d'apprendre cette nouvelle façon de programmer AutoCAD profitera largement de tes connaissances de bases, j'ajouterais donc (mais (Gile) l'aurait fait s'il avait voulu aller plus loin) que :

  • Le VisualLisp permet d'accéder à la programmation des évènements (réacteurs)
  • L'on peut programmer l'interface elle-même, donc les options ou les dessins multiples...

 

Doit-on encore en ajouter :huh:

?

 

Pour 2000, c'est exact en livraison brute mais Patrick_35, BonusCAD ou d'autres nous confirmerons sans doute qu'il y avait un Kit pour démarrer la programmation VLisp / COM sur la R14... version que j'utilisais sans programmer encore.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

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

oui entget et les autres et l'accès au DXF existait en 1995.

je n'ai pas le souvenir de l'accès aux tables....

Maintenant je rame pour trouver de la doc sur les tables et leur contenu... ou alors peut être que je ne sais pas chercher! et (gile) nous dit qu'il n'y a plus de doc concernant l'API COM......

 

pour finir, existe-t-il aujourd'hui des fonctions avancées pour "travailler" sur des objets 3d? en visual LISP? par accès aux tables?

peut être me faut-il une version autocad plus récente?

merci

Posté(e)

Pour les tables, il suffit de prendre les rubriques d'aides DXF et l'on trouve des infos.

En Vlisp, trouve une version jusqu'à 2010 ! Et garde le fichier d'aide (*.chm) bien au chaud. Je ne sais pas si quiconque l'aurait proposé à télécharger...

 

Pour ce qui concerne les solides. C'est simple, tu vas pouvoir garder tes bonnes habitudes ! A part les primitives, l'extrusion de régions et les coupes et sections, tu ne pourras pas programmer grand chose de façon "moderne". Le modeleur est externe (et l'a toujours été) et l'on doit user du COMMAND pour faire un balayage ou une édition de solide.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

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

pour ce qui est de la liste des methodes vla-xxxxxxxxxx, il n'existe pas de documentation c'est bien ca?????

 

Si, elle est dans ce fichier d'aide. Tu trouves la liste des méthodes, des objets et des propriétés. C'est dans ActiveX et VBA Reference.

 

Mais puis-je te donner un petit truc ? (Cela console de perdre l'aide à partir de 2011.)

 

vla-AddCylinder

Pour l'obtenir, dans l'éditeur Vlisp, j'ai tapé "vla-Addc" suivi de CTRL+MAJ+ESPACE

Si il est difficile d'appréhender de but en blanc les fonction vla, il est passionnant de voir ce que l'éditeur vous propose...

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

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

Il faut adapter les rubriques de l'aide "ActiveX and VBA Reference" pour Visual LISP (télécharger l'aide aux développeurs donnée dans le lien ci-dessus si tu n'as pas de version antérieur à 2011).

 

Exemple pour AddArc :

RetVal = object.AddArc(Center, Radius, StartAngle, EndAngle)

 

(vla-AddArc object center radius startAngle endAngle)

 

où :

- object = l'espace ou la définition de bloc au quel ajouter l'arc

- center = un variant contenant le point 3d -on utilise vlax-3d-point pour convertir un point LISP (liste de 3 réels) en variant.

- radius = le rayon de l'arc (réel)

- startAngle l'angle de départ de l'arc (réel)

- endAngle l'angle de fin de l'arc (réel)

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

Posté(e)

Hello

 

YES (si mes vieux neurones de 55 ans ne deconnent pas trop),

le VLisp est arrive avec la R14 et c'etait une option ...

(avec la 2000 c sur le VLisp etait present)

 

Le Decapode (lecrabe)

Autodesk Expert Elite Team

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

Bonjour,

 

Petite question bien vite, es-ce que l'aide au dévellopement est en francais par chez vous?

 

A titre d’information tu peux toujours consulter ma réponse ici

 

A+

Apprendre => Prendre => Rendre

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é