前提
在这个项目中,我只是希望将OpenCASECADE作为对标工具,并不是用它来做具体项目,所以,我的目标是能在我的Visual Studio 2022下快速编译并跑起来一个Demo,并不需要完美的配置它,所以直接在VS里配置了绝对路径。
编译步骤
1、直接用VS2022打开“.\opencascade-7.7.0\adm\msvc\vc142\OCCT.sln”,直接升级。
2、尝试编译,会有部分project有找不到头文件或者lib文件,看似报了很多错,经过验证,实际需要调整的不多,主要是引用的第三方库找不到。
正常应该是运行“opencascade-7.7.0\msvc.bat”,“msvc.bat”会调用“env.bat”,“env.bat”会初始化相应环境变量。但这个bat并不支持VS2022,所以既然我们要快速运行起来,又不想修改系统的环境变量,所以直接在项目里加吧。如下图所示的。
注意,有些lib有Debug和Release之分,不用担心,绝大部分没有。
不想手动添加也可以照的“env.bat”文件自己写一个注册环境变量的脚本。
对我的需求来说就不需要了,我自己用,也不换目录,手动添加又快又稳。
添加完直接编译就可以了。
自己添加个Demo
直接用VS新建一个命令行程序,环境配置如下:
注意lib目录有debug和release之分
最后就是输入的lib,为了方便拷贝,就不上图片了,直接列下来了
TKVCAF.lib
TKVrml.lib
TKStl.lib
TKBrep.lib
TKIGES.lib
TKShHealing.lib
TKStep.lib
TKXSBase.lib
TKBool.lib
TKCAF.lib
TKCDF.lib
TKernel.lib
TKFeat.lib
TKFillet.lib
TKG2d.lib
TKG3d.lib
TKGeomAlgo.lib
TKGeomBase.lib
TKHLR.lib
TKMath.lib
TKOffset.lib
TKPrim.lib
TKService.lib
TKTopAlgo.lib
TKMesh.lib
TKV3d.lib
TKOpenGl.lib
TKLCAF.lib
最后直接来段测试代码
#include <iostream>
#include <Geom2d_Circle.hxx>
#include <Geom2d_BSplineCurve.hxx>
#include <Geom2dAPI_InterCurveCurve.hxx>
#include <Geom2dConvert.hxx>
int main()
{
Handle(Geom2d_Circle) circle1 = new Geom2d_Circle(gp_Ax2d(gp_Pnt2d(0, 0), gp_Dir2d(1, 0)), 100);
Handle(Geom2d_Circle) circle2 = new Geom2d_Circle(gp_Ax2d(gp_Pnt2d(1, 0), gp_Dir2d(1, 0)), 100);
Geom2dAPI_InterCurveCurve intCurveCurve(circle1, circle2);
int point_count = intCurveCurve.NbPoints();
int segment_count = intCurveCurve.NbSegments();
std::cout << point_count << "\n";
std::cout << segment_count << "\n";
}