本帖最后由 USER2128 于 2021-8-14 15:01 编辑
楼主的程序是有问题的,刚好要用到,因而花时间编了一个: - ;;; 求点绕两点形成的轴旋转一角度之后坐标(lisp方式,适应3d,WCS及UCS)
- ;;; 原作者 HLCAD.
- ;ie:
- ; (mapcar 'set '(ptx pt2 pt3)(list(getpoint"\n测点:")(getpoint"\n轴1:")(getpoint"\n轴2:")))
- ; (HL:RotPt ptx pt2 pt3 (* pi(/ 133 180.0)))
- (defun HL:RotPt (ptx pt2 pt3 ang / PT1 PTV RTN RTN1 VVV VX VY X0 Y0)
- (setq vvv (mapcar '- pt3 pt2))
- (setq pt1 (mapcar '- ptx pt2))
- (setq ptv (trans pt1 0 vvv))
- (mapcar 'set '(Vx Vy) ptv)
- (setq x0 (- (* Vx (cos ang)) (* Vy (sin ang))))
- (setq y0 (+ (* Vx (sin ang)) (* Vy (cos ang))))
- (mapcar '+ (trans (list x0 y0 (caddr ptv)) vvv 0) pt2)
- )
|