mlon Posté(e) le 21 octobre 2005 Posté(e) le 21 octobre 2005 Bonjour j'essaie de récupérer les coordonnées exactes de lwpolyline.Je suis bien tombé sur un message de Patric_35 relantant ses déboires avec trans .d'ailleurs dans ce post , il est dit que pour récupérer les coordonnées SCU d'un point il faut faire (trans (cdr (assoc -10 ent)) (cdr (assoc -1 ent)) 1) celà ne fonctionne pas (du moins je n'y arrive pas) par contre (trans (cdr (assoc 10 ent)) (cdr (assoc -1 ent)) 1) si le scu courant n'est pas le général ça fonctionne. Par contre si le scu courant est le général (trans (cdr (assoc 10 ent)) (cdr (assoc -1 ent)) 1)me renvoie le meme point que(trans (cdr (assoc 10 ent)) (cdr (assoc -1 ent)) 0) ; jusque là tout est normal...qui est aussi le meme point que(cdr (assoc 10 ent)) autrement dit pas de transformation... je sais ce que je sais mais comment connaître mon ignorance
(gile) Posté(e) le 21 octobre 2005 Posté(e) le 21 octobre 2005 Salut, Si çà peut t'aider, j'avais mis au point une façon de créer une LWPOLYLINE avec entmake. J'ai aussi été confronté au problème de SCU, voilà comment j'ai résolu le problème (il y a sûrement moyen de faire plus élégant) : (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(90 . 4) ; nombre de sommets '(70 . 1) ; ouverte (0) ou fermée (1) (cons 38 (- (caddr pt1) (caddr (trans '(0 0) 0 1)))) ; élévation (cons 10 (trans pt1 1 (EXTR_DIR))) (cons 10 (trans pt4 1 (EXTR_DIR))) (cons 10 (trans pt2 1 (EXTR_DIR))) (cons 10 (trans pt3 1 (EXTR_DIR))) (cons 210 (EXTR_DIR)) ; direction d'extrusion ) ) avec : ;;; EXTR_DIR Retourne la direction d'extrusion du SCU courant (defun EXTR_DIR () (mapcar '- (trans '(0 0 1) 1 0) (trans '(0 0 0) 1 0)) ) C'est, si j'ai bien compris, l'inverse de ce que tu veux faire, mais avec la direction d'extrusion et l'élévation tu dois arriver à traduire les coordonnées des sommets. À plus. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 21 octobre 2005 Posté(e) le 21 octobre 2005 Re, Je pense que ceci doit répondre à ta question : (mapcar '+ (trans (cdr (assoc 10 ent)) (cdr (assoc 210 ent)) 1) (list 0 0 (cdr (assoc 38 ent))) ) Attention ! Çà ne marche que si le SCU courant est parallèle au SCO. [Edité le 21/10/2005 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
mlon Posté(e) le 21 octobre 2005 Auteur Posté(e) le 21 octobre 2005 Merci du soutien mais entre temps je me suis rendu compte qu'il y avait une différence entre la réponse affichée et la véritable valeur (en effet l'affichage est apparemment arrondi mais si on se sert de la variable associée, la vraie valeur est prise en compte...)Donc en fait ça roule impec depuis le départ... vu que j'y ai passé la moitié de l'aprem je suis en plein "grand moment de solitude" là!!! (suis quand meme un gros nanard sur ce coup là) je sais ce que je sais mais comment connaître mon ignorance
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