谁帮忙检查下代码错在什么地方???
(defun C:door ()(setq pt1 (getpoint))
(setq pt2 (getcorner pt1))
(setq rad (angle pt1 pt2))
(if (= rad 1.5708)
(
(setq pt3 (polar pt1 pi 800))
(setq pt4 (polar pt2 pi 800))
(setq pt5 (polar pt1 pi 400))
(setq pt6 (polar pt2 pi 400))
(command "line" pt1 pt2 "")
(setq b1 (entlast))
(command "line" pt3 pt4 "")
(setq b2 (entlast))
(command "trim" b1 b2 "" pt5 pt6 "")
)
)
(if (= rad 4.71239)
(
(setq pt3 (polar pt1 pi 800))
(setq pt4 (polar pt2 pi 800))
(setq pt5 (polar pt1 pi 400))
(setq pt6 (polar pt2 pi 400))
(command "line" pt1 pt2)
(setq b1 (entlast))
(command "line" pt3 pt4)
(setq b2 (entlast))
(command "trim" b1 b2 "" pt5 pt6 "")
)
)
(if (= rad 0)
(
(setq pt3 (polar pt1 (* pi 0.5) 800))
(setq pt4 (polar pt2 (* pi 0.5) 800))
(setq pt5 (polar pt1 (* pi 0.5) 400))
(setq pt6 (polar pt2 (* pi 0.5) 400))
(command "line" pt1 pt2)
(setq b1 (entlast))
(command "line" pt3 pt4)
(setq b2 (entlast))
(command "trim" b1 b2 "" pt5 pt6 "")
)
)
(if (= rad 3.14159)
(
(setq pt3 (polar pt1 (* pi 0.5) 800))
(setq pt4 (polar pt2 (* pi 0.5) 800))
(setq pt5 (polar pt1 (* pi 0.5) 400))
(setq pt6 (polar pt2 (* pi 0.5) 400))
(command "line" pt1 pt2)
(setq b1 (entlast))
(command "line" pt3 pt4)
(setq b2 (entlast))
(command b1 b2 "" pt5 pt6 "")
)
)
(prin1)
)
关掉捕捉试试。 (defun C:door ()
(setvar "CMDECHO" 0)
(setq oldos (getvar "OSMODE"))
(setq pt1 (getpoint))
(setq pt2 (getpoint pt1))
(setq rad (+ (/ pi 2) (angle pt1 pt2)))
(setq pt3 (polar pt1 rad 800))
(setq pt4 (polar pt2 rad 800))
(setq pt5 (polar pt1 rad 400))
(setq pt6 (polar pt2 rad 400))
(setvar "OSMODE" 0)
(command "line" pt1 pt2 "")
(setq b1 (entlast))
(command "line" pt3 pt4 "")
(setq b2 (entlast))
(command "trim" b1 b2 "" pt5 pt6 "")
(setvar "OSMODE" oldos)
(setvar "CMDECHO" 1)
(prin1)
)
ZZXXQQ 发表于 2014-9-1 20:05 static/image/common/back.gif
好代码~~~~ ZZXXQQ 发表于 2014-9-1 20:05 static/image/common/back.gif
问一下这个 判断为什么判断不出来呢???? a4587332 发表于 2014-9-1 20:41 static/image/common/back.gif
问一下这个 判断为什么判断不出来呢????
实数的比较有误差,要用equal
		页: 
[1]