据老一辈的程序员说开发三维程序门槛很高,需要学若干年才能入门,自从遇上AnyCAD三维控件后,开发三维应用变的简单了。当结合nuget后,一切更简单了。

1 准备工作

安装VS201x以后,就可以开始开发了。

1.1 创建WinForm工程

如果是跟已有的项目集成,就可以跳过此步。

1.2 使用nuget添加AnyCAD三维控件

使用nuget安装可以自动添加AnyCAD程序集引用。

1.3 设置项目属性

为保障三维应用的性能,建议使用x64

2 开始写代码

2.1 在窗体上添加控件容器

可以使用Panel这样的Container控件来存放三维控件。

2.2 创建三维控件

    public partial class Form1 : Form
    {
        RenderWindow3d mRenderView;
        public Form1()
        {
            InitializeComponent();

            mRenderView = new RenderWindow3d();
            this.splitContainer1.Panel2.Controls.Add(mRenderView);
            mRenderView.Dock = DockStyle.Fill;

        }
    }

2.3 运行

3 扩展到CAD浏览器

3.1 打开STEP文件

增加打开文件菜单,在处理函数中增加以下代码:

        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "STEP File (*.stp;*.step)|*.stp;*.step||";
            if (DialogResult.OK != dlg.ShowDialog())
                return;

            var shape = GlobalInstance.BrepTools.LoadFile(new Path(dlg.FileName));
            if (shape != null)
            {
                int myObjectId = 100;
                mRenderView.ShowGeometry(shape, myObjectId);
            }
        }

3.2 运行测试

打开一个STEP文件测试一下:

4 小结

通过使用nuget包管理工具,简单基本就可以实现与AnyCAD三维控件集成,再加几行代码就可以开发一个CAD模型浏览程序。 更多的功能请参考anycad的github代码仓库,那里有丰富的示例,尤其是:https://github.com/anycad/AppFeatures。

使用Nuget快速集成.Net三维控件的更多相关文章

  1. 在MFC对话框中快速集成三维控件

    在MFC的对话框中可以方便的集成AnyCAD三维控件(c++版本),遵循一下几步: 1.在对话框资源中增加一个Static控件,ID为IDC_STATIC_3D,并且把它的Notify属性设置为Tru ...

  2. WinForm中使用AnyCAD三维控件 の 初始化

    在WinForm中可以方便的集成AnyCAD.Net三维控件,只需要以下几部即可完成. 一.添加DLL程序集 AnyCAD.Foundation.Net.dll AnyCAD.Presentation ...

  3. AnyCAD三维控件场景节点详解

    SceneNode是AnyCAD三维图形平台的AnyViz显示引擎的核心对象之一,只有放在场景管理器(SceneManager)里的节点才能被显示引擎所显示. 1.   节点分类 SceneNode是 ...

  4. AnyCAD三维控件(转)

    在WinForm中可以方便的集成AnyCAD.Net三维控件,只需要以下几部即可完成. 一.添加DLL程序集 AnyCAD.Foundation.Net.dll AnyCAD.Presentation ...

  5. winform快速开发平台 -> 快速绑定ComboBox数据控件

    通常我们在处理编辑窗体时.往往会遇到数据绑定.例如combobox控件绑定数据字典可能是我们经常用到的.然而在我的winform快速开发平台中我是如何处理这个频繁的操作呢? 首先,我们要绑定combo ...

  6. .Net三维控件

    AnyCAD .Net三维建模和可视化控件为.Net 4.0开发者提供简单易用的三维建模.三维可视化和文件交换的API. 30天试用版下载: 1.  三维建模 三维建模有以下功能: 三维基本体,如点. ...

  7. swift 快速创建一些基本控件

    1.tableview private lazy var cellId = "cellId" fileprivate lazy var tv : UITableView = { l ...

  8. 在Qt中使用AnyCAD三维建模控件

    AnyCAD C++ SDK专为Qt框架增加了AnyPlatformQt.lib模块,在Qt中使用AnyCAD三维建模控件变得十分简单. 下载 Qt高速下载:http://pan.baidu.com/ ...

  9. Expression Blend实例中文教程(5) - 布局控件快速入门StackPanel,ScrollViewer和Border

    上一篇,介绍了Canvas布局控件在Blend中的使用.本篇继续介绍布局控件StackPanel,ScrollViewer和Border. 相对于Grid和Canvas来说,StackPanel,Sc ...

  10. 两款工控控件对比评测:Iocomp和ProEssentials

    对于程序员来说,要凭一己之力开发出漂亮逼真的工控仪表和工控图表是非常耗时间和精力的,那么使用专业的第三方控件就是不错的选择,不仅节约开发时间,降低了项目风险,最重要的是第三方控件写的程序更专业,工控图 ...

随机推荐

  1. AtCoder Beginner Contest 216 个人题解

    比赛链接:Here AB水题, C - Many Balls 题意: 现在有一个数初始为 \(0(x)\) 以及两种操作 操作 \(A:\) \(x + 1\) 操作 \(B: 2\times x\) ...

  2. Codeforce:455A. Boredom (DP)

    https://codeforces.com/problemset/problem/455/A 题意: 给出n个元素,让我们来挑选,如果选了 \(a_k\),获得\(a_k\)点数,同时与\(a_{k ...

  3. AcWing 第 1 场周赛补题记录(A~C)

    比赛链接:Here AcWing 3577. 选择数字 排序,然后选取两个数组的最大值 void solve() { int n; cin >> n; vector<int>a ...

  4. 《3D编程模式》写书-第2次记录

    大家好,目前我已经完成了"拼接模式"."撤销重做模式"."ECS模式"的初稿 下面会给出它们的使用场景,如果您正好能用到,请联系我提前阅读模 ...

  5. vue-draggable 学习和使用

    vue-draggable 学习和使用 https://www.jianshu.com/p/e8ff1e1cafb1

  6. Go 标准库 net

    本篇文章主要介绍 Go 标准库中的 net 包,通过一个小例子介绍常用的 net 包函数/方法 Listen,Accept 和 Dial 等. 1. net 简介 Go 官网对 net 包的定义如下: ...

  7. The project description file (.project) for XXX is missing

    在STS中切换项目分支的时候,出现一个项目打不开了,提示:The project description file (.project) for XXX is missing 试了下网上的方法都没有解 ...

  8. centos 安装python3导致yum报错

    centos yum报错 File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: 报错: 报错一: File " ...

  9. 问题--QT只有全屏的时候才能使用

    1.问题 安装的版本是3.8.0,只有在全屏的时候在编辑界面不会卡,其余情况会直接卡死在这. 2.解决方式 安装了较低版本的3.14.2,解决了上述问题

  10. Oracle数据库如何解决创建用户名开头必须要C##问题?

    1.问题 我们在创建用户,概要文件等时,由于使用的是容器数据库,其文件名必须以C##开头. 我们在学习过程中暂时不需要对齐进行区分,所以如何修改这个设定呢? 2.解决 参考链接如何解决创建用户名开头必 ...