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)
)
)