Manipulations simple d'entités.
Je me suis peut être un peu emballé dans ma progression d'exercices aussi j'insère ce chapitre. Je vous propose d'essayer de faire de petites fonctions qui ont été demandées sur le site CadXp ou dont j'ai eu besoins moi même pour mon boulot. Ce sont là plus des macro que de vrai lisp, mais on va pouvoir aborder plusieurs concepts et d'utiliser les commandes Autocad (méfiance suivant vos version). Au programme Copie multiple, Enchainer des rotations, Décalage fixe de polylignes.
Préalable
Depuis la versions 2012 totodesk à ajouter une fonction (command-s en plus des (command et (vl-cmdf voir un article de master (gile) ici
Il y a qqs différences détaillées ici entre les 3 commandes
Je parle de ça car on va pas mal utiliser ces tournures pour nos macro.
Rappel avec entmake on passe par des coordonnées SCG et pour (comman et consort par des coordonnées SCU
Rotation multiple
Je vous propose de faire une fonction pour faire des rotations fixes d'entités selectionnées suivant un angle déterminé par 3 points ou indiqué. On demande le centre de rotation, le point de départ de l'angle, son point d'arrivée. Chaque fois qu'on tappe espace une nouvelle copie des entités est créée. |
|
|
Pour rappel la commande (angle pt1pt2) donne l'angle (en radiants) entre l'axe des X et la droite définie par pt1 pt2. Pour modifier la condition de sortie, qui à été initialisée à la valeur logique T, on va l'affecter au résultat d'une évaluation logique. Et c'est la fin...
|
![]() |
Voici mon code, mais ça devrait etre dans vos cordes RTF.lsp
Trigo texte (polar
L'algorithme est bidon, je ne le trace même pas. Il va vous falloir le lire en direct
à noter que l'unité de base des angles dans les fonctions c'est le radian.
L'ocasion de voir les codes dxf des textes, et un test sur un intervale ( x1<X<x2)
On peut aussi retenir une méthode quand on fait des programmes de test.
On commence par créer une liste d'entrée, puis on initialise les variables en piochant dans cette liste. Comme ça, si on veut changer les paramètres, on à qu'a changer la liste. Petite astuce avec le débuggeur voir ici.
le lisp ici TRIGO.LSP
Trigo Couleurs (polar
Qui à dit qu'on devait faire que des trucs moche? Dans le même espris on va faire des lignes tous les 360/256 ° Je ne donne même pas le code. A vous de le faire à partir de l'exemple précédent alez...si
|
![]() |