Rhino(犀牛)中国技术支持与推广中心

标题: 难道又是RHINO的BUG,求真相!两曲面相交,相交线却是断的 [打印本页]

作者: hipeng    时间: 2013-12-9 09:37
标题: 难道又是RHINO的BUG,求真相!两曲面相交,相交线却是断的
本帖最后由 hipeng 于 2013-12-9 09:40 编辑

两曲面完全相交,相交线却是断的
难道又是RHINO的BUG,求真相!
附上图和源文件
犀牛问题多多啊.附上源文件.断交线.rar


很讨厌RHINO这种超出常规常识的错误,老是让人感觉莫名奇妙,让人觉得是不是能自己能力太差了,好挫败感.

QQ截图20131209093155.png (122.69 KB, 下载次数: 25)

QQ截图20131209093155.png

QQ截图20131209093554.png (77.56 KB, 下载次数: 29)

QQ截图20131209093554.png

断交线.rar

35.06 KB, 下载次数: 181


作者: Jessesn    时间: 2013-12-9 09:52
LZ,你很幸运,又碰到这种小Bug了,谢谢你的反馈。

解决办法,


作者: hipeng    时间: 2013-12-9 09:58
Jessesn 发表于 2013-12-9 09:52
LZ,你很幸运,又碰到这种小Bug了,谢谢你的反馈。

解决办法,

为什么受伤的都是我,很讨厌这种问题,老是怀疑自己是不是能力问题...
作者: Jessesn    时间: 2013-12-9 10:03
hipeng 发表于 2013-12-9 09:58
为什么受伤的都是我,很讨厌这种问题,老是怀疑自己是不是能力问题...

深表同情,且深感抱歉!
作者: hipeng    时间: 2013-12-9 10:04
MakeUniform 指令可以使曲线或曲面的节点矢量均匀化,曲线或曲面的形状会有一些改变,但控制点不会被移动。
曲线工具 > 均匀化

大大们都是英文极好,每次告诉我这些命令,我都要去菜单里找半天,看这个命令在哪里..
作者: hipeng    时间: 2013-12-9 10:20
Jessesn 发表于 2013-12-9 10:03
深表同情,且深感抱歉!

MakeUniform 指令可以使曲线或曲面的节点矢量均匀化,曲线或曲面的形状会有一些改变,但控制点不会被移动。

为什么会出现这个命令,这个命令平时用来干嘛?看上面文字,还是感觉抽象.
作者: hipeng    时间: 2013-12-9 10:20
本帖最后由 hipeng 于 2013-12-9 10:22 编辑
Jessesn 发表于 2013-12-9 10:03
深表同情,且深感抱歉!

MakeUniform 指令可以使曲线或曲面的节点矢量均匀化,曲线或曲面的形状会有一些改变,但控制点不会被移动。

为什么会出现这个命令,这个命令平时用来干嘛?看上面文字,还是感觉抽象.


这和重建曲面有什么差别?底层的东西太深奥了.
作者: hipeng    时间: 2013-12-9 10:36
Jessesn 发表于 2013-12-9 09:52
LZ,你很幸运,又碰到这种小Bug了,谢谢你的反馈。

解决办法,

MakeUniform 和 rebuil重建有什么区别?
作者: Jessesn    时间: 2013-12-9 10:49
hipeng 发表于 2013-12-9 10:04
MakeUniform 指令可以使曲线或曲面的节点矢量均匀化,曲线或曲面的形状会有一些改变,但控制点不会被移动。 ...

关于你的问题
1. MakeUniform 的工具列在下面


2. MakeUniform 主要是针对非均匀的曲面与曲线,将其转换为均匀的曲面与曲线(最主要的是曲面与曲线的参数统一,例如节点参数值的均匀)

3. Rebuild 后的曲面都会是  Uniform 的曲面,是两个不同的重整曲面的指令,相同的目的,不同的功能与控制选项。

提示:如果你有问题,烦请都尽量放在一个回帖中,这样方便有相关问题的人来阅读与参与。

作者: 深蓝Ansen    时间: 2013-12-9 10:59
本帖最后由 深蓝Ansen 于 2013-12-9 11:12 编辑

这个例子中求交线出错是因为曲面相交的位置处在临界点位置(通常与系统公差有关系),如果发现是bug,就是想办法先将这个bug绕开,剩下的等工程师去修复它,一样可以得到正确的结果。 别耽误正事,也别挫败的吃不下去饭。

