Open CASCADE 生成立方体并导出step文件

作者:追风剑情 发布于:2025-2-10 17:40 分类:C#

1、下载 Open CASCADE

https://dev.opencascade.org/release

下载OCCT官方编译好的工程 (occt-vc143-64.zip)
5555.png

下载OCCT源码工程 (OCCT-7_8_0.zip)
33333.png

2、配置环境变量

将以下目录配置到环境变量中:
...\occt-vc143-64\win64\vc14\bin
所有第三方库(3rdparty-vc14-64)的dll放到一个目录中并配入环境变量,我这里全部放到 3rdparty-vc14-64-dll 目录。

6666.png

3、配置OCCTProxy工程属性

打开 ...\OCCT-7_8_0\samples\CSharp\CSharp.sln 工程。

(1)右键->属性->C++目录->包含目录 (...\OCCT-7_8_0\inc)
(2)右键->属性->C++目录->库目录 (...\occt-vc143-64\win64\vc14\lib)
(3)右键->属性->链接器->输入->附加依赖项 (将库目录下的*.lib文件全部填入)

包含目录:指存放C++头文件(*.hxx)的目录路径。
库目录:指存放静态数据链接库(*.lib)文件的目录路径。

1111.png

222.png

  可以使用 DOS 命令 dir /b > libNames.txt 将 occt-vc143-64\win64\vc14\lib 下的所有文件名输出到 libNames.txt 文件中,再复制文件内容到附加依赖项中。需要注意下,生成的 libNames.txt 文件中会包含 "libNames.txt" 字符串,需要将其删除。

4、修改示例工程

打开 CSharp 示例工程 (OCCT-7_8_0\samples\CSharp\CSharp.sln)

333.png

2222.png

在 OCCTProxy.cpp 文件中添加个生成并导出 Cube 的方法,并重新生成 OCCTProxy.dll 供 IE_WPF_WinForms 工程使用。

void ExportCube()
{
    const Standard_CString theFileName = "D:\\cube.stp";

    // 创建一个边长为100毫米的立方体,中心在原点
    Standard_Real length = 100.0;
    TopoDS_Shape box = BRepPrimAPI_MakeBox(length, length, length).Shape();

    TopoDS_Compound aComp;
    BRep_Builder aBuilder;
    aBuilder.MakeCompound(aComp);
    aBuilder.Add(aComp, box);

    STEPControl_StepModelType aType = STEPControl_AsIs;
    IFSelect_ReturnStatus aStatus;
    STEPControl_Writer aWriter;

    // 使用原始形状
    aStatus = aWriter.Transfer(aComp, STEPControl_AsIs);
    // 导出文件名为 cube.stp
    aWriter.Write(theFileName);
}  

修改 IE_WPF_WinForms 工程中的 MainWindow.xaml 文件,添加一个导出 Cube 的菜单项。

4444.png

//菜单->导出Cube
private void ExportCube_Click(object sender, RoutedEventArgs e)
{
    if (ActiveViewer != null)
    {
        ActiveViewer.View.ExportCube();
    }
}  

用第三方软件查看导出的step模型文件。

11111.png

标签: C#

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号