栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

AnyCAD三维控件使用测试

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1023216.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号