Aller au contenu

Coordonné z d\'un point delta sur un maillage


Messages recommandés

Posté(e)

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

Posté(e)

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

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité