流浪狗发表于2005-3-19 0:56:00怎么还不行呢?还是出错,CAD上的错误是
Command: yzt
请输入圆锥体底面圆中心:请输入圆锥体高:50
底面圆半径60; error: bad function: 360....
这几句都有错误:
(setq p1 (list ((+ a r) b))) (setq p2 (list ((- a r) b))) (setq p3 (list (a (sqrt (+ (* h h) (* r r)))))) (setq o '(a r))
构成一个新的坐标点的格式是 (list X Y Z),所以
(setq p1 (list ((+ a r) b)))---写成--->(setq p1(list (+ a r) b))
(defun c:yzt() (setq p (getpoint "\n请输入圆锥体底面圆中心:")) (setq h (getreal "\n请输入圆锥体高:")) (setq r (getreal "\n请输入底面圆半径:")) (setq a (car p)) (setq b (cdr p)) (setq p1 (list (+ a r) b)) (setq p2 (list (- a r) b)) (setq p3 (list a (sqrt (+ (* h h) (* r r))))) (setq o (list a (+ r 30))) (command "line" p1 p2 p3 "c") (command "circle" o r "") )
非常感谢啊!!可我照上面的运行可还是有问题,能看到俯视图 圆,但是看不到主视图 三角形,再寻高手啊!!!1
CAD命令行显示的是
Command: yzt
请输入圆锥体底面圆中心: 请输入圆锥体高:200
请输入底面圆半径:100 pline Specify start point: Command: Command: Command: c Unknown command "C". Press F1 for help.
Command: circle Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: Specify radius of circle or [Diameter] <100.0000>: 100.0000000000000 Command: YZT Unknown command "YZT". Press F1 for help.
Command: nil
其实我还是不明白楼主最终要的结果,下面这个程序是我修改过的,不知道结果是不是你想要的。
(defun c:yzt () (setq p (getpoint "\n请输入圆锥体底面圆中心:")) (setq h (getreal "\n请输入圆锥体高:")) (setq r (getreal "\n请输入底面圆半径:")) (setq a (car p)) (setq b (cadr p)) (setq p1 (list (+ a r) b)) (setq p2 (list (- a r) b)) (setq p3 (polar p (* pi 0.5) h)) (setq o (polar p (* pi 1.5) (+ r 30))) (setq os (getvar "osmode")) (setvar "osmode" 0) (command "line" p1 p2 p3 "c") (command "circle" o r ) (setvar "osmode" os) )