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)相关推荐

  1. Geant4学习之CAD模型导入(2)

    Gean4学习之CAD模型导入 Gean4学习之CAD模型导入 (一).CAD模型保存为STEP格式 (二).STEP格式转换为STL格式 (三).编译运行 总结 Gean4学习之CAD模型导入 上一 ...

  2. CAD模型导入Pointwise网格导入Fluent的联合设计教程

    CAD模型导入Pointwise网格导入Fluent的联合设计教程(二维后台阶模拟) 0.问题引出 1.CAD模型绘制 2.Pointwise网格绘制 3.Pointwise的CAE导出 4.Flue ...

  3. 工作总结-Icepak 19.0 CAD模型导入方法结

    原文:https://zhuanlan.zhihu.com/p/114468283 热仿真工作中,经常需要将简化后的产品3D图导入Icepak软件中. 模型导入方法很多,总结一下我导入CAD-3D模型 ...

  4. comsol随机几何的构建 CAD模型导入法

    comsol随机几何 在comsol软件中构建随机几何模型方法较多,可以采用comsol自带的模型开发器通过编程实现,也可通过链接到MATLAB代码导入.这里介绍另一种在comsol中建立随机几何模型 ...

  5. 学习总结-Icepak模型导入、网格划分以及多级网格

    上传案例3D模型到网络上,大家有兴趣可以试试. 链接:https://pan.baidu.com/s/1gRyb2em6E-P3c4E2_p_0rQ 提取码:2oj6 模型已经简化过了. 步骤一:使用 ...

  6. RationalDMIS 7.1 如何更改CAD模型的坐标系

    模型坐标系转换:使模型坐标系通过旋转.镜像.平移操作得到测量所需的坐标系(符合图纸标注). 模型坐标系转换是从原始坐标系改变 模型坐标系转换能改变模型坐标系,模型坐标系转换是在测量开始前进行的操作,转 ...

  7. Zemax | Zemax中导入CAD模型

    在处理非序列模式时常常需要导入一些复杂的模型结构,使用Zemax软件自身的画图功能显得有些相形见绌了,可以在CAD中先画好模型再导入进去. 一.将CAD模型导出为IGES/STEP等格式,将文件放出到 ...

  8. 基于傅老师unity游戏教学的学习笔记(EX)将PMX格式的MMD模型导入unity并使用

    为了学习unity,开始游戏制作大业,我选择在bilibili上寻找unity游戏教学视频并边做边学,以此系列博客作为笔记. (EX)将PMX格式的MMD模型导入unity并使用 想做3D游戏,优秀的 ...

  9. 如何将CAD文件导入图新地球中,与影像地形倾斜模型准确叠加

    前言: 把CAD文件导入GIS三维地图中并且设置为正确的坐标这件事,以前一直找朋友帮忙,但是也不能一直麻烦朋友,所以就自己参悟了一下,原来可以这么简单,同时还发现了无投影信息和工程坐标也一样可以准确到 ...

最新文章

  1. 王朝阳:河北高校邀请赛 -- 二手车交易价格预测决赛答辩
  2. c语言 误差小于10 -6,上海理工大学C语言2011期中试题和答案
  3. matlab drawnow连成曲线,precision recall曲线Matlab实现
  4. 【tyvj1863】【codevs1995】黑魔法师之门,有毒的并查集
  5. 经典排序算法(十六)--珠排序Bead Sort
  6. json_extract提取复杂json_Python中高效使用JSON的四个小窍门
  7. 关于公众号文章搜索,有两个小技巧
  8. PySide6精简教程
  9. Chrome保存整个网页为图片、PDF
  10. Snapchat如何突出重围?
  11. annotate 函数的用法
  12. 数据结构作业(校园导航系统)
  13. AS3多线程快速入门(三):NAPE物理引擎+Starling
  14. 棋牌游戏软件选哪家?诺博富棋牌游戏厅
  15. [转帖]国之魂,民之魂(硬骨头六连16勇士的最后一张照片)
  16. devenv.exe - 系统错误无法启动此程序,因为计算机中丢失 MSVCR100.dll。尝试重新安装该程序以解决此问题。【解决办法】...
  17. Android记账系统可行性分析,毕业设计论文-基于安卓的大学生记账管理系统的设计与实现.doc...
  18. excel中文显示乱码
  19. c语言指针数组分配内存,指针数组数组指针的分配内存及函数参数 C语言版
  20. 学习Java可以从事哪些岗位?

热门文章

  1. 环境艺术设计是计算机,哪种笔记本电脑适合学习环境艺术设计?
  2. 坪山计算机学院,深圳电脑培训、坪山办公文员Office办公速成培训
  3. 项目管理探究之挣值管理常见计算
  4. Vue.config.productionTip = false是什么意思
  5. PGS,史上最大的超级玛丽来了
  6. SAP-PP 工艺路线的作用
  7. 【杂记】万用表测试三极管
  8. 对100M左右的数据进行保存和简单分析
  9. 计算机病毒中的宏病毒,意外:我该如何处理计算机中的宏病毒?
  10. 【适合小白】搭建区块链网络