AnyCAD三维控件使用测试

  微信公众号推了好几篇使用AnyCAD显示三维模型的文章。本文学习参考文献并测试AnyCAD三维控件AnyCAD Rapid SDK的使用方式。
  关于AnyCAD的介绍详见参考文献3,在VS2019中新建Winform项目(参考文献1中使用的是VS2022+.NET6,本文中使用的是VS2019+.NET5,也能正常运行),然后通过NuGet安装AnyCAD Rapid SDK(最新的稳定版本为2022.2.2),如下图所示。

在这里插入图片描述
  参考文献1中的介绍其实来源于参考文献2,也即AnyCAD官网帮助文档中的内容(后面发现参考文献1的作者是anycad,是一家的)。本文介绍的内容主要来源于参考文献1和2,测试的内容包括动态构造三维形状(参考文献1)和加载并显示本地stp文件(参考文献2)。
  首先是动态构造三维模型,代码来源于参考文献1,主要是实时构造并显示一个球体。该代码简单易懂,也确实像参考文献1介绍的那样——不到10行代码。最关键的代码如下所示:通过RenderControl类配置在哪个控件中显示三维模型(只要是control类的子类都可以,参考文献1中使用的是splitcontainer的panel,测试时改为picturebox控件也能正常运行。)。通过ShapeBuilder构造球体(指定球心和半径,除了球体,还可以调用ShapeBuilder的其它函数构造其它形状),最后通过调用RenderControl.ShowShape函数显示模型。其效果如下图所示:

		//设置三维模型显示控件,
		mRenderView = new RenderControl(this.pictureBox1);
		
		var shape = ShapeBuilder.MakeSphere(new GPnt(0, 0, 0), 10);
        mRenderView.ShowShape(shape, ColorTable.PaleVioletRed);

在这里插入图片描述
    虽然AnyCAD Rapid SDK控件可以在NuGet中免费安装使用,但会在显示界面中出现二维码让人购买控件(二维码的位置随机)。
在这里插入图片描述
    为确保AnyCAD正常释放资源,还需要在项目的program的main函数中增加下列代码:

	AnyCAD.Foundation.GlobalInstance.Initialize();
	//ApplicationConfiguration.Initialize();   去掉本句代码也能正常运行程序,不报错         
     ...
     Application.Run(new frmMain());
     ...
     
     AnyCAD.Foundation.GlobalInstance.Destroy();

    接下来是加载并显示本地三维文件,从参考文献2中看到,anycad控件支持加载stp、step、igs、iges、obj、stl、3ds、glTF等格式的文件,本文中测试加载stp文件格式的文件。在网上找一份prt文件,并在NX中将其另存为stp文件。然后调用下列代码加载并显示(代码来自参考文献2)。

	OpenFileDialog dialog = new OpenFileDialog();
     dialog.Filter = "STEP (*.stp)|*.stp";
     if (dialog.ShowDialog() != DialogResult.OK)
         return;

     var shape = StepIO.Open(dialog.FileName);
     if (shape == null)
         return;

     mRenderView.ShowShape(shape, new Vector3(0.8f)); 

  显示效果如下所示,还需说明的是:1)滚动鼠标滚轮可以缩放模型;2)按住鼠标滚轮可以平移模型;3)安装鼠标右键可以旋转模型;4)鼠标点击模型区域右上角的方块可以切换视角。
在这里插入图片描述

参考文献:
[1]https://www.cnblogs.com/anycad/p/anycad-winforms-net6-starter.html
[2]http://www.anycad.cn/guide/guide-30-data-exchange.html
[3]http://www.anycad.cn/
[4]https://gitee.com/anycad/anycad.rapid.net.sample

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值