[发明专利]基于STEP文件的从CAD模型到MCNP几何模型的转换算法有效
申请号: | 201410027712.2 | 申请日: | 2014-01-21 |
公开(公告)号: | CN104794133B | 公开(公告)日: | 2018-02-02 |
发明(设计)人: | 周庆国;吴炯;杨家明;汪俊琼 | 申请(专利权)人: | 兰州大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F17/50 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 730000 *** | 国省代码: | 甘肃;62 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 step 文件 cad 模型 mcnp 几何 转换 算法 | ||
技术领域
本发明涉及物理、核科学技术和CAD建模等领域,核心内容是基于STEP文件的从CAD模型到MCNP几何模型的转换算法。
背景技术
蒙特卡洛中子-光子输运程序MCNP(Monte Carlo N-Particle Code)是美国新墨西哥洛斯阿拉莫斯国家实验室应用理论物理部的Monte Carlo小组经过数十年的研究开发的一个基于蒙特卡洛方法的大型多功能Monte Carlo粒子输运程序。因其良好的粒子输运性能在物理、核科学领域有着广泛的应用。但其输入文件(INP file)结构复杂,手写容易出错等问题,国际上出现了很多解决这一问题的软件,类似Visual Editor,Moritz,DesignModeler,MCAM等软件,由于这些软件有的不能添加材料,有的不能对导入的模型进行修改等原因不能满足用户的需求。另外,能解决上述问题的思路大致有三类,意思从BREP表示到CSG表示的转换,二是基于大型三维建模软件的二次开发,三是基于中性文件的转换。第一种由于两种转换的表示涉及到大量的数学知识和计算机图形学的知识,在转换的过程中会带来诸多麻烦。第二种太容易受到软件本身数据结构定义的限制,并在一般大型的三维建模软件像CATIA和solidworks等都是商业软件,版权很贵。因此我们提出了基于中性文件STEP(Stander for the Exchange of Product Model Data)的从CAD模型到MCNP几何模型的转换算法。因为CAD系统具有强大的几何建模功能,我们可以将CAD系统构建的模型导出成STEP文件后在转换为INP file。
STEP标准是ISO(国际标准化组织)提出的信息交换标准,通过一种不依赖于任何系统的中性机制,为解决不同CAX系统间的数据交换和共享提供了可行性。STEP可以被多种CAD建模软件支持,因此通过设计STEP文件到INP文件的转换算法以实现CAD模型到MCNP模型的转换,最终实现MCNP辅助建模,这样的转换算法具有通用性,可实现多个CAD系统与MCNP模型的交互。
发明内容
针对INP文件格式,为了实现通用的CAD建模软件与MCNP模型之间的交互,本发明公开一种全新的基于STEP文件的从CAD模型到MCNP几何模型的转换算法。
本发明通过对STEP文件进行分析,提取文件中有用的几何信息,通过进一步几何运算,得到INP file需要的几何信息和拓扑信息,然后根据INP文件格式将CAD模型转换成相应的栅元卡和曲面卡形式,完成CAD建模软件与MCNP模型之间的交互。为了提高算法的灵活性,在前一阶段对体进行分析基础上进行了改进,改进之后的算法可以直接对模型中的面进行分析,能够输出任意模型的曲面卡。对于栅元卡的输出则采用构造栅元树的方法进行。本部分将分为四个部分来介绍发明内容,主要分为,本算法整体思路,对STEP文件信息提取算法,构造栅元树算法和栅元树输出算法。
本发明整体算法步骤如下:
Step1提取STEP文件中封闭壳(CLOSED_SHELL)信息:根据不同的曲面卡生成所需参数提取STEP文件中相对应的法方向、点坐标半径、角度等信息。根据不同的栅元卡生成所需参数提取STEP文件中相当对应体的信息,并将对应的字符转换成数字;
Step2组成封闭壳(CLOSED_SHELL)的所有曲面方程求取:根据STEP文件中的关键字先判断出曲面的类型,然后根据Step1中提取的信息,通过数学几何计算求出各种曲面的方程。声明新的栅元节点并根据曲面卡形式,将封闭壳中所包含的所有曲面的参数以及面信息均存于该节点中;
Step3STEP文件中封闭壳(CLOSED_SHELL)之间包含关系判定:若封闭壳A包含封闭壳B,则Produce(A,B)=1;若封闭壳B包含封闭壳A,则Produce(A,B)=-1;若封闭壳A与封闭壳B不存在包含关系,则Produce(A,B)=0;
Step4栅元树构造:根据Step3中Produce(A,B)函数的返回值构造栅元树。这里假设C1为新加入的栅元节点,C2为栅元树中的节点,将节点C1与栅元树中的所有栅元节点进行比较即求对应的Produce(C1,C2)值。当Produce(C1,C2)=1时,将A作为B的孩子节点;当Produce(C1,C2)=-1,将A作为B的父节点;当Produce(C1,C2)=0时,将A作为B的兄弟节点;
Step5判断STEP文件中所有封闭壳搜索是否完成:完成时,转Step6;若没有,转Step1;
Step6选择标号方式对栅元树中栅元进行标号;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于兰州大学,未经兰州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410027712.2/2.html,转载请声明来源钻瓜专利网。