明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1168|回复: 5

[提问] 谁帮忙检查下代码错在什么地方???

[复制链接]
发表于 2014-9-1 18:19 | 显示全部楼层 |阅读模式
(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)
  )


发表于 2014-9-1 19:45 | 显示全部楼层
关掉捕捉试试。
发表于 2014-9-1 20:05 | 显示全部楼层
  1. (defun C:door ()
  2.   (setvar "CMDECHO" 0)
  3.   (setq oldos (getvar "OSMODE"))
  4.   (setq pt1 (getpoint))
  5.   (setq pt2 (getpoint pt1))
  6.   (setq rad (+ (/ pi 2) (angle pt1 pt2)))
  7.   (setq pt3 (polar pt1 rad 800))
  8.   (setq pt4 (polar pt2 rad 800))
  9.   (setq pt5 (polar pt1 rad 400))
  10.   (setq pt6 (polar pt2 rad 400))
  11.   (setvar "OSMODE" 0)
  12.   (command "line" pt1 pt2 "")
  13.   (setq b1 (entlast))
  14.   (command "line" pt3 pt4 "")
  15.   (setq b2 (entlast))
  16.   (command "trim" b1 b2 "" pt5 pt6 "")
  17.   (setvar "OSMODE" oldos)
  18.   (setvar "CMDECHO" 1)
  19.   (prin1)
  20. )
 楼主| 发表于 2014-9-1 20:24 | 显示全部楼层
ZZXXQQ 发表于 2014-9-1 20:05

好代码~~~~
 楼主| 发表于 2014-9-1 20:41 | 显示全部楼层
ZZXXQQ 发表于 2014-9-1 20:05

问一下这个 判断为什么判断不出来呢????
发表于 2014-9-1 20:47 | 显示全部楼层
a4587332 发表于 2014-9-1 20:41
问一下这个 判断为什么判断不出来呢????

实数的比较有误差,要用equal
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-14 23:16 , Processed in 0.413765 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表