明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1263|回复: 4

autoCAD2004中程序运行于预计相差甚大,在2008中却正常为何?

[复制链接]
发表于 2011-9-24 00:13:11 | 显示全部楼层 |阅读模式
本帖最后由 cax 于 2011-9-25 17:13 编辑

AutoCAD2004中程序运行与预其相差甚大,在2008中却正常为何?更离奇的是在2004中第一次是两根对角线,第二次是单根对角线,第三次就是十字架了。。。。。。难道2004运行语句不稳定,还有个预热进化的过程!!!!!!!望论坛达人给予解答。源码如下:
-------------------------------------------------------------------------------------------------------------------------
(defun c:kpbox()
  ;以下pa、ww、hh须由用户输入
  (setq pa (getpoint"输入左下角点:"))
  (setq ww (getreal"宽度h:"))
  (setq hh (getreal"高度:"))
   ; 以下pb、pc、pd值须由程序依据pa、ww、hh运算得出
  (setq pb (polar pa 0 ww))
  (setq pc (polar pb (/ pi 2) hh))
  (setq pd (polar pc pi ww))
  ;以下依据pa、pb、pc、pd点画矩形
(command "pline" pa pb pc pd "c")
;以下mp1、mp2、mp3、mp4值由程序依据pa、ww、hh及pb、pc、pd值运算得出
(setq mp1 (polar pa 0 (/ ww 2)))
(setq mp2 (polar pb (/ pi 2)(/ hh 2)))
(setq mp3 (polar pd 0 (/ ww 2)))
(setq mp4 (polar pa (/ pi 2)(/ hh 2)))
;以下依据mp1、mp2、mp3、mp4点画出两条线
(command "line" mp1 mp3 "")
(command "line" mp2 mp4 "")
)
------------------------------------------------------------------------------------------------------------------------------

cad2004第一次运行lisp情况(令人惊讶!)

cad2004第三次运行lisp情况(预期)

cad2008情况为预期。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
原因何在,求解释!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2011-9-24 07:21:50 | 显示全部楼层
捕捉问题,第一次和第二次是捕捉端点、第三次捕捉中点或没有捕捉
 楼主| 发表于 2011-9-25 16:57:56 | 显示全部楼层
cabinsummer 发表于 2011-9-24 07:21
捕捉问题,第一次和第二次是捕捉端点、第三次捕捉中点或没有捕捉

但是源代码就是要求连接矩形四个边的中点啊
怎么可能捕捉端点呢!!!!!
[em0]
发表于 2011-9-25 17:03:32 | 显示全部楼层
增加: (setvar"osmode"0)

点评

正解。不过要加错误处理函数  发表于 2011-9-25 19:21
 楼主| 发表于 2011-9-25 19:20:15 | 显示全部楼层
本帖最后由 cax 于 2011-9-25 19:22 编辑

  1. (defun c:kpbox()
  2. (setvar "cmdecho" 0)
  3. (setq os (getvar "osmode"))
  4. (setvar "osmode" 0),
  5.   ;以下pa、ww、hh须由用户输入
  6.   (setq pa (getpoint"输入左下角点:"))
  7.   (setq ww (getreal"宽度h:"))
  8.   (setq hh (getreal"高度:"))
  9.    ; 以下pb、pc、pd值须由程序依据pa、ww、hh运算得出
  10.   (setq pb (polar pa 0 ww))
  11.   (setq pc (polar pb (/ pi 2) hh))
  12.   (setq pd (polar pc pi ww))
  13.   ;以下依据pa、pb、pc、pd点画矩形
  14. (command "pline" pa pb pc pd "c")
  15. ;以下mp1、mp2、mp3、mp4值由程序依据pa、ww、hh及pb、pc、pd值运算得出
  16. (setq mp1 (polar pa 0 (/ ww 2)))
  17. (setq mp2 (polar pb (/ pi 2)(/ hh 2)))
  18. (setq mp3 (polar pd 0 (/ ww 2)))
  19. (setq mp4 (polar pa (/ pi 2)(/ hh 2)))
  20. ;以下依据mp1、mp2、mp3、mp4点画出两条线
  21. (command "line" mp1 mp3 "")
  22. (command "line" mp2 mp4 "")
  23. (setvar "cmdecho" 1)
  24. (setvar "osmode" os)
  25. )

谢谢楼上的二位
我已经搞清楚了
原来是由于osmode变量设置的问题

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-25 05:16 , Processed in 0.180192 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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