Qqs trucs sur Autocad et d'autres logiciels DAO...
Accueil Initiation Méthodologie Variables Comment faire pour Lisps Soft & liens
Sommaire Revit 2020 CVC sur autocad Linux CloudCompare Initiation à Autolisp Blog

 

Autocad est plein de fonctions, mais pourtant il en manque de très intéressantes. Je ne suis moi même pas codeur pour deux sous, mais j'ai récupéré pas mal de moulinettes sur le net. La plupart de ces bouts de programmes ont été ecrits et mis à disposition sur le site CADXP. Les auteurs ont pour pseudo (gile), Patrick, Patrick_35, Bonuscad... j'en oublis sans doute car la plupart de ces lisps ne sont pas signés.

je détaillerai leur utilisation. En attendant, voici la compil de ceux dont je me sers le plus souvent.

Si qq1 qui se trouve être l'auteur d'un de ces programmes et veut émettre un "droit de retrait" qu'il me contacte par mail ou me passer un Mp sur CadXP.

Voici en lien un post d'un grand gourou du lisp (gile) qui explique comment charger un lisp. Je pondrai peut être un tuto dans ce sens, mais autant laisser la parole à qq1 qui maîtrise réellement le sujet.

En parlant de gars qui maitrisent le sujet, voici quelques autres sites bien documentés de personnes qui ne fréquentent pas forcément CadXp.
Je ne peux pas ne pas citer l’excellent site de (gile) et son Intoduction à AutoLISP + de nombreux lisp et fonction à réutiliser dans vos codes.
le site de maxence.delannoy très documenté, qqs cours et routines
Un peu de pub pour Dominique Vaquand qui est notre revendeur autocad, la revue qu'il édite est vraiement bien..
Enfin qqs sites en vrac: AfraLisp avec de nombreux liens et tuto mais en anglais...Et toujours en anglish Lee-mac.com le pape du lisp
on peu ajouter cette une page bien documentée avec de tout du monde de la DAO

Les lisps au quotidien


Comme je le disais, il manque des fonctions plus qu’utile dans Autocad. Mais si vous avez exploré les explications de (gile) vous savez déjà qu’avant d’être utilisé, un lisp doit être chargé. De plus pour des histoires de dépendance de fichier, Autocad doit savoir ou rechercher les dépendances en question. Avant de commencer je vous proposerai donc d’enregistrer ce chemin de recherche dans les options d’Autocad.
Téléchargez si ce n’est déjà fait la compil de lisp. Choisissez-vous un emplacement judicieux et décompressez-le. Dans nom cas ce sera : C:\utils\lisp autocad
Dans les menu ouvrir Outil/Option, le 1er onglet: 'Chemin de recherche des fichiers de support', 'Ajouter', puis 'Parcourir' on va chercher notre dossier.


Qu’y a-t-il dans ce dossier ?


On y trouve des fichiers avec différent type d’extensions.


