要运行本文中的示例,请先安装Vistual Studio 2022,社区版就可以了。

1 创建项目

选择创建WPF应用

给程序起一个酷酷的名字,选一个酷酷的位置:

选一下.NET6

2 配置项目

从nuget.org上安装AnyCAD Rapid SDK 2022。

3 设计界面

  • 首先引入程序集:
  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>

运行一下:

5 显示模型

  • 增加一个ViewerReady事件

 <anycad:RenderControl Grid.Column="1" x:Name="mRenderCtrl" ViewerReady="mRenderCtrl_ViewerReady"/>

  • 在mRenderCtrl_ViewerReady中创建一个球
        private void mRenderCtrl_ViewerReady()
{
var shape = ShapeBuilder.MakeSphere(new GPnt(0, 0, 0), 100);
mRenderCtrl.ShowShape(shape, ColorTable.AliceBlue);
}

在三维控件初始化完成之前是不能进行对控件进行操作的

再运行一下:

6 资源释放

在调试模式下,程序退出的时候在输出窗口中,你可能会发现这样的错误:

程序“[57196] WpfApp1.exe”已退出,返回值为 3221225477 (0xc0000005) 'Access violation'。

这是因为AnyCAD Rapid SDK没有正确的释放资源。为保证三维控件资源能够正确释放,程序能够得到正常的返回值,只需要这样加一下Startup和Exit消息:

<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>

代码修改:

    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();
} }

7 总结

相比WinForms程序,WPF程序需要经常在XAML和代码之间切换,使用门槛稍高,但熟悉就好了。

.NET6为开发者带来了高效的开发体验,而AnyCAD Rapid SDK也一样,通过简单几步即可为应用添加三维能力,让程序显得高大上!

AnyCAD Rapid SDK的包括三维显示、造型、STEP/IGES读取等场景的三维功能,能够满足大部分的三维工业软件应用场景,比如CAD设计、CAE仿真、CAM加工,机器人模拟等,可以应用在建筑、机械、电力、化工、自动化等多个领域。

最新文章

  1. JavaScript零基础学习系列三
  2. Python中的高级特性
  3. mac 笔记
  4. Eclipse Svn 取消某些文件或文件夹的版本控制
  5. [SQL]分布师查询
  6. hadoop安装配置——伪分布模式
  7. mysqltuner
  8. js查找元素
  9. 「OC」@property @synthesize和id
  10. Qt多工程多目录的编译案例
  11. laravel5.3统计 withCount()方法的使用
  12. 算法题丨4Sum
  13. Java后端学习,推荐书籍和学习路线
  14. 六、pyqt5对话框——QInputDialog、QColorDialog、QFontDialog、QMessageBox、QFileDialog
  15. python科学计算
  16. This dependency was not found: * !!vue-style-loader!css-loader?
  17. Java 基础 接口和多态
  18. uvalive 5731 Qin Shi Huang’s National Road System
  19. 【转】在python3.5安装tkinter
  20. 项目Header组件的开发注意事项

热门文章

  1. Ganglia 简单介绍与安装
  2. Tomcat源码分析 | 一文详解生命周期机制Lifecycle
  3. @Data 注解引出的 lombok
  4. awk的基本用法
  5. d3 CSS
  6. Spring Boot项目的不同启动方式
  7. AT1980 [AGC001B] Mysterious Light 题解
  8. DMA(Data Migration Assistant)迁移SQLServer数据库
  9. C++STL标准库学习笔记(五)set
  10. 其他(Excel函数集团)