Mika30 Posté(e) le 2 février 2010 Posté(e) le 2 février 2010 Bonjour à tous ! Voici mon ptit problème :J'ai modélisé sur totoCad un terrain naturel avec un maillage 3D (j'ai 6 points avec les coord. x,y,z).Comment faire pour connaitre avec exactitude la coordonné z d'un point sur ce maillage (sachant que je connais x et y). Si cela n'est pas possible de cette façon y a t il une autre methode? Merci d'avance
bonuscad Posté(e) le 2 février 2010 Posté(e) le 2 février 2010 Bonjour, J'avais écrit un truc qui, je pense, pourrait servir. A tester ! ;) ((lambda ( / pt lst_pt ld n i rs obj_sel dxf_ent X1 X2 X3 Y1 Y2 Y3 Z1 Z2 Z3 E1 E2 E3 E4 Z) (repeat 3 (initget 9) (if lst_pt (setq pt (getpoint pt "\nNext point: ")) (setq pt (getpoint "\nGive 3points of plane - First point: ") n 0) ) (setq lst_pt (cons pt lst_pt) ld '(88 89 90) i 0) ) (foreach item '(("X" . "'car") ("Y" . "'cadr") ("Z" . "'caddr")) (mapcar '(lambda (x) (set (read (strcat (car item) (itoa (setq n (1+ n))))) x)) (mapcar (eval (read (cdr item))) lst_pt) ) (setq n 0) ) (foreach el ld (repeat 3 (setq rs (cons (* (eval (read (strcat (chr (nth n ld)) (itoa (1+ i))))) (- (eval (read (strcat (chr (nth (rem (1+ n) 3) ld)) (itoa (1+ (rem (1+ i) 3)))))) (eval (read (strcat (chr (nth (rem (1+ n) 3) ld)) (itoa (1+ (rem (+ 2 i) 3)))))) ) ) rs ) i (1+ i) ) ) (set (read (strcat "E" (itoa (1+ n)))) (apply '+ rs)) (setq n (1+ n) i 0 rs nil) ) (setvar "osmode" (+ 16384 (rem (getvar "osmode") 16384))) (initget 9) (setq pt (getpoint "\nSelect line or give point, to project on the plane: ") E4 (- (- (* E2 X1)) (* E3 Y1) (* E1 Z1)) ) (setq obj_sel (nentselp pt)) (setvar "osmode" (rem (getvar "osmode") 16384)) (cond ((and obj_sel (eq (cdr (assoc 0 (setq dxf_ent (entget (car obj_sel))))) "LINE")) (command "_.line") (foreach el '(10 11) (setq pt (trans (cdr (assoc el dxf_ent)) 0 1) Z (- (- (* (/ E2 E1) (car pt))) (* (/ E3 E1) (cadr pt)) (/ E4 E1)) ) (command "_none" (list (car pt) (cadr pt) Z)) ) (command "") ) (pt (setq Z (- (- (* (/ E2 E1) (car pt))) (* (/ E3 E1) (cadr pt)) (/ E4 E1))) (command "_.point" "_none" (list (car pt) (cadr pt) Z)) ) ) (prin1) )) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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