如何把代码复制到codeblocks里_CADMesh开源代码介绍及Geant4下的初步使用

本文介绍了如何将CADMesh开源代码引入到CodeBlocks,并在Geant4的B1例程中实现CAD模型的加载与可视化。首先,从GitHub或Gitee下载CADMesh,根据README进行编译。接着,将STL文件和CADMesh.hh头文件添加到B1-cadmesh项目中,并修改CMakeLists.txt。在B1DetectorConstruction.cc中加入必要的代码,实现兔子和Miku模型的3D渲染。经过编译运行,成功展示了模型的三维效果。
摘要由CSDN通过智能技术生成

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-3 G4教程9.1 几何体1-2 G4教程9.1 几何体1-1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值