(gile) Posté(e) le 7 novembre 2010 Posté(e) le 7 novembre 2010 Salut, Le vocable "Visual LISP" est souvent employé pour nommer des concepts différents. La confusion étant présente jusque dans l'appellation et l'utilisation de ce forum. Après le rachat par Autodesk de Vital LISP (qui comportait un Environnement de Développement Intégré -IDE- et l'accès à l'interface ActiveX Automation de Microsoft), cet 'addon' est renommé Visual LISP et intégré à AutoCAD dans la version 2000. Ce sera la dernière extension significative pour AutoLISP. Avec Visual LISP, AutoLISP se voit doté de nouvelles capacités : - Un Environnement de Développement Intégré (IDE) : l'éditeur Visual LISP dont je recommande fortement l'utilisation même s'il s'agit de débuter avec AutoLISP. - Un compilateur qui permet de compiler les fichiers LISP (et DCL) en fichiers FAS ou VLX. À noter, les fonctions définies avec defun sont aussi compilées (objets SUBR ou USBR) lors de leur chargement (elles étaient conservées sous forme de listes avant Visual LISP, voir ici). - De nouvelles fonctions natives préfixées vl-, vla-, vlax- et vlr.Les premières (vl-*) ne se distinguent des premières fonctions AutoLISP que par ce préfixe, elles ont un comportement identique et ne nécessitent pas d'invoquer (vl-load-com) pour être chargées, ce que requièrent les suivantes. L'expression (vl-load-com) charge les extensions Visual LISP, notamment l'interface COM/ActiveX Automation (interface utilisée par VBA et accessible pour .NET et ObjectARX). Les fonctions vla-* permettent d'accéder aux objets de l'interface COM d'AutoCAD (comme le VBA AutoCAD). La syntaxe est un peu différente de la syntaxe fonctionnelle du LISP classique à cause de la structure de cette interface organisée en objets ayant des propriétés et des méthodes. Les fonctions vlax-* se partagent entre fonctions d'accès à Microsoft (et AutoCAD) ActiveX Automation et fonctions directement issues d'ObjectARX (vlax-curve-* et vlax-ldata-*). Les fonctions vlr-* concernent les réacteurs aux évènements dans AutoCAD et sont aussi issues d'ObjectARX. Les fonctions vl-*, vlax-* et vlr-* sont documentées dans l'aide aux développeurs > AutoLISP Reference > AutoLISP Functions.La documentation pour les fonctions vla-* est à extrapoler de : "ActiveX and VBA Reference" dans l'aide aux développeurs (rubrique disparue avec la nouvelle aide de la version 2011). On a coutume de parler de Visual LISP (ou vlisp) par opposition à AutoLISP quand il s'agit de l'utilisation de ces fonctions (vla-*, vlax-* et vlr-*) et, malgré ce qu'aurait voulu Patrick (créateur de CADxp), c'est plus de ça dont il est question dans ce forum que de l'éditeur Visual LISP. Personnellement je ne pense pas que ce soit dommageable, comme je le disais, je pense que l'éditeur est un outil à utiliser dès les débuts en LISP et que l'utilisation des fonctions 'vlisp' peut être considéré comme une étape ultérieure dans l'apprentissage (d'aucuns auront certainement remarqué des merveilles écrites en "pur AutoLISP"qui n'ont rien à envier à du code plus "moderne"). Le fichier acadauto.chm (rubrique ActiveX and VBA reference de l'aide aux développeurs) qui a été supprimé dans l'aide de la version 2011. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
thierry.garré Posté(e) le 7 novembre 2010 Posté(e) le 7 novembre 2010 Merci gile pour cet éclaircissement. Pour ma part je fais mes tous début d'apprentissage du lisp. Je ferai surement appel a tes lumières d'ici peu. Thierry Garré Géorail-Covadis-Autopiste-Autocad-Autocad Map-Infraworks 360- Navisworks -Recap
mattoti Posté(e) le 16 novembre 2010 Posté(e) le 16 novembre 2010 Merci (gile) pour ces intéressants détails concernant autolisp/Vlisp.Pour ma part, je n'ai jamais utilisé l'Editeur Visual Lisp, je devrai m'y mettre pour essayer. Je suis habitué à l'Editeur SCITE.Toute ma connaissance (ou presque) en LISP me vient de CADxp et je m'inspire beaucoup des exemples de codes que j'y trouve.En ce moment, pendant mes temps libres, je fais une petite "CAO élec.", avec des symboles "pères" et "fils" dont les renvois sont automatiques. Pour l'instant je me débrouille mais j'aurais peut-être besoin plus tard des lumières de pros de Lisp. Mat
Tramber Posté(e) le 16 novembre 2010 Posté(e) le 16 novembre 2010 Salut, En tous cas, si tu veux une lumière en voici une : utilise l'éditeur VLISP (en tapant la commande). Au moins un peu.Il est bourré de fonctions pratiques et dédiées. Comment fais-tu pour évaluer une à une tes expressions le cas échéant ?Comment s'en passer ? Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
mattoti Posté(e) le 16 novembre 2010 Posté(e) le 16 novembre 2010 Salut Tramber, J'évalue mes expressions directement dans AutoCAD lorsque je veux débugger mon code.C'est sans doute plus facile avec l'Editeur VLISP mais je me contente de cette méthode depuis quelques années.Mais promis, dès que j'aurais un peu de courage je me met à l'Editeur. D'ailleurs je viens d'essayer et j'ai eu le message suivant en chargeant mon code:; avertissement: symbole identique trouvé avant et après / dans la liste d'arguments: FILTRECAO Erreur que je n'aurais sans doute jamais vu autrement. Oui j'imagine que quand on commence à utiliser l'Editeur on ne peut plus s'en passer. En fait je suis habitué à SCITE car je code parfois un peu en Common Lisp (CLISP) et je n'ai rien de mieux de SCITE pour cela...
Tramber Posté(e) le 16 novembre 2010 Posté(e) le 16 novembre 2010 On a parlé d'Ultraedit ici. Oui, donc, l'éditeur interne est précieux pour qui développe, même de petites applis. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
rebcao Posté(e) le 7 février 2013 Posté(e) le 7 février 2013 Bonjour, Je ne suis pas très rompu aux syntaxes VLA... Mais pour un VLA-OBJET quel serait la syntaxe pour lui changer son calque, exemple mon objet aurait comme nom : ENT à placer dans le calque : POUBELLE.... Merci pour votre aide. Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
VDH-Bruno Posté(e) le 7 février 2013 Posté(e) le 7 février 2013 Bonjour Christian, Mais pour un VLA-OBJET quel serait la syntaxe pour lui changer son calque, exemple mon objet aurait comme nom : ENT à placer dans le calque : POUBELLE.... Pour l'exemple 3 syntaxes possible:(vla-put-Layer (vlax-ename->vla-object (car (entsel))) "POUBELLE") (vlax-put (vlax-ename->vla-object (car (entsel))) 'Layer "POUBELLE") (vlax-put-property (vlax-ename->vla-object (car (entsel))) 'Layer "POUBELLE") Un lien pertinant au sujet des syntaxes vlisphttps://cadxp.com/topic/34040-syntaxe-visual-lisp-vla-vlax/ A+ Bruno Apprendre => Prendre => Rendre
vincentp010 Posté(e) le 7 février 2013 Posté(e) le 7 février 2013 (vla-put-layer ENT "POUBELLE") Edit: en retard Aide au téléchargement du cadastre dgfip-download-helper Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0 Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js
VDH-Bruno Posté(e) le 7 février 2013 Posté(e) le 7 février 2013 Re, Sinon pour ce qui est du changement de calque et pour mémoire l'équivalent Lisp serait: (entmod (subst (cons 8 "POUBELLE") (assoc 8 (setq ent (entget (car (entsel))))) ent)) A ne pas "ringardiser" trop vite, car comme pour entmake, entmode crée le calque de destination, si il n'est pas présent dans le dessin. A+ Bruno Apprendre => Prendre => Rendre
rebcao Posté(e) le 12 février 2013 Posté(e) le 12 février 2013 Bonjour, Merci pour vos réponses... Spécial la syntaxe VLISP ! Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant