是画龙点睛还是画蛇添足?(关于inters函数与osnap函数配合)
有本教程上给出了一个求多条直线之间交点的代码范例,其中有三句话是:(setq intpt (inters pt1 pt2 pt3 pt4) ) ;第一句,求交点,将交点坐标赋给变量intpt
(setq intpt1 (osnap intpt "int") ) ;第二句,捕捉交点,将交点坐标赋给变量intpt1
(setq pt_list (cons intpt1 pt_list)) ;第三句,将交点坐标加入交点列表pt_list
第一句已经用inters函数求得交点坐标了,为什么还要用osnap函数再求一次?加入列表的为什么是intpt1而不是intpt?经过测试(CAD2010),捕捉模式对inters函数求得的交点坐标并无影响,那么第二句是不是多余呢?
大师们说的。。全信书不如无书
我也觉得第二句多余的。。
OSNAP是有对象时才能捕捉到那个交点
inters 无对象也可以求出交点 第二句主要是判断是否有实际的交点。因为inters可能求出虚交点。 意思是空间直线投影到平面有交点,实际没交点? 存在即合理.
用着吧,管他的 哪个方便用哪个. ZZXXQQ 发表于 2015-1-5 21:14 static/image/common/back.gif
第二句主要是判断是否有实际的交点。因为inters可能求出虚交点。
谢谢指教,但是inters函数用法介绍上这么写的:(inters <点1><点2><点3><点4>),onseg:省略或非nil时返回真实交点。 布朗运动 发表于 2015-1-6 21:03 static/image/common/back.gif
谢谢指教,但是inters函数用法介绍上这么写的:(inters ),onseg:省略或非nil时返回真实交点。
从局部程序可能看不出来实际用途。可能捕捉的是直线与圆弧的交点,用inters计算时的一条线是不存在的。 就这三句来说,可以去掉第二句。
但也有别的情况,需要贴出全部代码来判断。 本帖最后由 布朗运动 于 2015-1-7 13:09 编辑
fl202 发表于 2015-1-7 09:08 http://bbs.mjtd.com/static/image/common/back.gif
就这三句来说,可以去掉第二句。
但也有别的情况,需要贴出全部代码来判断。
全部代码见上传的图片,怀疑多余的代码在第2页倒数第10行。 布朗运动 发表于 2015-1-7 13:03 static/image/common/back.gif
全部代码见上传的图片,怀疑多余的代码在第2页倒数第10行。
如你的全部代码所言,大家都懂的:
command 命令未关闭捕捉,所以它的整个程序这么做并非是画蛇添足。关于command与捕捉引起的错误,很多人都犯过。这点书本和本论坛都多次提及,请注意。
我们通常都不这么编写程序,我的做法是去掉第二句,用entmake 代替command 。
页:
[1]
2