找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: eachy

[原创]:选择集曲线断开程序详解

[复制链接]

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-4-4 20:19:27 | 显示全部楼层
最初由 eachy 发布
既然求得的是交点还有必要再判断在曲线上吗?


我也不想和你争,你认为对就自己看着办吧.
不过倒过来你就理解了:line延伸到sline,不一定能求出交点.

求的了很多交点,还是逃不过判断.除非一条条求.



circle一定要硬entmake的话,别忘了(entget e '("*"))

circle,如果用误差打断,生成的arc实体名不变。误差打断方向一定要对.

arc是个怪东西!



  1.   [FONT=courier new]
  2. ;;;   通过一点来打断 圆和 椭圆 闭合spline
  3. ;;;-----------------------------------------------------
  4. (defun break-curve-closed(curve pt)
  5.   (setq endpar(vlax-curve-getendparam curve)
  6.          par1(vlax-curve-getparamatpoint curve(vlax-curve-getclosestpointto curve pt))
  7.          par2(+ par1 1e-4)
  8.          par2(if(> par2 endpar)(- par2 endpar)par2)
  9.          pt1 (vlax-curve-getpointatparam curve par2)
  10.    )
  11.   (vl-cmdf ".break"(list curve pt) pt1)
  12. )
  13.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-4-4 20:55:28 | 显示全部楼层
最初由 eachy 发布
[B]
游客,如果您要查看本帖隐藏内容请回复

这个逻辑好象不大现实,不知道你写出来没有,反而搞复杂了

“pt 表中不存在此交点”不就要从头倒腾一遍.
(N*(n-1)*(n-2)...) +判断点

那还不如:
 第一个,求所有交点
 第二个,求所有交点......
n的  n次

最好的:
(while n
    (while n+1
       每次求了交点,先别合并:
       (En (p1 p2 p3..))
      (En+1( p1 p2 p3 ))
      每次生成两个,或没有.
       ....
       (En(p5 p6 p7 ....))
       (En+5(p5 p6 p7...))
))

根据索引En合并.
至于合并,各人有个人的方法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-4 21:23:25 | 显示全部楼层
"line延伸到sline,不一定能求出交点"
麻烦aeo解释一下,我有点不懂,首先求交点,现在好像讨论的是求实际交点,为什么要延伸,二,为什么说不一定能求出交点?你遇到的情况是怎样的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2004-4-5 08:01:43 | 显示全部楼层
最初由 aeo 发布
[

讲的好,希望更多的人参与进来。总是 提问-〉回答,申请-〉程序 这两种模式觉得新意越来越小了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-4-5 21:27:02 | 显示全部楼层
最初由 陌生人 发布
[B]"line延伸到sline,不一定能求出交点"
麻烦aeo解释一下,我有点不懂,首先求交点,现在好像讨论的是求实际交点,为什么要延伸,二,为什么说不一定能求出交点?你遇到的情况是怎样的? [/B]


我的意思是,先画一spline线,再画一line线,extend这line到spline
照理应该有交点(你不是延伸过去了吗!),但实际上不一定可以用
vl方法求出交点来.
也有时候明明相交的,不能用trim,真没办法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-14 19:48:58 | 显示全部楼层
没错,是这样的.有时求出的交点确实不在曲线上,有很小的误差.

不知这个程序具体有何用处,不过作为一个函数确实非常关键,例如曲线布尔.

个人观点:
        用VL确实比纯LISP方便了许多,但是也有不足.比如求交点用INTERSECTWITH就只能有了实体才行,如果在多条曲线的布尔中用,每一步都必须生成临时实体.所以建议对PLINE\CIRCLE等LISP可以处理的可以采用表的形式.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2006-11-23 09:07:52 | 显示全部楼层
斑竹碰出智慧的火花,是菜鸟学习提高的最好机会。致以敬意。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-12-31 13:26:39 | 显示全部楼层
SPL确实有时候求不到交点, 有时候连OFFSET也不行,
同意AEO的观点,有时候ARC确实是个怪东西,在对其使用ACTIVEX方法的时候,会出现莫名的错误。如totalange,StartAngle。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 188个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 1261个

财富等级: 财源广进

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 11:02 , Processed in 0.447943 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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