gprspda 发表于 2011-4-24 12:29:48

请高手指教一下,我做的这个程序哪里出了错误

我想做一个可以直接画机场跑道加两侧保护区的程序,如下显示,但加载结束后运行不出,每次运行做的图都不一样,请高手指教一下,哪里有错误,万分感谢!
(defun c:pdbhq (/ p0 w l alf p1 p2 p3 p4 p5 p6 p7 p8 p9 d1 d2)
(setq p0 (getpoint"\n输入保护区的定位点:"))
(setq w (getdist p0 "\n输入跑道加保护区的宽度:"))
(setq l (getdist"\n输入跑道的长度:"))
(setq d1 (getdist p0 "\n输入跑道宽度:"))
(setq d2 (getdist"\n输入保护区宽度:"))
(setq alf (getangle p0 "\n输入跑道的旋转角:"))
(setq p1 (polar p0 (+ alf (* 0.5 pi)) ( / d1 2)))
(setq p2 (polar p0 (+ alf (* -0.5 pi)) ( / d1 2)))
(setq p5 (polar p0 (+ alf (* 0.5 pi)) (+ d2 (/ d1 2))))
(setq p6 (polar p0 (+ alf (* -0.5 pi)) (+ d2 (/ d1 2))))
(setq p3 (polar p1 alf l))
(setq p4 (polar p2 alf l))
(setq p7 (polar p5 alf l))
(setq p8 (polar p6 alf l))
(setq p9 (polar p0 alf l))
(command "linetype""s""center" "");
(command "lweight" 0.1 );
(command "line" p0 p9"");
(command "linetype""s""bylayer" "");
(command "lweight" 0.2 );
(command "line"p5 p7 p8 p6 "c");
(command "lweight"0.1);
(command "line"p1 p3 "");
(command "line"p2 p4 "");
(command "lweight""bylayer")
)

xyh 发表于 2011-4-24 13:58:04

把对象捕捉关掉后再执行,或在程序中加入(setq osm (getvar "osmode"))
(setvar "osmode" 0)
结束时再(setvar "osmode" osm)

gprspda 发表于 2011-4-25 10:52:02

回复 xyh 的帖子

很感谢你的帮助,已经正确运行,非常感谢

革天明 发表于 2011-4-26 14:45:00

学习中成长
页: [1]
查看完整版本: 请高手指教一下,我做的这个程序哪里出了错误