明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3266|回复: 13

[已解答] 是画龙点睛还是画蛇添足?(关于inters函数与osnap函数配合)

[复制链接]
发表于 2015-1-5 19:42:33 | 显示全部楼层 |阅读模式
有本教程上给出了一个求多条直线之间交点的代码范例,其中有三句话是:
(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函数求得的交点坐标并无影响,那么第二句是不是多余呢?

发表于 2015-1-5 20:43:21 | 显示全部楼层
大师们说的。。全信书不如无书
我也觉得第二句多余的。。
OSNAP  是有对象时才能捕捉到那个交点
inters 无对象也可以求出交点
发表于 2015-1-5 21:14:42 | 显示全部楼层
第二句主要是判断是否有实际的交点。因为inters可能求出虚交点。
发表于 2015-1-6 10:08:37 | 显示全部楼层
意思是空间直线投影到平面有交点,实际没交点?
发表于 2015-1-6 10:33:54 | 显示全部楼层
存在即合理.
用着吧,管他的 哪个方便用哪个.
 楼主| 发表于 2015-1-6 21:03:14 | 显示全部楼层
ZZXXQQ 发表于 2015-1-5 21:14
第二句主要是判断是否有实际的交点。因为inters可能求出虚交点。

谢谢指教,但是inters函数用法介绍上这么写的:(inters <点1><点2><点3><点4>[onseg]),onseg:省略或非nil时返回真实交点。
发表于 2015-1-7 08:49:40 | 显示全部楼层
布朗运动 发表于 2015-1-6 21:03
谢谢指教,但是inters函数用法介绍上这么写的:(inters [onseg]),onseg:省略或非nil时返回真实交点。

从局部程序可能看不出来实际用途。可能捕捉的是直线与圆弧的交点,用inters计算时的一条线是不存在的。
发表于 2015-1-7 09:08:40 | 显示全部楼层
就这三句来说,可以去掉第二句。

但也有别的情况,需要贴出全部代码来判断。
 楼主| 发表于 2015-1-7 13:03:52 | 显示全部楼层
本帖最后由 布朗运动 于 2015-1-7 13:09 编辑
fl202 发表于 2015-1-7 09:08
就这三句来说,可以去掉第二句。

但也有别的情况,需要贴出全部代码来判断。


全部代码见上传的图片,怀疑多余的代码在第2页倒数第10行。

本帖子中包含更多资源

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

x
发表于 2015-1-7 15:07:18 | 显示全部楼层
布朗运动 发表于 2015-1-7 13:03
全部代码见上传的图片,怀疑多余的代码在第2页倒数第10行。

如你的全部代码所言,大家都懂的:
command 命令未关闭捕捉,所以它的整个程序这么做并非是画蛇添足。关于command与捕捉引起的错误,很多人都犯过。这点书本和本论坛都多次提及,请注意。

我们通常都不这么编写程序,我的做法是去掉第二句,用entmake 代替command 。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-23 13:22 , Processed in 0.173447 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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