Hi,

I tested the ROT function of gile (please correct me if I mistyped the code):

This function I try currenly:

`(defun rot3d (pt ax1 ax2 ang)`

((lambda (v)

(mapcar '+

ax1

(trans

(mxv

(list (list (cos ang) (- (sin ang)) 0.)

(list (sin ang) (cos ang) 0.)

'(0. 0. 1.)

)

(trans (mapcar '- pt ax1) 0 v)

)

v

0

)

)

)

(mapcar '- ax2 ax1)

)

;; MXV

;; Apply a transformation matrix to a vector -Vladimir Nesterovsky-

(defun mxv (m v)

(mapcar (function (lambda (r) (apply '+ (mapcar '* r v)))) m)

)

Example of Input:

smallarc = 6.64126

arccen1 = (7.92513 4.54529 -5.0)

arccen2 = (7.92513 4.54529 45.0)

ptempprev = (-2.40231 -6.33332 -5.0)

Both Codes compared:

(setq ptempnow (cal "rot(ptempprev,arccen1,arccen2,smallarc)"))

(setq ptempnow1 (rot3d ptempprev arccen1 arccen2 smallarc))

Both Codes Output:

(print ptempnow) = (-1.07487 -7.45471 -5.0)

(print ptempnow1) = (2.06541 -9.26282 -5.0)

They don't match? Did I mistype something here?

You're right Lee, I forgot some statements

`(defun rot3d (pt ax1 ax2 ang)`

((lambda (v)

(mapcar '+

ax1

(trans

(mxv

(list (list (cos ang) (- (sin ang)) 0.)

(list (sin ang) (cos ang) 0.)

'(0. 0. 1.)

)

(trans (mapcar '- pt ax1) 0 v)

)

v

0

)

)

)

(mapcar '- ax2 ax1)

)

)