我来还原下你当时的过程,因为前几天我有在一个帖子中解答过这个问题。

从这一步开始,对吧?



视觉上看起来边缘相交,但其实呢?交线是断的,这就是临界点位置算错的问题,如果这时候调大系统公差,再求交线,也能解决问题,包括你上传的文件也是这样,但是不推荐这样做,以前说过的。





解决的办法就是延长边缘,让其绕开这个临界位置。

延长曲面边缘工具中 有可切换的选项  型式=?  
1.型式=直线  (这是你选择的方式,如果),注意看下图标记出来的位置。







2.型式=平滑





通过上面的对比就能看出区别,第二种方式可以求得完整的闭合交线。

先看看两种型式的区别:







直线的方式延伸边缘会在原始边缘的位置产生一排Kink点(锐角点),很多时候当我们所要计算的交线正好和锐角点位置重叠,就会有算错的可能,应该尽量避开它。






作者: hipeng    时间: 2013-12-9 11:14
本帖最后由 hipeng 于 2013-12-9 12:03 编辑
Jessesn 发表于 2013-12-9 10:49
关于你的问题
1. MakeUniform 的工具列在下面

"非均匀的曲面与曲线" 与 "均匀的曲面与曲线"

这个均匀和不均匀如何理解呢,能否图解一下.


1.这是makeuniform前(图片顺序已经更正)


2.这是makeuniform后(图片顺序已经更正)




U方向由 "周期" 变成无,"接缝边缘"变成"四个边界边缘"

看不出从"非均匀"到"均匀"啊,这些底层东西真摸不清楚..

什么叫"非均匀的曲面与曲线" 与 "均匀的曲面与曲线"?从文件属性里怎么看啊?


作者: hipeng    时间: 2013-12-9 11:22
深蓝Ansen 发表于 2013-12-9 10:59
这个例子中求交线出错是因为曲面相交的位置处在临界点位置(通常与系统公差有关系),如果发现是bug,就是想 ...

不错,我想也是那问题,但没有想到改变延伸模式.

这个帖子通俗易懂,老少皆宜,妇儒皆知.赞
作者: Jessesn    时间: 2013-12-9 11:34
hipeng 发表于 2013-12-9 11:14
"非均匀的曲面与曲线" 与 "均匀的曲面与曲线"

这个均匀和不均匀如何理解呢,能否图解一下.

首先要说明的是,你这两张图肯定是放错了循序,第一张才是 MakeUniform 之后的。
如果你像从属性中识别,比较简单的方式是看UV方向上节点参数值区间值,Uniform 的参数区间值是等比例,且通常都是整数。


第二个方法,是重曲线上提取曲线,可以在属性中提示,如下图



曲面与曲线的均匀是指其节点参数值(节点值排布列表)的均匀与否,在这里 http://www.rhino3d.com/cn/nurbs 我们有相信的介绍。




作者: hipeng    时间: 2013-12-9 11:37
深蓝Ansen 发表于 2013-12-9 10:59
这个例子中求交线出错是因为曲面相交的位置处在临界点位置(通常与系统公差有关系),如果发现是bug,就是想 ...

为什么曲面延伸不了?
一定要rebuild或者Makeuniform才能延伸?

为什么延伸不了.rar

11.41 KB, 下载次数: 22


作者: hipeng    时间: 2013-12-9 12:09
Jessesn 发表于 2013-12-9 11:34
首先要说明的是,你这两张图肯定是放错了循序,第一张才是 MakeUniform 之后的。
如果你像从属性中识别, ...

这些都是经验啊,我看这么多视频教程,都是画造型,
这些底层的东西,能看到的东西真的很少.几乎没有.
平时遇到问题,只能换一个方法饶过去,但总是不知道原因.也长进不了多少知识.只有在这里才能出探过究竟.
作者: 深蓝Ansen    时间: 2013-12-9 13:26
hipeng 发表于 2013-12-9 12:09
这些都是经验啊,我看这么多视频教程,都是画造型,
这些底层的东西,能看到的东西真的很少.几乎没有.
平时 ...

