
如图输入 a、 b、 c、 d、 r 五个值,用AutoLISP编程自动绘制出该图(实线部分)。
程序如下所示:
(defun c:abcdr( )
(setq p0 (getpoint "\n base point:"))
(setq a (getreal "\n dimension a: "))
(setq b (getreal "\n dimension b: "))
(setq c (getreal "\n dimension c: "))
(setq d (getreal "\n dimension d: "))
(setq r (getreal "\n dimension r: "))
(setq x0 (car p0 ))
(setq y0 (cadr p0 ))
(setq x1 (+ x0 a))
(setq y1 y0)
(setq x2 x1)
(setq y2 (- y1 d))
(setq x3(+ x0 b r))
(setq y3 y2)
(setq x4 x3)
(setq y4 (- y3 r))
(setq x40 (- x3 r))
(setq y40 y4)
(setq x5 x40)
(setq y5 (- y0 c))
(setq x6 x0)
(setq y6 y5)
(setq p1(list x1 y1))
(setq p2(list x2 y2))
(setq p3(list x3 y3))
(setq p4(list x4 y4))
(setq p40(list x40 y40))
(setq p5(list x5 y5))
(setq p6(list x6 y6))
(command "line" p0 p1 p2 p3 "")
(command "line" p0 p6 p5 p40 "")
(command "arc" "c" p4 p3 p40)
)
出自:其他 >> 青岛理工大学机械CAD