1、CADMesh开源代码介绍

1.1 开源代码下载,放一个CADMesh的github链接,链接可能很慢。

gitee为搬过来的,速度快一些,同时网盘里有备份Cadmesh,链接在左下角“阅读原文”。

github链接:https://github.com/christopherpoole/CADMesh.git

gitee链接:https://gitee.com/hatiden/CADMesh.git

1.2 README讲解

下载完开源代码后,不是随便选个文件编译一下,一定是看源代码目录下的README文件。

cd0f0d5cabaa6741aa44f2e09f69e479.png

在CADMesh根目录下的CADMesh.hh是一个单独的文件,这个文件大小为63k,如下图所示,直接拷贝到include目录就可以使用。

e6686087b2bf30812c1bfaf8ca751a69.png

可以调用的格式有STL、PLY、OBJ。

065dd0ed7cf58ecf1e4fedd1e517a00b.png

这几行代码解释了一下CADMesh.hh如何使用,看起来很简单,按上图的第6行包含头文件,第8行定义一下mesh变量,第9行直接就可以转化为solid实体了,后续就是构建logicsolid,physicalsolid了

 865aaf2fa165ca2820b8059366cfefa1.png

有兴趣的用户,可以自行学习ASSIMP和TETGEN的3D模型读写库的解析。

680d8ed63a05466b67f7f6b5eb57b985.png

在第76行说明,在创建G4TesselatedSolid中的默认度量是1mm,setScale为缩放因子,其主要功能为英制与公制的转换。在第82行说明,如果画图的原点跟Geant4中的原点对不上,可以用mesh—>SetOffset(X,Y,Z)平移一下。

ff03f0493260a970e3ed5c53b9217b23.png

我们在CADMesh下的example文件夹下还发现有个README跟本文章有关系。按照这个README的提示,我们测试编译了一下,成功了,如下图

b8869cf3ee273e838eaee04ca2152a61.png

basic可视化,使用的OPENGL,不好看,所以,接下来我们在Geant4中中自带的例子B1,加入CADmesh,使用Qt可视化。

2、Geant4中B1加入CADMesh

2.1将geant4自带的B1例子重命名为B1-cadmesh,B1-cadmesh例程会放到网盘供大家下载

2.2我们在CADMesh根目录下的meshes文件夹内找到扩展名为.stl的bunny.stl。就是上图那只可爱的兔子,复制到B1-cadmesh根目录下,然后在CADMesh根目录下找到CADMesh.hh,复制到B1-cadmesh根目录下的include目录内,按照如下图更改CMakeLists.txt,将bunny.stl添加在(EXAMPLEB1_SCRIPTS)内,如下图所示。

c5fac949ed4fdbdfc9891d1520257cf5.png

2.3 在B1DetectorConstruction.cc,内加入 #inlcude CADMesh.hh,因为只想看那只兔子,方便可视化,所以将其他几何体相关代码删除。

38e118591b37565912912b2ad45e95b9.png

在CADMesh根目录下的examples/basic目录下,找到basic.cc,打开后找到如下图相关代码,复制到B1DetectorConstruction.cc。修改一下第127行的world_logial为logicWorld(为B1中定义的世界体的逻辑体)。

a0d89811ad5861b9c17eeb842a2173da.png

编译一下程序,然后运行,出现了一只的三维可视化的兔子。

6c179f26fa3851e7f9b3469b4e62e437.png

我们再测试其他stl,找到可爱的miku.stl(网盘下载,作者已经上传,放到B1-cadmesh内),按照上述修改bunny.stl的方法,添加miku.stl

8d43f756f40950e32d2c1abf89069d94.png

然后在B1DetectorConstruction.cc里注释掉bunny那一行,编译一下程序,然后运行。发射点粒子看看,灯光效果还不错。

a2b648c867308de97e15e92cf248328d.png

测试成功,例子在网盘里有,可以直接下载。

 提取码:zjnw

更多推荐G4教程11.2-物理过程II之物理过程和产物阈值(下)G4教程10.0 初级粒子源G4教程9.3 几何体1-3G4教程9.1 几何体1-2G4教程9.1 几何体1-1
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