前言
工业软件和三维可视化需求的不断增长,将三维模型展示功能集成到桌面应用程序中已成为许多开发的刚需。
WPF 作为 Windows 平台强大的 UI 框架,结合现代 .NET 版本,具备出色的图形渲染能力。
本文将带大家使用 .NET 6 和 AnyCAD Rapid SDK,在短短三分钟内搭建一个具备三维显示能力的 WPF 应用程序。整个过程简单直观,无需深厚的三维开发背景,即可让你的应用"高大上"起来。
正文
1、创建项目
首先,确保你已安装 Visual Studio 2022。打开后选择"创建新项目",然后选择"WPF 应用 (.NET)"。
为项目起一个酷酷的名字,并选择保存位置。
在配置界面中,选择目标框架为 .NET 6。
2、配置项目
通过 NuGet 包管理器安装 AnyCAD Rapid SDK 2022。在“管理 NuGet 程序包”中搜索 AnyCAD.Rapid.SDK 并安装。
3、设计界面
在 XAML 文件中引入 AnyCAD 的命名空间:
xmlns:anycad="clr-namespace:AnyCAD.WPF;assembly=AnyCAD.WPF.NET6"
采用经典的左右布局,右侧用于显示三维内容。
完整的 XAML 代码如下:
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
xmlns:anycad="clr-namespace:AnyCAD.WPF;assembly=AnyCAD.WPF.NET6"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="100" Width="0.3*"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<anycad:RenderControl Grid.Column="1" x:Name="mRenderCtrl"/>
</Grid>
</Window>
运行程序,可以看到三维渲染区域已就位。
4、显示三维模型
为 RenderControl 添加 ViewerReady 事件,确保在控件初始化完成后再进行操作:
<anycad:RenderControl Grid.Column="1" x:Name="mRenderCtrl" ViewerReady="mRenderCtrl_ViewerReady"/>
在事件处理函数中创建一个球体并显示:
private void mRenderCtrl_ViewerReady()
{
var shape = ShapeBuilder.MakeSphere(new GPnt(0, 0, 0), 100);
mRenderCtrl.ShowShape(shape, ColorTable.AliceBlue);
}
⚠️ 注意:必须在
ViewerReady事件触发后才能操作渲染控件,否则可能导致异常。
再次运行程序,你将看到一个蓝色的球体出现在三维视图中。
5、资源释放
在调试模式下,若程序退出时出现 Access violation 错误(返回值 0xc0000005),是因为 AnyCAD SDK 未正确释放底层资源。
为避免此问题,需在 App.xaml 中添加启动和退出事件:
<Application x:Class="WpfApp1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp1"
StartupUri="MainWindow.xaml"
Exit="Application_Exit"
Startup="Application_Startup">
<Application.Resources>
</Application.Resources>
</Application>
并在 App.xaml.cs 中实现初始化与销毁逻辑:
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
AnyCAD.Foundation.GlobalInstance.Initialize();
}
private void Application_Exit(object sender, ExitEventArgs e)
{
AnyCAD.Foundation.GlobalInstance.Destroy();
}
}
总结
本文演示了如何在 .NET6 环境下,利用 AnyCAD Rapid SDK 快速为 WPF 应用添加三维显示能力。虽然 WPF 的 XAML 与代码分离模式初看略显复杂,但一旦熟悉,其灵活性和表现力远超 WinForms。通过简单的几步配置,我们成功创建了一个可显示三维球体的应用,并确保了资源的正确释放。
AnyCAD Rapid SDK 不仅支持三维显示,还涵盖造型、STEP/IGES 文件读取等强大功能,适用于 CAD 设计、CAE 仿真、CAM 加工、机器人模拟等多种工业场景,广泛服务于建筑、机械、电力、化工和自动化等领域。对于希望快速集成三维能力的开发来说,这是一条高效且可靠的路径。
关键词
#WPF、.NET6、#AnyCAD、#三维可视化、#RenderControl、#ShapeBuilder、#ViewerReady、#资源释放、#工业软件、#三维建模
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。
也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!
优秀是一种习惯,欢迎大家留言学习!