Les .LSP ce sont les fameux lisps
Les .DCL ce sont des extensions pour des boites de dialogues
Les .VLX, ce sont des fichiers compilés qui regroupent les 2 premier type.
un EXE que j’aime bien, il permet de créer un onglet avec les dessins ouvert (un peu comme sur un navigateur internet il vient du site http://www.caelink.com/drawing_tabs.htm voir dans les options pour ne pas sauvegarder en auto à la fermeture d’un fichier)

A quoi ça sesenble?

Je le rappelle, je ne comprends pas grand-chose en programmation, et si je suis incapable de produite ces routines, mais on peut toujours essayer de lire... après tout, c'est pas de la magie, c'est un fichier texte et on peu en ouvrir un avec un éditeur de texte type note pad ou mieux, Notepad++.


En haut derrière les ; ce sont des commentaires on y trouve généralement le nom de l’auteur (celui à qui vous pouvez envoyer vos dons) et une description du programme. J’ai ajouté une description directement derrière le nom du fichier pour pouvoir la lire directement dans l’explorateur.

Le code à proprement parler commence après la 1ere parenthèse. Généralement, le premier ‘’mot’’ est : (defun c:
Immédiatement et sans espace le nom de la commande à taper pour lancer la routine. C’est le plus souvent le nom du lisp.
Dans ce cas : BCNT.
Si vous voullez aler plus loin, il y a uen grosse litérature sur le sujet, et peut etre atterisez vous sur cette page après avoir taper "lisp autocad" sur google :)
En première initiation, voir le baba du langage de (gile) ici dont je reparle plus bas...

Utilisation

Les utiliser n’est pas si compliqué. Néanmoins, pour l’utiliser, il faut le charger.

La manière scolaire passe par Outil/Charger une application, ou APPLOAD à la ligne de comande qui ouvre la même boite de dialogue.
On peu aussi plus simplement le faire glisser depuis un explorateur dans le dessin. Personellement, j'utilise un raccourci vers le répertoire C:/util/lisp autocad placé dans la bare 'lancement rapide' de wiondows car je suis encore sous XP. Ca permer de l'ouvrir depuis autocad sans rien toucher d'autre.

Une fois "chargé", dans notre exemple, pour compter les blocs de notre sélection, on va simplement taper BCNT sur la ligne de commande.
Notes au passage le message dans la ligne de commande au moment ou on le charge:
Commande: (LOAD "C:/utils/lisp autocad/bcnt . . . ....
qui indique que tout s'est bien passé.

Une remarque en passant, si vous avez plusieurs dessins ouvert, il faudra charger un même lisp pour chaque dessins si vous voulez l'utiliser dans chacun de ces fichiers.

 

Les lisps chargés par défaut

Je me répète, il manque des fonctions dans Autocad, ou parfois si la manipulation est réalisable est terriblement fastidieuse. Certains lisps me sont devenus indispensables. Les charger à chaque dessin serai franchement lourd. Dans les options d'Autocad, on va lui demandé de les appeler par défaut.
Outils/Personnaliser, menu ou, ou encore un clic droit sur une barre d'outil puis personnaliser. En bas de la première liste déroulante on trouve un onglet Lisp. C'est là qu'on va aller charger nos indispensables moulinettes. Il faut faire un clic droit dessus pour y avoir accès. Dans la boite de dialogue 'Choisir un fichier' , avec la touche CTRL on peu en charger plusieurs d'un coup.

A titre d'exemple celle que j'utilise le plus couramment.

 

 

Autre techniques pour charger un lisp

A la question "Comment utilisez-vous tous ces outils personnalisés ?" sur le forum cadXP Bonuscad à fait cette réponse qui donne des pistes bien pratique…

Pour les plus courants (qui sont accessible dans un dossier de recherche d'Autocad), j'utilise un bouton avec la syntaxe suivante.
^C^C(if (not c:elp) (load"elp"));elp;^Z
Je préfère cette manière que de surcharger la valise de chargement automatique au démarrage.

Pour les trucs qui me semble indispensables je passe par (defun-q s::startup .....)

Pour les codes occasionnels, je fais simplement un glisser du navigateur dans la fenêtre graphique pour effectuer le chargement et avoir la commande dispo au clavier.

Commandes internationalles

Pour une portabilité du code il vaut mieux utiliser les commandes en anglais...C'est le cas dans la plupart des lisp précédent, et aussi bien pour les lire que pour les écrire est utile de conaitre les deux nom des commandes.
mais voila... dans l'aide pas de commande en anglais. voici un lien pour une liste des traduction des principales commandes.

Egalement un copier coller d'un message du forum qui explique comment retrouver dans Autocad une commande et ses options en anglais Le truc est de Patrick_35 dans ce message

Une astuce pour trouver les options anglaises.
Tu lances la commande _.-layer
Tu choisis une option française, par exemple la première Etablir
Autocad te demande le nom du nouveau calque.
Tu fais Echap puis tu utilises à ce moment là la flèche du haut et tu vois apparaître make, qui est l'option française d'établir.
Idem pour choisir qui correspond à OnlySet.

Juste une chose, il suffit en général de traduire une option française en anglais pour que cela fonctionne (Renommer --> Rename) mais c'est pas toujours le cas.

Initiation à la programmation

Pour ceux qui comme moi ont envie de s'initier à la programmation, le langage Autolisp qui est celui dans le quel sont écrit la plus part des lisps dont on vient de parler, est un support original. Il est atypique, en ce sens qu'il en n’existe à ma connaissance pas d'autre dont la syntaxe est similaire. Pourtant, la structure "fonctionnelle" du langage reste abordable et compréhensible.

Mais il y a 2 avantages pour un dessinateur. D'une part la notion d'algorithme est une science commune à tous les lagunages de programmation. D'autre part, quand on s'initie à la programmation, on est confronté à des problèmes un peu abstrait et pas forcément utile. Programmer Autocad peu vite s'avérer rentable pour son travail en créant des routines qui vont nous faciliter la vie.
Je n'ai pas la prétention de pousser le bouchon trop loin, mais peut etre apprendrez vous comme moi à faire qqs macro un peu évoluées pour automatiser des taches ingrates et répétitives.

La suite sur ces pages...

 

 

lien vers cadXP