Hab einen Teil des Problems inzwischen selbst gelöst...
Folgendes funktioniert wenn das UCS gesetzt wurde, wobei UCSFOLLOW = 0 war. das Fadenkreuz ist somit "gedreht".
Wenn ich UCSFOLLOW aber auf 1 hatte, und somit der Display gedreht wurde, passiert aus meiner logik her etwas sehr seltsames.
Kann das vielleicht jemand testen und mir einen Anstoß geben?
wäre sehr dankbar.
Code:
(defun _grvecs (vecs rotation_z translation_xy scale_xyz / )
(grvecs
vecs
( (lambda (ang V scale / xDir)
(setq xDir (angle '(0 0 0) (getvar 'ucsxdir))
V (mapcar
'+
((lambda (a / )
(list
(- (* (cos a) (car V)) (* (sin a) (cadr V)))
(+ (* (sin a) (car V)) (* (cos a) (cadr V)))
0
)
)
xDir
)
(trans '(0 0 0) 1 0)
)
ang (+ xDir ang)
)
(list
(list (* (cos ang) (car scale))(* (sin ang) -1) 0. (float (car V)))
(list (sin ang)(* (cos ang) (cadr scale)) 0. (float (cadr V)))
(list 0. 0. (* 1. (caddr scale)) 0.)
(list 0. 0. 0. 1.)
)
)
(if rotation_z
rotation_z
0
)
(if translation_xy
translation_xy
'(0 0 0)
)
(if scale_xyz
scale_xyz
'(1 1 1)
)
)
)
)
Grüße reltro
[Diese Nachricht wurde von reltro am 22. Mrz. 2013 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP