Aller au contenu

Messages recommandés

Posté(e)

Voilà, j'utilise tous les jours l'ensembles de super routines de BonusCAD...

 

Mais voilà, Il y en a une qui me plait tellement, que j'aimerais la "mettre à ma sauce"... En effet, C'est une routine qui encadre un texte, ou un multitexte, d'une trame (_solid)...

 

Pour ce faire, cette routine sort les 4 coordonnées du contour de ce texte (ou MTexte)...

 

Cette figure particulière est toujours un rectangle... (trop rarement un carré, ce qui ne change rien)

 

Comme chacun sait, il ne passe qu'un cercle passant par les 4 sommets d'un rectangle....

 

C'est ce cercle que j'aimerais tracer.... En gros, j'entours le texte..

 

J'ai lu et relus la routine "box_text"... Mais je ne saisie pas tous...

 

Aurrais-tu une version commentée, ne serait-ce que légèrement... Car je suis sur qu'il y a du "Code DXF" ( je je découvre ) et des liste ( que je ne maitrise pas encore...)

 

Même sans aucune réponse de ta part, Merci pour ces routines.....

 

Elles me font gagner un temps ! ! ! Pffffff ! ! !

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Je ne sais pas de quelle routine tu parles mais j'imagine que les points récupérés pour faire le rectangle le sont avec la fonction LISP textbox cette fonction retourne les points de la diagonale du rectangle qui contient le texte (les coordonnées sont calculées par rapport au point d'insertion du texte)

 

Il est donc facile d'envisager de recalcuer ces coordonnées par rapport au SCU de trouver leur milieu et le rayon du cercle.

 

Tu vas devoir te servir de mapcar pour les opérations sur les points et voir comment on peut passer deux listes (x y z) comme argument à mapcar.

 

Je t'aide un peu, pour ajouter points, par exemple pt1, le premier point de la liste retournée par textbox et ins le point d'insertion du texte :

 

(mapcar '+ pt1 ins) la liste retournée est celle des coordonnées du premier point de la diagonale.

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

Posté(e)

Le petit ' (apostrophe) veut bien dire "setq" ?

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Woouf, :o

 

Tu veux sauter à une grosse étape. Dans cette routine, j'ai essayé (non pas sans mal) de créer ma propre matrice de transformation pour mettre le cadre dans le SCO (Système de Coordonnées de l'Objet)

Pour ceci je m'étais servir d'un cours enoncé ICI, mais je crois que le lien est maintenant cassé.

 

Tu peux faire une recherche avec le nom de l'auteur et "matrice de transformation" avec google, je pense avoir encore une copie du diaporama, au cas où que tu veuille te le procurer.

 

Je pense que l'on pourrait faire la même chose avec (trans), mais à l'époque je n'y étais pas arrivé, alors je mettais entrainé avec cette solution.

 

Mais dans la simplicité tu peux te servir de la liste de la variable lst_box de la routine pour déduire le centre de ton cercle et le rayon (milieu des 2 points de diagonale de la liste et distance de ce point obtenu à un point quelconque de la liste pour le rayon). Ca c'est moins "difficult" ;)

 

Tu pourrais même faire une ellipse applatie, plus jolie.... qu'un cercle :P

 

' (apostrophe) est équivalent à la fonction (quote) ; voir l'aide

 

[Edité le 20/6/2006 par bonuscad]

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

La dernière réponse pour ce soir, après je vais me coucher !

 

l'apostrphe est une abréviation de la fonction (quote ...) qui signifie "ne pas évaluer", un peu comme le q de setq (ce qui le différencie de set)

 

L'expression LISP classique c'est (fonction argument1 argument2 ...) elle est évaluée. Quand on fait une liste on fait soit (list "a" "b" "c") c'est une expression classique la fonction list est évaluée avec ses arguments "a" "b" "c" on peut aussi faire (quote ("a" "b" "c")) où l'argument de la fonction quote est la liste ("a" "b" "c") qui n'est pas évaluable car "a" n'est pas une fonction on l'écrit généralement '("a" "b" "c")

 

Autre exemple

 

(setq A 10) équivaut à (set (quote A) 10) ou (set 'A 10) on n'évalue pas le symbole A pour lui attribuer la valeur 10. Si on tape A à la console, on obtient bien 10

 

Poussons un peu

 

(setq B 'A) on attribue à B le symbole A, pas sa valeur. Si on tape B à la console, on obtient A. Mais si on fait (eval B) on obtiendra 10.

 

Dans le cas de mapcar, comme pour les autres fonctions qui ont pour argument une fonction (apply, vl-remove-if ...), cette fonction est "quotée".

 

Bonne nuit ...

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

Posté(e)

Merci à tous, mais je suis tombé par hazard sur une routine Express (tcircle) qui fait exactement ce que je cherche...

 

Merci à tous....

 

Je vais quand-même faire un tour sur les matrices...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é