Bonjour à Toutes et à Tous,
J'étais persuadé que le CODE DXF 10 = au point d'insertion d'un BLOC ?
Dans le dessin ci-joint, le CODE 10 ne correspond pas à son Point d'Insertion qui est donné par les CHAMPS X et Y ?!
QUID ? Peut-être parce que le bloc contient des ATTRIBUTS ?
Je vous remercie pour votre aide.
Christian
Christian REB
Résolu ! Accéder à la solution.
Résolu par _gile. Accéder à la solution.
Résolu par O_Eckmann. Accéder à la solution.
Bonjour @rebcao ,
Ton bloc possède une direction d'extrusion (voir la commande LISTE) ainsi que le code 210 qui donne cette direction.
Si tu te mets en vue de face tu verra qu'il n'est pas horizontal.
Pour obtenir les valeurs XY telle qu'affichées, il faut mouliner le code 10 avec ce vecteur.
Gilles a toutes une liste de fonction Lisp sur les matrices et produits vectoriels pour faire le boulot : https://gilecad.azurewebsites.net/Lisp.aspx
Olivier Eckmann
Bonjour @rebcao
Si une des réponses résout votre problème ou vous a permis de mieux le comprendre, voulez vous avoir l'amabilité de cliquer sur le bouton APPROUVER LA SOLUTION en bas de la réponse qui apporte une solution?
Cela facilitera la navigation de nos utilisateurs qui pourront directement atteindre la solution
Sachez qui si vous avez marqué une réponse comme solution par erreur, vous pouvez annuler ce marquage en cliquant sur le menu du fil (les trois points verticaux) et choisir "pas la solution"
Merci de ne pas accepter comme solution le message que vous êtes en train de lire.
Salut,
La valeur du groupe DXF 10 pour une référence de bloc correspond au point d'insertion dans le Système de Coordonnées de l'Objet (SCO)
Pour avoir les coordonnées SCG du point d'insertion, on peut utiliser la fonction trans pour convertir le point renvoyé par entget.
Considérant :
(setq bloc (car (entsel)))
(setq dxf (entget bloc))
on obtient le point d'insertion dans le SCG en faisant :
(trans (cdr (assoc 10 dxf)) (cdr (assoc 210 dxf)) 0)
ou :
(trans (cdr (assoc 10 dxf)) bloc 0)
On notera que la fonction getpropertyvalue avec la propriété "Position" renvoie directement le point d'insertion dans le SCG.
(getpropertyvalue bloc "Position")
Salut Gilles,
Ouuuaaaaaaaaaaaaaaaaaaaaaaaaaa ! ça sort d'où ? Je connaissais SCG, SCU et maintenant je découvre le SCO !!!
En tout cas un grand merci ! j'obtiens bien le Point d'insertion du BLOC... ça s'invente pas le LISP !
Christian
Christian REB
@rebcao a écrit :
Salut Gilles,
Ouuuaaaaaaaaaaaaaaaaaaaaaaaaaa ! ça sort d'où ? Je connaissais SCG, SCU et maintenant je découvre le SCO !!!
En tout cas un grand merci ! j'obtiens bien le Point d'insertion du BLOC... ça s'invente pas le LISP !
Christian
Le Systéme de Coordonnées Objet n'est pas spécifique au LISP, c'est plutôt un concept DXF pour alléger la base données du dessin. Voir ce sujet de l'aide aux développeurs.
Salut Gilles @_gile
Je te remercie pour cette info.
Tu vois, j'aime ce métier, car après 39 ans d'utilisation de notre cher AutoCAD je continue à apprendre et en découvrir tous les jours... 😊
Merci.
Christian
Christian REB
Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.