几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » 数据库ObjectDBX
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-28, 01:53 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】我的lisp程序为什么执行的不正确啊

我的lisp程序为什么执行的不正确啊
www.dimcax.com
我的lisp程序为什么执行的不正确啊
defun cbox(/ pa pb pc pd ww hh mp1 mp2 mp3 mp4)
;(setvar "cmdecho" 0)
;(setvar "blipmode" 0)
;以下 pa、ww、hh 值须由使用者输入
(setq pa (getpoint "enter left/low point:"))
(setq ww (getdist pa "\nwidth:"))
(setq hh (getdist pa "\nheight:"))
;以下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 (/ pi 2) (/ hh 2)))
(setq mp2 (polar pb (/ pi 2) (/ hh 2)))
(setq mp3 (polar pa 0 (/ ww 2)))
(setq mp4 (polar pa (/ pi 2) (/ hh 2)))
(command "circle" mp1 20)
(command "circle" mp3 30)
(prin1)
(prompt "********** << cbox >> **********")
(prin1)
)
我想在中点画圆,却在端点啊,这是为什么啊


那个帮我看看啊,是什么原因啊??
re:我的lisp程序為什麼執行的不正確啊
您忘了处理捕捉所产生的效应了!
re:re:我的lisp程序為什麼執行的不正確啊
re:我的lisp程序為什麼執行的不正確啊 :
您忘了处理捕捉所产生的效应了!
那该怎么办啊

我知道了啊,看来你是一位高手啊,我要向你学习学习啊
关掉对象捕捉就可以了啊
是不是这样啊

....
(setq mp4 (polar pa (/ pi 2) (/ hh 2)))
(setvar "osmode" 0) ; check sysvar osmode
(command "circle" mp1 20)
....

图片:

你的程序在使用前要求出捕捉的值,后把它关闭,画完后恢复原值
(defun cbox(/ pa pb pc pd ww hh mp1 mp2 mp3 mp4)
(setq os (getvar "osmode") cm (getvar "cmdecho"))
(setvar "cmdecho" 0) ;要关闭捕捉
(setvar "cmdecho" 1)
(setq pa (getpoint "输入左下角的点:"))
(setq ww (getdist pa "\n宽(x):"))
(setq hh (getdist pa "\n高(y):"))
(setq pb (polar pa 0 ww))
(setq pc (polar pb (/ pi 2) hh))
(setq pd (polar pc pi ww))
(command "pline" pa pb pc pd "c")
(setq p1 (polar pa 0 (/ ww 2.0)) p2 (polar pd 0 (/ ww 2.0)))
(command "circle" p1 "d" 20)
(command "circle" p2 "d" 30)
(prin1)
(prompt "********** << cbox >> **********")
(setvar "osmode" os)
(setvar "cmdecho" cm)
(prin1)
)
gbg

我也不太清楚。
从上述看,
不应该这样的。
请高人普及一下!
技术员

;;;;error operater for chain program
(defun with_error (msg)
(defun *error* (s)
(if old_error (setq *error* old_error))
(princ)
)
(if msg
(alert (strcat "\n这么忙还打断您,真是不好意思!"
"\n"
"\n\n"
msg
)
)
)
(if rf_sset (command "erase" rf_sset ""))
(if old_cmde (setvar "cmdecho" old_cmde))
(if old_snap (setvar "osmode" old_snap))
(if old_high (setvar "highlight" old_high))
(command "undo" "e")
(if msg (command "undo" "1"))
(exit)
)
;;;;;var_value saving program
(defun save_var ()
(setq old_cmde (getvar "cmdecho" ))
(setq old_snap (getvar "osmode" ))
(setq old_high (getvar "highlight" ))
)
主程序快结速时插入
(if old_cmde (setvar "cmdecho" old_cmde))
(if old_snap (setvar "osmode" old_snap))
(if old_high (setvar "highlight" old_high))
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 07:32 PM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多