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. 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.
Je reprends pas le texte, mais j'ai depuis trié des lisps indispensables au démarage
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.