此示例演示了如何在使用 C# 和 Windows Forms 或 Windows Presentation Foundation (WPF) 编写的 .NET 应用程序中使用 OCCT 库。

.NET 和 OCCT (C++) 级别之间的连接由 C++/CLI 编写的代理库 OCCProxy 提供。代理库包含一个 ref 类,封装了 OCCT 视图器,并提供操作该视图器以及从 / 到几种支持的 CAD 文件格式 (IGES、STEP、BREP) 导入 / 导出 OCCT 形状的功能。

该示例实现了两种使用 C# 开发用户界面的方法。两个应用程序提供与标准 OCCT 导入 / 导出示例相同的功能。第一个项目称为 IE_WinForms,使用 Windows Forms 进行 GUI。第二个应用程序称为 IE_WPF_WinForms,使用 Windows Presentation Foundation。

请注意以下几个重要细节:

  • OCCT 模板类 NCollection_Haft 用于将 C++ 类封装到 ref 类的字段中;
  • 必须在项目属性 - 构建中显式设置 C# 程序集的目标平台为 x86,以在 64 位系统上与以 32 位模式构建的 OCCT 库一致工作;
  • 该示例演示了一种间接的方法,使用手动创建的代理库将 C++ 包装到 C# 中。还有一种替代方法,可以将单独的 OCCT 类包装到 C# 等效类中,以使其完整的 API 可用于 C# 用户,并让代码在 C# 级别上类似于 C++。有关 OCCT C# 包装器的说明,请参阅 http://www.opencascade.org/support/products/advsamples 中的高级示例和工具。
  • 在 WPF 示例中,使用 WinForms 控件封装 OCC 视图器,因为 WPF 不提供必要的界面来嵌入 OpenGl 视图。另一个可能的解决方案是将 OpenGl 场景渲染到一个离屏缓冲区,并将其作为图像映射到 WPF 控件中。这种方法允许使用所有 WPF 功能来控制 OCCT 视图器。

运行 msvc.bat 启动 MS Visual Studio 构建示例。请注意,项目文件仅适用于 VS 2010,您可以在较新版本的 Visual Studio 中使用自动转换器打开它们。

转换后,请检查 C# 项目的属性(选项卡“应用程序”)中的目标框架选项,以确保其与 C++ 项目的属性(例如 VS 2010 的 .NET Framework 4.0)相对应。

运行 run_winforms.bat 或 run_wpf.bat 以启动相应的示例。

请注意,所有批处理脚本都使用 OCCT custom.bat 文件中定义的默认配置;您可以提供参数来覆盖这些设置,指定 VS 版本、位数和模式,例如:


原文地址: https://www.cveoy.top/t/topic/qFKm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录