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

标题: 【已解决】如何对实体网格化以便于导入其他软件? [打印本页]

作者: yesmely    时间: 2013-6-30 14:07
标题: 【已解决】如何对实体网格化以便于导入其他软件?
本帖最后由 yesmely 于 2013-7-2 22:39 编辑

如题,把一个波浪形曲面向上拉伸后形成了一个“实体”,现欲把这个实体细分成很多个小方块,以获得每个小方块的八个角点坐标,请问如何处理?
由于rhino冲不存在真正的实体,所以根本的目的也并非分割成小方块,而是只要得到各个小方块的坐标。

作者: yesmely    时间: 2013-6-30 14:11
忘了补图:


作者: Jessesn    时间: 2013-7-1 23:01
yesmely 发表于 2013-6-30 14:11
忘了补图:



作者: yesmely    时间: 2013-7-2 09:01
j大,这样操作只得到8个角点坐标,并没有把这个brep当做实体一样细分为很多小方块并得到每个小块的8个角点坐标。示意图如下:

还是采用一楼的图:红色为面网格线,蓝色为被遮挡的边线,黑色为内部网格线(简单画了几条,其实是三个方向相互正交的线)。由内部的黑色网格线把这个brep分成了很多个小块。
思路:通过面网格划分得到面网格线,由于会有多个面,是否要选择一个基准面再设定一个细分方向?最好有个brep细分的插件,能把brep像网格一样操作。

作者: Jessesn    时间: 2013-7-2 09:10
yesmely 发表于 2013-7-2 09:01
j大,这样操作只得到8个角点坐标,并没有把这个brep当做实体一样细分为很多小方块并得到每个小块的8个角点坐 ...



作者: yesmely    时间: 2013-7-2 16:09
Jessesn 发表于 2013-7-2 09:10

j大,这样出来的仍然是表面上的点,能否得到内部的点坐标?
作者: Jessesn    时间: 2013-7-2 16:20
yesmely 发表于 2013-7-2 16:09
j大,这样出来的仍然是表面上的点,能否得到内部的点坐标?

这些点和曲面之间的间隙为 0,
你所说内部点是什么意思?

作者: yesmely    时间: 2013-7-2 16:38
Jessesn 发表于 2013-7-2 16:20
这些点和曲面之间的间隙为 0,
你所说内部点是什么意思?

这里一个brep是真正的实体(假设内部密实的)。举例:一个边长1米的立方体蛋糕,把这个蛋糕切成很多小方块,假设沿着长宽高各切9刀,那么这个大蛋糕块就被切成了10x10x10=1000个小块,然后把切成小块像搭积木一样重新拼成这个大蛋糕,那么每个小方块就有8个顶点坐标,现在想求出来每个小方块的8个顶点坐标该如何操作?
所以,根本目的就是把任意的brep或者实体通过三个方向的切割,得到切割后的每个小块的顶点坐标。
作者: yesmely    时间: 2013-7-2 16:40
本帖最后由 yesmely 于 2013-7-2 16:55 编辑

整体过程其实不用管是否是实体或者brep,只要通过算法得到虚拟的“蛋糕”内部的方块点即可。
现有想法:需要在这个实体上指定第一个基准面,而后用基准面沿着一定的路径偏移去切割这个实体,从而得到第一步的一系列切割平面或曲面。而后再指定第二个基准面或在实体上绘制一个切割线拉伸成面作为第二个基准面,再用此基准面沿着一定路径去切割这个实体。经过两次切割,就得到了小块的六面体(有曲面),以及一系列交点坐标。
感觉说的有点乱,另外如何把这些交点坐标与其内部的六面体对应起来也没有头绪。
作者: yesmely    时间: 2013-7-2 22:40
这样操作得不偿失,牵扯到有限元网格划分的算法,用其他fea软件处理了。感谢J大的热心帮助!
作者: Jessesn    时间: 2013-7-4 09:23
本帖最后由 Jessesn 于 2013-7-4 09:40 编辑

了解你要的东西了,如果是简单的曲面挤出实体,倒可以比较简单来解决


如果是异性,处理起来会稍稍麻烦一些,楼主是否能分享下你后面的做法?
作者: danny    时间: 2013-7-4 17:30
本帖最后由 danny 于 2013-7-5 10:42 编辑

如没理解错,应是有限元网格划分。

Rhino里,只要含有Surface 便可直接启动ALOGR并导入模型作有限元网格划分。
导出节点文件,GH可重抄模型及相关数据并导出特定格式的参数化文本。
在ALOGR、SAP2000、ABAQUS等有限元之间自由转换。

作者: yesmely    时间: 2013-8-30 12:55
本帖最后由 yesmely 于 2013-9-2 16:03 编辑
Jessesn 发表于 2013-7-4 09:23
了解你要的东西了,如果是简单的曲面挤出实体,倒可以比较简单来解决

正如danny所说,得用algor导一下,其实用其他有限元软件划分应该也可以,不知道那个rhino的插件scan&solve怎么样,看视频竟然有涡轮片的受力分析。大体过程如下:
1、rhino中建立模型;
2、模型导入Algor进行网格划分;
3、Algor中获得两个关键数据表:网格单元编号和每一个网格对应的角点编号表(一般的为8个角点)、所有节点编号和对应的节点坐标表。“获得”的具体操作可以在Algor中进行数据库转换,或者在Algor中将模型导出为Abaqus等有限元软件的inp或者其他文件,再从这些文件中找到上述两个表需要的数据;
4、把上述两个表的数据分成两个文件保存;
5、在GH中分别用path、readfile导入这两个文件,再进行一大串电池操作即能得到一个表,这个表中包括了每一个单元小块的位置数据
6、根据上表组成新的单元小块组成的模型。
问题:由于有限元软件在网格划分时,为了保证精度,可能存在四面体、五面体、六面体,因此在数据配对上还有待细化。
作者: yesmely    时间: 2013-8-30 12:56
danny 发表于 2013-7-4 17:30
如没理解错,应是有限元网格划分。

Rhino里,只要含有Surface 便可直接启动ALOGR并导入模型作有限元网格 ...

algor中网格划分完要进行数据库转换,转换过程中不断报错,纠结中。




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