求助关于生成nurbs曲面问题,以后续用于有限元计算。

我目前在做的是用Rhino实现输出NURBS曲面的控制点,然后在Python中进行细化和有限元计算。目前我可以导出单NURBS曲面的控制点,也可以导出多NURBS曲面控制点(但是是分割后分别由网线建立曲面networksrf),目前考虑的是二维平面。我在学习过程中有两个问题:
1、当采用networksrf指令时绘制出的控制点网格往往不是很规整,是因为曲线比较复杂,只能这样吧?
2、因为将一个完整的图形(矩形)分割为了多个面片,这样的话后续在Python中采用面片耦合会导致不同面片之间只能保持C0连续,所以 我想知道有没有办法在保证一个NURBS面片的情况下,实现整个面片的控制点网格按照中间的分割线(黑黄色分界线)分开,但在中间线上同时具有控制点(因为我想将不同控制点形成的单元赋予物理属性,进行有限元计算)




如有说的不清楚的地方,请说明,谢谢大佬们。

你可以图示一下规则与不规则的区别吗?能提供一个截图与对应的 3dm 文件?

怎样的一个NURBS面片?中间分割线是什么线?能提供一个截图与对应的 3dm 文件?

1 个赞

您好啊,感谢您的回答!
NURBS曲面-示意.3dm (476.3 KB)

第一个问题感觉我问的有点傻······之前就是想确认是不是因为NURBS样条曲线本身的性质,所以绘制出来边界上的控制点分布不是均匀分布。

第二个问题就是下图中所示的示意图,
(1)我首先是将图1通过vectorize插件得到图2的线条,
(2)然后使用中间的分割线将其分为两个图形;
(3)图(3)是分别对这两个图形使用networksrf指令
(4)图(4)是我手动把位置调到一起的。也就是实际想要的控制点网格图。但实际上还是存在误差(毕竟是两个图形分开转化为NURBS曲面的),这就是我之前所提到的多面片了,其只能保持位移连续。
所以我想知道能否把中间的曲线作为控制点分布的线,得到类似于图(4)的结果,但是不同于我现在是由两个面拼接得到的图形,我希望只用一个曲面就可以表示(这样就不需要分为两个面片了),可以减少后续很多麻烦。

你可以使用 MakeUniform 来均匀化曲面与曲线

原生的NURBS都是4边,无论你使用哪个指令来创建曲面,请尽量维持外边缘为4边,而不是你现在的三条线作为最外边缘,这样会造成两端建立收敛点

好的,谢谢您的回答,第一个回答我明白了。
第二个问题因为是要模拟真实地形嘛(假如是),就可能会出现这种不规则的形状,不过收敛点好像也能进行计算()。。。后续也争取找个合适的模型。 佬,那有没有方法解决我最后的那个问题呢?哪怕是在一个四边形框架内用一条曲线 作为控制点分布的线,类似下图这种:

你可以搭配指令 SplitRefitSurfaceMergeSrf 改变曲面 UV 走向.

有两个方法可以均匀曲线,前面提及的 MakeUniform, 还可以使用 Rebuild