此示例演示了如何在使用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版本、位数和模式,例如


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

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