a4587332 发表于 2014-9-1 18:19:00

谁帮忙检查下代码错在什么地方???

(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)
)


andymong 发表于 2014-9-1 19:45:15

关掉捕捉试试。

ZZXXQQ 发表于 2014-9-1 20:05:45

(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)
)

a4587332 发表于 2014-9-1 20:24:46

ZZXXQQ 发表于 2014-9-1 20:05 static/image/common/back.gif


好代码~~~~

a4587332 发表于 2014-9-1 20:41:00

ZZXXQQ 发表于 2014-9-1 20:05 static/image/common/back.gif


问一下这个 判断为什么判断不出来呢????

ZZXXQQ 发表于 2014-9-1 20:47:09

a4587332 发表于 2014-9-1 20:41 static/image/common/back.gif
问一下这个 判断为什么判断不出来呢????

实数的比较有误差,要用equal
页: [1]
查看完整版本: 谁帮忙检查下代码错在什么地方???