TRANS

TRANS


Conversion de coordonnées


Cette fonction permet de convertir des coordonnées d'un système dans un autre, on parle de systèmes de coordonnées dans AutoCAD,
- du SCU qui est le Système de coordonnées Utilisateur
- du SCG qui est le Système de coordonnées Général,
- mais aussi les SCO qui est le Système de coordonnées d'un Objet.

Syntaxe : (trans pt de à [dpct])

L'argument pt est une liste de trois réels qui peut être interprétée soit somme un point 3D soit comme un 3D déplacement (vecteur)

L'argument "de" indique le système de coordonnées dans lequel "pt " est exprimé, l'argument "à"  spécifiant le système de coordonnées du point renvoyé.

L'argument facultatif "dpct", lorsqu'il est spécifié et non nul, indique que "pt " est un déplacement 3D et non un point.
Les arguments "de" et "à" peuvent être des entiers (integer)

Le tableau suivant, un nom d'entité ou un vecteur d'extrusion 3D :
Codes de systèmes de coordonnées

Code Système de coordonnées
0 Général (SCG)
1 Utilisateur (SCU courant)
2 Visualisation :
SCV de la fenêtre courante (associé au code 0 ou 1)
SCV de la fenêtre d'espace objet courante (associé au code 3)
3 SCV de l'espace papier (uniquement avec le code 2)

Si vous entrez un nom d'entité pour les arguments "de"ou "à", le nom renvoyé par les fonctions entnext, entlast, entsel, nentsel et ssname doit être renvoyé.

Vous pouvez ainsi effectuer une conversion de point vers et depuis le système de coordonnées de l'objet (SCO) d'un objet spécifique.
(pour certains objets, le SCO est équivalent au SCG; la conversion SCO/SCG est donc une opération nulle pour ces objets.)

Une autre méthode de conversion en SCO d'un objet consiste à utiliser un vecteur d'extrusion 3D (liste de trois réels), cependant, cette méthode ne peut être utilisée pour les objets dont le SCO est équivalent au SCG.

La fonction (trans) renvoie un point 3D (ou déplacement) dans le système de coordonnées spécifié par l'argument "à".

Exemple :

Soit un SCU auquel est appliqué une rotation de 90 degrés dans le sens trigonométrique sur l'axe général des Z.

(trans '(1.0 2.0 3.0) 0 1)

Renvoie (2.0 -1.0 3.0)

(trans ' ( 1.0 2.0 3.0) 1 0)

Renvoie ( -2.0 1. 0 3. 0)

Exemple :

Pour tracer une ligne à partir du point d'insertion d'un texte (sans utiliser la fonction osnap), le point d'insertion de l'objet texte est converti du SCO associé à cet objet en SCU.
Pour cet exemple : dessinez (écrivez) un texte dans le SCG, créer un SCU par trois points indifféremment puis : tapez ce code :

1
2
3
4
(setq ent-texte (car(entsel"\nChoix du texte\n"))
      pt-ins-texte (cdr(assoc 10 (entget ent-texte)))
      pt-trans (trans point_inser_texte noment-e-texte 1)
 )

Ligne 1 : Choix de l'entité "texte", ename dans la variable ent-texte
Ligne 2 : Variable pt-ins-texte qui reçoit le point d'insertion du texte
Ligne 3 : Transformation des coordonnées contenues dans  pt-ins-texte dans le système de coordonnées courant.


Réciproquement, vous devez convertir les valeurs de point (ou de déplacement) dans leur SCO cible avant de les transmettre à la fonction (entmod)

Exemple :
Si vous voulez déplacer un cercle (sans utiliser la commande DEPLACER) par décalage relatif du SCU (1,2,3), vous devez convertir le déplacement du SCU au SCO associé au cercle.

1
2
3
4
5
(setq nom-cercle (car(entsel"\nChoix d'un cercle\n")))
(setq c1 (cdr (assoc 10 (entget nom-cercle))))
(setq c2 (trans '(1 2 3) 1 nom-cercle))
(setq new (subst (cons 10 c2) (cons 10 c1) (entget nom-cercle)))
(entmod new)

Ligne 1 : choix d'un cercle et (ename) du cercle dans la variable nom-cercle
Ligne 2 : la variable c1 contient le centre du cercle
Ligne 3 : transformation des coordonnées du centre du centre
Ligne 4 : changement des coordonnées dans la liste (entget)
Ligne 5 : modification (déplacement) du cercle


 


Haut de page

retour au menu CONVERSIONS


07 janvier 2018