所以说  凡事不要想当然,知其所以然很重要,多多讨论,加油!
作者: hipeng    时间: 2013-12-9 13:54
本帖最后由 hipeng 于 2013-12-9 13:55 编辑
Jessesn 发表于 2013-12-9 11:34
首先要说明的是,你这两张图肯定是放错了循序,第一张才是 MakeUniform 之后的。
如果你像从属性中识别, ...
看下面这些很烦哦,看不懂,各位大大们估计也是吧
节点( Knot )
节点 ( Knot ) 是一个 ( 阶数 + N - 1 ) 的数字列表,N 代表控制点数目。有时候这个列表上的数字也称为节点矢量 ( Knot Vector ),这里的矢量并不是指 3D 方向。

节点列表上的数字必须符合几个条件,确定条件是否符合的标准方式是在列表上往下时,数字必需维持不变或变大,而且数字重复的次数不可以比阶数大。例如,阶数 3 有 15 个控制点的 NURBS 曲线,列表数字为 0,0,0,1,2,2,2,3,7,7,9,9,9 是一个符合条件的节点列表。列表数字为 0,0,0,1,2,2,2,2,7,7,9,9,9 则不符合,因为此列表中有四个 2,而四比阶数大 ( 阶数为 3 )。

节点值重复的次数称为节点的重数 ( Multiplicity ),在上面例子中符合条件的节点列表中,节点值 0 的重数值为三;节点值 1 的重数值为一;节点值 2 的重数为三;节点值 7 的重数值为二;节点值 9 的重数值为三。如果节点值重复的次数和阶数一样,该节点值称为全复节点 ( Full-Multiplicity Knot )。在上面的例子中,节点值 0、2、9 有完整的重数,只出现一次的节点值称为单纯节点 ( Simple Knot ),节点值 1 和 3 为单纯节点。

如果在节点列表中是以全复节点开始,接下来是单纯节点,再以全复节点结束,而且节点值为等差,称为均匀 ( Uniform )。例如,如果阶数为 3 有 7 个控制点的 NURBS 曲线,其节点值为 0,0,0,1,2,3,4,4,4,那么该曲线有均匀的节点。如果节点值是 0,0,0,1,2,5,6,6,6 不是均匀的,称为非均匀 ( Non-Uniform )。在 NURBS 的 NU 代表“非均匀”,意味着在一条 NURBS 曲线中节点可以是非均匀的。
作者: hipeng    时间: 2013-12-9 14:03
hipeng 发表于 2013-12-9 11:37
为什么曲面延伸不了?
一定要rebuild或者Makeuniform才能延伸?

能不能解决一下14楼问题
作者: Jessesn    时间: 2013-12-9 14:21
本帖最后由 Jessesn 于 2013-12-9 14:27 编辑
hipeng 发表于 2013-12-9 14:03
能不能解决一下14楼问题

你的附件中是一个多重曲面,请先砸开,然后就可以延伸了。
因为 ExtendSrf 只能针对单一曲面

作者: Jessesn    时间: 2013-12-9 14:22
hipeng 发表于 2013-12-9 13:54
看下面这些很烦哦,看不懂,各位大大们估计也是吧
节点( Knot )
节点 ( Knot ) 是一个 ( 阶数 + N - 1 ) 的 ...

这里的文字内容,如果你不能看懂,我不建议你深究了。
作者: hipeng    时间: 2013-12-9 14:34
Jessesn 发表于 2013-12-9 14:21
你的附件中是一个多重曲面,请先砸开,然后就可以延伸了。
因为 ExtendSrf 只能针对单一曲面

发现_MakeUniform可以把多重曲面变成一个,挺神奇的!
作者: Jessesn    时间: 2013-12-9 14:37
hipeng 发表于 2013-12-9 14:34
发现_MakeUniform可以把多重曲面变成一个,挺神奇的!

MakeUniform 也只可以针对单一曲面或曲线,不能直接对 PolySurface 作业。
作者: clark    时间: 2013-12-16 21:02
这个帖子很多值得学习的基础知识,看完感觉很来劲
作者: meteor_li    时间: 2013-12-24 15:44
clark 发表于 2013-12-16 21:02
这个帖子很多值得学习的基础知识,看完感觉很来劲

同感,很多“冷命令”不曾用过。。。。




欢迎光临 Rhino(犀牛)中国技术支持与推广中心 (http://bbs.rhino3d.asia/) Powered by Discuz! X3.2