【autolisp】autolisp教程请高手用AutoLISP编写4个小程序:函数名为tuxing,要求...

发布时间:2021-03-31 18:47:43

autolisp教程 请高手用AutoLISP编写4个小程序:函数名为tuxing,要求执行此函数时使用键盘输入两个同心圆的圆心坐标和每个圆的半径值,然后:1.自动绘出这两个圆和水平,垂直的两条中心线2.自动绘出这连个圆和与圆同心的正方形请根据以上两个条件编写两个程序函数名为tuxing,要求执行此函数时使用键盘输入一个圆的圆心坐标和半径值,然后:1.自动绘出该圆,和与该圆在左右侧相切且直径相同的另外两个圆2.自动绘出该圆和与该圆同心的正方形请根据以上两个条件编写两个程序可以将程序拆分成4个吗?因为有4个

网友回答

【答案】 (一)
  (defun c:tuxing1 ()
  (setq Rd (getdist \n R=:))
  (setq Rx (getdist \n r=:))
  (setq p0 (getPoint \n Enter Center of Circle))
  (setq p1 (list(car p0) (+ (+ (cadr p0) Rd) 5)))
  (setq p2 (list(- (- (car p0) Rd) 5) (cadr p0)))
  (setq p3 (list(car p0) (- (- (cadr p0) Rd) 5)))
  (setq p4 (list(+ (+ (car p0) Rd) 5) (cadr p0)))
  (Command line p1 p3)
  (Command line p2 p4)
  (Command circle p0 Rd)
  (Command circle p0 RX)
  )
  (二)
  (defun c:tuxing2 ()
  (setq Rd (getdist \n R=:))
  (setq Rx (getdist \n r=:))
  (setq p0 (getPoint \n Enter Center of Circle))
  (setq a1 (list(+ (car p0) (* (cos (/ pi 4)) Rx)) (+ (cadr p0) (* (cos (/ pi 4)) Rx))))
  (setq a2 (list(- (car p0) (* (cos (/ pi 4)) Rx)) (cadr a1)))
  (setq a3 (list(car a2) (- (cadr p0) (* (cos (/ pi 4)) Rx))))
  (setq a4 (list(car a1) (cadr a3)))
  (setq b1 (list(+ (car p0) (* (cos (/ pi 4)) Rd)) (+ (cadr p0) (* (cos (/ pi 4)) Rd))))
  (setq b2 (list(- (car p0) (* (cos (/ pi 4)) Rd)) (cadr b1)))
  (setq b3 (list(car b2) (- (cadr p0) (* (cos (/ pi 4)) Rd))))
  (setq b4 (list(car b1) (cadr b3)))
  (Command line a1 a2 a3 a4 a1)
  (Command line b1 b2 b3 b4 b1)
  (Command circle p0 Rd)
  (Command circle p0 RX)
  )
  (三)
  (defun c:tuxing3 ()
  (setq r (getdist \n r=:))
  (setq p0 (getPoint \n Enter Center of Circle))
  (setq p1 (list(- (car p0) (* r 2)) (cadr p0)))
  setq p2 (list(+ (car p0) (* r 2)) (cadr p0)))
  ((Command circle p0 r)
  (Command circle p1 r)
  (Command circle p2 r)
  )
  (四)
  (defun c:tuxing4 ()
  (setq r (getdist \n r=:))
  (setq p0 (getPoint \n Enter Center of Circle))
  (setq a1 (list(+ (car p0) (* (cos (/ pi 4)) r)) (+ (cadr p0) (* (cos (/ pi 4)) r))))
  (setq a2 (list(- (car p0) (* (cos (/ pi 4)) r)) (cadr a1)))
  (setq a3 (list(car a2) (- (cadr p0) (* (cos (/ pi 4)) r))))
  (setq a4 (list(car a1) (cadr a3)))
  (Command line a1 a2 a3 a4 a1)
  (Command circle p0 r)
  )
  可以了,你试试吧!
以上问题属网友观点,不代表本站立场,仅供参考!