McCAD是一款依赖于OpenCASCADE环境的MCNP代码编写辅助插件,其官方仓库为:https://github.com/inr-kit/McCAD-Library。先前在Ubuntu18.04
里编译遇到段错误
https://github.com/inr-kit/McCAD-Library/issues/8,试过issue里的方法,但未解决。此博客主要参考官方提供的使用手册,记录在win10
里的编译过程,排除一些容易踩坑的地方。
1. 编译工具
可选CMake
或Microsoft Visual Studio
,建议选择Visual Studio
。此教程使用的是Visual Studio 2022 Community
。注意此处有一个踩坑点,不用严格按照手册中的操作选择Windows 10 SDK
,保持VS2022的安装引导程序中默认选择的SDK即可(比如此处默认Windows 11 SDK
),如下图所示,否则后面编译时会遇到报错:No CMAKE_CXX_COMPLIER could be found
。其余操作步骤按照手册进行。
![](https://i-blog.csdnimg.cn/blog_migrate/9047c4777dbdeed099c1f1a7ebd806ac.png)
2. Boost C++ 库
此部分按照手册操作,下载解压即可。boost
下载链接:https://www.boost.org/users/download/ ,此下载链接默认为最新版,之前的版本可在此处https://sourceforge.net/projects/boost/files/boost/下载。
3. 下载安装Open CASCADE
此部分同样按照手册操作,下载解压即可。opencascade-7.7.0-vc14-64.exe
下载链接:https://dev.opencascade.org/release
注意此处的坑为:添加环境变量一定要在系统变量下添加,在用户变量下添加会报错找不到TKCAF.dll
等一系列文件。
![](https://i-blog.csdnimg.cn/blog_migrate/f50b12ef5310760e1f36ca3cedf91000.png)
4. 编译McCAD
McCAD源码下载链接:https://github.com/inr-kit/McCAD-Library
按找手册操作进行。注意修改CMake参数
,将DBOOST CUSTOM ROOT=
和DOCC CUSTOM ROOT
修改为自己的路径。另外注意不要点到保存到JSON
的选项。编译成功后将McCAD-Library/build/bin 的完整路径
添加到系统环境变量中。
![](https://i-blog.csdnimg.cn/blog_migrate/052732d4c1195e6d042fe4b40c4b09c7.png)
若出现报错error LNK2001: 无法解析的外部符号 "void __cdecl boost::throw_exception(class std::exception const &)"
,则在CMakeLists.txt
中加入一行set(CMAKE_CXX_FLAGS "/EHsc ${CMAKE_CXX_FLAGS}")
。如下图
![](https://i-blog.csdnimg.cn/blog_migrate/c134a68ce5952d616c786c2bab183bed.png)
附编译好的McCAD插件下载链接:
链接:https://pan.baidu.com/s/1xSErydp7XqGDc0YYM12FNg?pwd=eeey
提取码:eeey
5. 运行 McCAD
在命令行窗口运行McCAD
可在当前路径下创建默认配置文件McCADInputConfig.i
,证明环境搭建成功。
![](https://i-blog.csdnimg.cn/blog_migrate/0aa23653afdba0e253bb1d7198982daf.png)
从McCAD-Library\examples\collection_of_solids
下的示例代码中将SS_-793e-2.stp
和McCADInputConfig.i
两个文件拷贝到自己的工作空间,在工作空间下执行命令McCAD run
,生成6个新的文件,每个文件大致含义如下:
McCADInputConfig.i M从CAD插件运行所需的配置文件
SS_-793e-2.stp 输入文件
SS -793e-2Volumes.i 输入文件中的实体和名称
SS_-793e-2Decomposed.stp 由插件从输入STEP文件中分解得到的实体
SS_-793e-2DecomposedVolumes.i 由插件从输入STEP文件中分解得到的实体和名称
volumes.i 从输入STEP文件中转换出的MCNP中的栅元(cell)的编号和名称
voidCells.i 从输入STEP文件中转换出的MCNP中的空白区域编号和名称
MC-File.i 由插件转换生成的MCNP输入文件
![](https://i-blog.csdnimg.cn/blog_migrate/17695c163b7c95c63d3c72b17ca55bac.png)
附MCNP5可视化软件中显示的图:
![](https://i-blog.csdnimg.cn/blog_migrate/a3acd895dac9adae1ec46989210a7d23.png)
6. 参考
McCAD官方手册
VS2022 No CMAKE_CXX_COMPLIER could be found
VS2017+OpenCASCADE+MFC +win10下载配置安装运行
win10安装OpenCasCade并绘图测试
BOOST应用 无法解析的外部符号