Geant4学习之CAD模型导入(1)
Geant4学习之CAD模型导入
- Geant4中CAD模型导入必要性
- CAD模型导入方法
- CAD模型导入Geant4过程
- (一)、CADMesh开源代码
- (二)、如何修改代码实现CAD模型导入
- 1.CADMesh.hh
- 2.CMakeLists.txt
- 3.DetectorConstruction.cc
- 4.运行编译
- 总结&&CADMesh源码链接
Geant4中CAD模型导入必要性
三维实体建模方法:
边界表示法(Boundary Pepresentation,BRep)
构造实体几何表示法(Constructive Solid Geometry,CSG)
Geant4自带的建模方式为构造实体几何表示法(Constructive Solid Geometry,CSG),对于初学者来说建模不方便,所以可以使用CAD建模软件画图并直接导入Geant4。
CAD模型导入方法
Geant4直接建模方法(这里介绍两种CAD导入方法):
CAD→GDML→Geant4CAD数据转换为几何描述标记性语言(GDML)接口导入Geant4(FastRAD、SuperMC、FreeCAD等)
CAD→STL→Geant4CAD数据转换为三角面元(mesh)几何文件导入Geant4(CADmesh接口、FreeCAD)
本篇主要讲解如何将CAD模型转换为STL格式文件导入Geant4中自动建模,并实现材料设置,大小变化、坐标迁移等。
CAD模型导入Geant4过程
(一)、CADMesh开源代码
CADMesh的源码链接放在文章结尾处,下载解压后如下图所示:
首先查看源代码目录下的README.md文件,在CADMesh根目录下的CADMesh.hh头文件,直接拷贝到include目录中,便可以使用CADMesh了,可以调用的格式有STL,PLY,OBJ。
# CADMesh //讲解了使用CADMesh的方法Load triangular mesh based CAD files into Geant4 quickly and easily.```cpp#include "CADMesh.hh" //CADMesh.hh头文件....auto mesh = CADMesh::TessellatedMesh::FromPLY("mesh.ply"); //定义mesh变量G4VSolid* solid = mesh->GetSolid(); //转化成Solid实体...Copy `CADMesh.hh` to the `includes` directory of your project.That's it.
(二)、如何修改代码实现CAD模型导入
1.CADMesh.hh
第一步需要将刚刚下载的CADMesh源码目录下的CADMesh.hh复制到自己项目的include目录下,如下图所示:
2.CMakeLists.txt
第二步在CADMesh根目录下的meshes文件夹内找到扩展名为.stl的box_solidworks.stl,复制到自己项目的根目录下,然后按照下图所示修改CMakeLists.txt,将box_solidworks.stl添加到(test_SCRIPTS)中,如下图所示:
3.DetectorConstruction.cc
在DetectorConstruction.cc内加入 #inlcude CADMesh.hh,如下图所示:
然后在DetectorConstruction.cc引入实体:
// CADMesh :: STL //auto test = CADMesh::TessellatedMesh::FromSTL("./box_solidworks.stl");test->SetScale(1); //设置模型大小比例test->SetOffset(0,0,0); //设置模型与坐标原点的相对位置auto logicaltest = new G4LogicalVolume( test->GetSolid(), Al //引入logicalvolume,设置材料, "logical", 0, 0, 0);new G4PVPlacement( 0, G4ThreeVector(), logicaltest, "test", logicWorld, false, 0);
4.运行编译
编译程序,运行,如下图所示:
总结&&CADMesh源码链接
按照以上步骤便可实现CAD模型直接导入Geant4中,关于STL格式文件如何生成将在后续的文章中更新,如需文章中展示的项目源码,可在评论区或私信联系我。如果觉得对您有所帮助,记得点个赞哦!
附上CADMesh源码链接提取码:LGY6
Geant4学习之CAD模型导入(1)相关推荐
- Geant4学习之CAD模型导入(2)
Gean4学习之CAD模型导入 Gean4学习之CAD模型导入 (一).CAD模型保存为STEP格式 (二).STEP格式转换为STL格式 (三).编译运行 总结 Gean4学习之CAD模型导入 上一 ...
- CAD模型导入Pointwise网格导入Fluent的联合设计教程
CAD模型导入Pointwise网格导入Fluent的联合设计教程(二维后台阶模拟) 0.问题引出 1.CAD模型绘制 2.Pointwise网格绘制 3.Pointwise的CAE导出 4.Flue ...
- 工作总结-Icepak 19.0 CAD模型导入方法结
原文:https://zhuanlan.zhihu.com/p/114468283 热仿真工作中,经常需要将简化后的产品3D图导入Icepak软件中. 模型导入方法很多,总结一下我导入CAD-3D模型 ...
- comsol随机几何的构建 CAD模型导入法
comsol随机几何 在comsol软件中构建随机几何模型方法较多,可以采用comsol自带的模型开发器通过编程实现,也可通过链接到MATLAB代码导入.这里介绍另一种在comsol中建立随机几何模型 ...
- 学习总结-Icepak模型导入、网格划分以及多级网格
上传案例3D模型到网络上,大家有兴趣可以试试. 链接:https://pan.baidu.com/s/1gRyb2em6E-P3c4E2_p_0rQ 提取码:2oj6 模型已经简化过了. 步骤一:使用 ...
- RationalDMIS 7.1 如何更改CAD模型的坐标系
模型坐标系转换:使模型坐标系通过旋转.镜像.平移操作得到测量所需的坐标系(符合图纸标注). 模型坐标系转换是从原始坐标系改变 模型坐标系转换能改变模型坐标系,模型坐标系转换是在测量开始前进行的操作,转 ...
- Zemax | Zemax中导入CAD模型
在处理非序列模式时常常需要导入一些复杂的模型结构,使用Zemax软件自身的画图功能显得有些相形见绌了,可以在CAD中先画好模型再导入进去. 一.将CAD模型导出为IGES/STEP等格式,将文件放出到 ...
- 基于傅老师unity游戏教学的学习笔记(EX)将PMX格式的MMD模型导入unity并使用
为了学习unity,开始游戏制作大业,我选择在bilibili上寻找unity游戏教学视频并边做边学,以此系列博客作为笔记. (EX)将PMX格式的MMD模型导入unity并使用 想做3D游戏,优秀的 ...
- 如何将CAD文件导入图新地球中,与影像地形倾斜模型准确叠加
前言: 把CAD文件导入GIS三维地图中并且设置为正确的坐标这件事,以前一直找朋友帮忙,但是也不能一直麻烦朋友,所以就自己参悟了一下,原来可以这么简单,同时还发现了无投影信息和工程坐标也一样可以准确到 ...
最新文章
- 王朝阳:河北高校邀请赛 -- 二手车交易价格预测决赛答辩
- c语言 误差小于10 -6,上海理工大学C语言2011期中试题和答案
- matlab drawnow连成曲线,precision recall曲线Matlab实现
- 【tyvj1863】【codevs1995】黑魔法师之门,有毒的并查集
- 经典排序算法(十六)--珠排序Bead Sort
- json_extract提取复杂json_Python中高效使用JSON的四个小窍门
- 关于公众号文章搜索,有两个小技巧
- PySide6精简教程
- Chrome保存整个网页为图片、PDF
- Snapchat如何突出重围?
- annotate 函数的用法
- 数据结构作业(校园导航系统)
- AS3多线程快速入门(三):NAPE物理引擎+Starling
- 棋牌游戏软件选哪家?诺博富棋牌游戏厅
- [转帖]国之魂,民之魂(硬骨头六连16勇士的最后一张照片)
- devenv.exe - 系统错误无法启动此程序,因为计算机中丢失 MSVCR100.dll。尝试重新安装该程序以解决此问题。【解决办法】...
- Android记账系统可行性分析,毕业设计论文-基于安卓的大学生记账管理系统的设计与实现.doc...
- excel中文显示乱码
- c语言指针数组分配内存,指针数组数组指针的分配内存及函数参数 C语言版
- 学习Java可以从事哪些岗位?