找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5515|回复: 9

[LISP程序]:连续两个“command”命令引出的问题

[复制链接]
发表于 2006-3-31 21:21:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
如下程序:
(setq p0 '(100 100))
(setq p1 '(100 200))
(setq p2 '(100 0))
(command "circle" p0 100)
(command "line" p1 p2 "")
运行后,却只有圆,直线画不出来。命令行上提示为:
已在 (100.0000, 100.0000, 0.0000) 创建零长度直线。
请教这是为什么?
而如果把两个“command”命令前后顺序颠倒过来,如下:
(setq p0 '(100 100))
(setq p1 '(100 200))
(setq p2 '(100 0))
(command "line" p1 p2 "")
(command "circle" p0 100)
运行后,却发现圆的中心点不是p0,而是直线的起点p1?
这是怎么回事?
到底问题出在哪呀?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-3-31 21:48:24 | 显示全部楼层
这个问题曾经困惑我很久,其实是捕捉问题。
(setq old_osmode (getvar "OSMODE"))
  (setvar "OSMODE" 0)
(setq p0 '(100 100))
(setq p1 '(100 200))
(setq p2 '(100 0))
(command "line" p1 p2 "")
(command "circle" p0 100)
(setvar "OSMODE" old_osmode )
初学者经常会碰到类似问题,共同进步。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-31 22:01:06 | 显示全部楼层
哈哈 我也遇到过 后来在我的程序中一般开始就像2楼的那样把osmode 保存清零 这是个应有的好习惯
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-31 23:56:11 | 显示全部楼层
谢谢啦!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-4 16:22:21 | 显示全部楼层
这种方法也能达到目的,仅供参考
(command "-osnap" "off")
(setq p0 '(100 100))
(setq p1 '(100 200))
(setq p2 '(100 0))
(command "line" p1 p2 "")
(command "circle" p0 100)
(command "-osnap" "int")
(command "-osnap" "end")
此后可以把想要的捕捉模式逐个添加,各捕捉模式如下
END(端点)
CEN(圆心)
TAN(切点)
MID(中点)
NOD(节点)
NEA(最近点)
INT(交点)
QUA(象限点)
PAR(平行)
EXT(延伸)
INS(插入点)
APP(外观交点)
PER(垂足)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-5 09:46:16 | 显示全部楼层
我终于知道为什么我在使用某一个lisp程序中 如果出错退出 我得捕捉被清零了 呵呵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-5 10:55:51 | 显示全部楼层
最初由 xiaoyue663 发布
[B]这种方法也能达到目的,仅供参考
(command "-osnap" "off")
(setq p0 '(100 100))
(setq p1 '(100 200))
(setq p2 '(100 0))
(command "line" p1 p2 "")
(command "circle" p0 100)
(command "-osnap" "int")
... [/B]



这种方式倒不如
(setvar "osmode" 0)和(setvar "osmode" x)其中X为相应的值
来得方便
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-5 15:56:58 | 显示全部楼层
是啊,在编程的时候要严谨些~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-6 23:05:03 | 显示全部楼层
获益匪浅
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-6 23:26:56 | 显示全部楼层
entmake可以更直接
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-29 06:45 , Processed in 0.556077 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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