Bortch59 Posté(e) le 17 mars 2011 Posté(e) le 17 mars 2011 Bonjour, Tout est dit dans le titre, je recherche des explications sur le fonctionnement de (trans). Je suis allé voir dans l'aide mais mon anglais n'est pas au top... Merci
VDH-Bruno Posté(e) le 17 mars 2011 Posté(e) le 17 mars 2011 Salut, En faisant une recherché rapide sur le forum tu trouvera facilement beaucoup de sujet similaire, pour toi et rapidement je t’ai trouvé celui-ci Sinon pour les problèmes linguistiquesgoogle ça dépanne bien. Sinon extrait de l’aide R14 quant les fonctions étaient encore traduite.. transEffectue une conversion de point (ou un déplacement) d'un système de coordonnées à un autre. (trans point de à [dpc]) L'argument pt est une liste de trois réels qui peut être interprétée soit comme un point 3D, soit comme un déplacement 3D (vecteur). L'argument de indique le système de coordonnées dans lequel point est exprimé, l'argument à spécifiant le système de coordonnées du point renvoyé. L'argument facultatif disp, lorsqu'il est spécifié et non -nil, indique que point est un déplacement 3D et non un point. Les arguments de et à peuvent être des entiers (tels que spécifiés dans le tableau suivant), un nom d'entité ou un vecteur d'extrusion 3D. Codes de système de coordonnées Code Système de coordonnées0 Général (SCG)1 Utilisateur (SCU courant)2 Affichage: 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 utilisez 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 ; pour ces objets, la conversion entre le SCO et le SCG est une opération d'identité.) 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 n'est pas applicable aux 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. Par 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) Les systèmes de coordonnées sont décrits de manière plus détaillée dans la section "Transformations du système de coordonnées."Par 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. (trans point_inser_texte noment-e-texte 1) Le résultat est alors spécifié dans le message Du point.Réciproquement, vous devez convertir les valeurs de point (ou de déplacement) dans leur SCO cible avant de les transmettre à la fonction entmod. Par 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: (trans '(1 2 3) 1 noment_cercle) Vous pouvez alors ajouter le déplacement obtenu au centre du cercle.Par exemple, si vous recherchez l'extrémité de ligne la plus proche d'un point que vous avez entré, vous devez convertir ce point du SCU au SCV. (trans point_utilisateur 1 2) Vous devez ensuite convertir les points d'extrémité de la ligne du SCO en SCV. (trans extrémité noment_e-ligne 2) Vous calculez alors la distance entre le point saisi et chaque extrémité de la ligne (en ignorant les coordonnéesZ) afin de déterminer l'extrémité la plus proche.La fonction trans peut également transformer des points 2D. La fonction trans permet également de transformer des points 2D en affectant la valeur appropriée à la coordonnée Z. Le composant Z utilisé dépend du système de coordonnées initial (de) spécifié et du type de conversion (point ou déplacement) appliqué. Si la valeur convertie est un déplacement, la valeur Z est toujours égale à 0.0 ; si la valeur convertie est un point, la valeur Z est définie comme indiqué dans le tableau ci-dessous ; la valeur Z est définie comme indiqué dans le tableau ci-dessous. Valeurs Z du point 2D converti De Valeur Z définieSCG 0.0SCU Elévation couranteSCO 0.0SCV Projeté sur le plan de conception courant(plan XY SCU + élévation courante)PSDCS Projeté sur le plan de conception courant(plan XY SCU + élévation courante) Apprendre => Prendre => Rendre
(gile) Posté(e) le 17 mars 2011 Posté(e) le 17 mars 2011 Salut, La fonction trans transforme (ou traduit) les coordonnées d'un point ou d'un vecteur d'un système de coordonnées vers un autre en fonction des arguments qui lui sont passés. 0 = système de coordonnées général (SCG)1 = système de coordonnées utilisateur courant (SCU courant)2 = système de coordonnées de la vue dans la fenêtre courante courante 3 = système de coordonnées de l'espace papier (utilisable seulement avec 2) En plus de ces systèmes de coordonnées, trans accepte aussi comme argument un nom d'entité (ENAME) pour les entités 2d qui définissent un système de coordonnées objet (SCO) ou un vecteur (direction Z d'un SCO qui est alors calculé à l'aide d'un "algorithme d'axe arbitraire" (voir ce sujet). Dans la pratique, les fonctions getpoint et command retourne et requiert des points définis dans le SCU courant.Les entités 2d (cercle, polyligne,texte, référence de blocs...) définissent un SCO qui ne sera différent du SCG que si leur plan de construction est différent du plan XY du SCG. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
VDH-Bruno Posté(e) le 17 mars 2011 Posté(e) le 17 mars 2011 Merci pour ton lien (gile) je ne le connaissais pas :D Il est trés bien, beau travail, le meilleur post que j'ai vu sur ce sujet clap clap clap(Ps: je l'archive) Apprendre => Prendre => Rendre
Bortch59 Posté(e) le 18 mars 2011 Auteur Posté(e) le 18 mars 2011 Salut, Merci pour ces explications mais je n'arrive pas à le faire fonctionner correctement. Je m'explique: quand je change le SCU avec UCSfollow à 0 ça fonctionne mais avec UCSfollow à 1 le résultat n'est pas celui escompté. Quelle notion me fait défaut? PS: ceci dit sans utiliser (trans) ça fonctionne aussi quand UCSfollow est à 0. Je pense que je ne maitrise pas le SCU correctement [Edité le 18/3/2011 par Bortch59]
(gile) Posté(e) le 18 mars 2011 Posté(e) le 18 mars 2011 Je m'explique: quand je change le SCU avec UCSfollow à 0 ça fonctionne mais avec UCSfollow à 1 le résultat n'est pas celui escompté. Difficile de t'aider si tu ne décris pas mieux ce qui fonctionne ou ne fonctionne pas. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bortch59 Posté(e) le 18 mars 2011 Auteur Posté(e) le 18 mars 2011 Très juste. Désolé. Je cherche à exploiter (trans) suite à une remarque de bonuscad dans ce post:http://www.cadxp.com/sujetXForum-31360.htm Et je n'arrive pas à comprendre comment exploiter la fonction.
(gile) Posté(e) le 19 mars 2011 Posté(e) le 19 mars 2011 Dans la routine postée dans le sujet que tu donnes en lien, trans ne sera d'aucune utilité. Comme dit plus haut, getpoint retourne un point en coordonnées SCU courant et command requiert des points en coordonnées SCU courant.Ta commande PAS fonctionnera donc toujours dans le SCU courant quel qu'il soit. La fonction trans n'est utile que si le programme utilise des fonctions qui retournent ou requièrent des points définis dans des systèmes de coordonnées différents. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bonuscad Posté(e) le 19 mars 2011 Posté(e) le 19 mars 2011 command requiert des points en coordonnées SCU courant Tant que tu reste avec command dans du code effectivement (trans) ne te sera guère utile.Il peut le devenir si tu décide à créer tes entités avec (entmake), la plupart des entités simples se créent alors dans le SCG (quelque soit le SCU courant) à la différence de (command) qui assume les transferts de coordonnées en interne pour la création des entités. (command) est plus simple pour débuter, mais demande une surveillance des variables qui peuvent influencer son comportement. (entmake) est plus rapide et ne nécessite pas ce contrôle de variable mais exige que tu lui fournisse les coordonnées dans le système requis (la plupart du temps dans le SCG, dès fois dans le SCO pour des entités complexes), ceci quel que soit le SCU où tu te trouves lors de l'exécution de ton code.Le vecteur d'extrusion (code DXF 210) est à ne pas oublier non plus. Il y aussi les fonctions (vlax-invoke...) qui s'alignent sur le mode opératoire de (entmake) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Bortch59 Posté(e) le 22 mars 2011 Auteur Posté(e) le 22 mars 2011 Bonjour, comment expliquer le comportement de ma routine (voir fichier ci-joint) ? PAS.dwg
bryce Posté(e) le 22 mars 2011 Posté(e) le 22 mars 2011 Bonsoir, Tu as pensé à désactiver les accrochages objets dans ta routine (osmode=0, et/ou osnapcoord=1) ? Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Bortch59 Posté(e) le 23 mars 2011 Auteur Posté(e) le 23 mars 2011 Bonjour, Effectivement avec osmode=0 tout fonctionne à merveille. Merci.
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant