在 Winform 上显示 CAD 三维模型

news/2024/11/29 1:33:44/

0、基本概念

CAD

CAD 是计算机辅助设计(Computer-Aided Design)的缩写,指的是使用计算机技术和软件工具来辅助进行设计和绘图的过程。

CAD 广泛应用于各种工程和设计领域,如建筑设计、机械工程、电子设计、航空航天、汽车设计等。它取代了传统的手工绘图方式,提供了更高效、精确和灵活的设计方法。

CAD 软件

目前市面上有许多 CAD 软件,下面介绍几个比较流行的 CAD 软件:

图标软件名称出品商性质介绍主要应用领域
AutoCADAutodesk商业付费软件AutoCAD是由Autodesk开发的最著名和广泛使用的CAD软件之一。它提供了广泛的设计工具和功能,可用于2D和3D设计、建模、绘图和注释等。建筑设计和土木工程领域
SolidWorks达索系统商业付费软件SolidWorks是一款专业的三维CAD软件,适用于机械设计、工程和制造。它提供了强大的建模工具、装配模拟、工程分析和绘图功能。机械设计和制造领域
CATIA达索系统商业付费软件CATIA是由达索系统公司开发的综合性CAD/CAM/CAE软件。它广泛应用于航空航天、汽车、工程和其他行业,提供了全面的设计和分析工具。航空航天、汽车和工程领域

eDrawings


eDrawings 是一款由 SolidWorks 开发的用于查看和共享 CAD 文件的文件查看器。通过 eDrawings,您可以审查 2D 和 3D 设计。该工具使任何人都可以使用3D设计数据进行沟通和协作,以最大限度地减少错误并更快地将设计推向市场。

eDrawings Viewer/Professional/Publisher

这三款软件都属于 eDrawings 系列产品。eDrawings Viewer 提供了基本的查看功能;eDrawings Professional 提供了更多的高级功能;eDrawings Publisher 则可以用来从其他 CAD 软件中创建 eDrawings 文件

eDrawings ViewereDrawings ProfessionaleDrawings Publisher
免费软件,用于查看和打印多种格式的 CAD 模型文件,还提供了基本的测量功能。通过 eDrawings Viewer 我们可以很容易地使用 3D 产品设计数据进行沟通和协作付费软件,在 eDrawings Viewer 的基础上提供了更多的功能。例如:支持在模型文件中添加批注和标注,支持查看模型文件的质量分析结果,支持使用增强现实(AR)和虚拟现实(VR)查看模型文件一个插件,可以用来从其他 CAD 软件中创建 eDrawings 文件。例如:Autodesk Inventor®、CATIA® V5、Pro/Engineer®、PTC Creo®、Simens NX®、SketchUp®、Solid Edge®
Win
IOS|Android
Win|Mac
IOS|Android
Win|Mac
不支持移动端

eDrawings 支持的文件类型

文件类型(版本)描述
ACIS(截止到 2018.1(R28))
  • .sat
  • .sab
AutoCAD®(截止到 AutoCAD 2018)
  • .dxf files
  • .dwg files
Autodesk® Inventor®(截止到 2018)
  • .ipt
  • .iam
CATIA V5(截止到 V5-6 R2018(R28))
  • .CATPart
  • .CATProduct
CATIA V5 [3DXML](截止到 V5-6 R2018(R28)).3DXML
eDrawings(截止到 eDrawings 2019)
  • .eprt
  • .easm
  • .edrw
JT(截止到 v10.0)
  • .jt
  • .JT 数据格式文件不支持产品制造信息(PMI)
Parasolid(截止到 v30.1)
  • .x_b
  • .x_t
  • .xmt
  • .xmt_txt
Solid Edge(V19-20,ST - ST10)
  • .par
  • .psm
  • .asm

  • Solid Edge 文件不支持 PMI
SOLIDWORKS(截止到 SOLIDWORKS 2019)
  • .sldprt
  • .sldasm
  • .slddrw
Unigraphics-NX(11.0 到 12.0).prt

ActiveX 控件

ActiveX控件是一种可重用的软件组件,用于在Microsoft Windows操作系统上创建交互式应用程序。它们是基于微软的ActiveX技术,是一种面向对象的软件组件模型。

ActiveX控件可以包含一系列功能和用户界面元素,例如按钮、文本框、图像显示、多媒体播放器等。这些控件可以被其他应用程序调用和使用,以实现各种功能。

通过使用ActiveX控件,开发人员可以利用预先编写好的控件来扩展和增强应用程序的功能,而不必从头开始编写代码。这样可以节省时间和资源,并提高开发效率。

ActiveX控件通常以DLL(动态链接库)文件的形式存在,可以通过注册在系统中进行部署。一旦安装和注册,其他应用程序就可以通过调用控件的接口来使用其功能。

需要注意的是,ActiveX控件在过去主要用于Internet Explorer浏览器上的网页应用程序。然而,随着技术的发展和安全性的考虑,现代浏览器对ActiveX的支持已经减少。因此,现在更常见的是使用其他技术和标准,如HTML5和JavaScript来创建交互式Web应用程序。

1、引言

想要在 Winform 中展示三维模型,通常可以 嵌入 eDrawings 窗口 或者 嵌入 Unity 场景。本文主要探讨如何通过 eDrawings 提供的 API 向 Winform 中添加 EModelView ActiveX 控件以显示 CAD 三维模型。

2、本文使用到的相关软件或产品

  1. Windows 10 专业版 22H2
  2. Visual Studio Community 2022 - 17.6.2
  3. Microsoft .NET Framework 版本 4.8.04084
  4. 「.NET 桌面开发」工作负荷
  5. eDrawings2023 sp02 31.2.0.0035

3、下载并安装 eDrawings Viewer

  1. 要使用 eDrawings 提供的 API ,需要先下载 eDrawings 软件。首先前往下载页面,笔者使用的是 Windows 操作系统,点击 Win Users 下载 Windows 版本的 eDrawings Viewer:
    在这里插入图片描述

  2. 找到 eDrawings (64-bit),点击左侧的下载按钮:
    在这里插入图片描述

  3. 下载完成后双击运行安装向导程序,点击下一步:
    在这里插入图片描述

  4. 来到注册页面,如果有许可证可以输入许可证;但笔者没有,就直接点击下一步了:
    在这里插入图片描述

  5. 点击“安装”以开始安装:
    在这里插入图片描述

  6. 完成页面,点击“完成”:
    在这里插入图片描述

  7. 由于勾选了“启动 eDrawings”所以关闭安装向导后会自动启动 eDrawings,第一次启动会进入产品注册页面,正常填写您的注册信息即可:
    在这里插入图片描述

    🌐 这一步如果无法在线注册的话可能会要求发送电子邮件到swk.edrw-registration@3ds.com,同样正常填写您的注册信息并生成 xml 文件,然后将生成的 xml 文件添加到邮件附件发送给官方,几分钟后就可以收到注册成功的回复了!

  8. 提交注册信息后官方会发送验证码到注册邮箱:
    在这里插入图片描述

  9. 验证成功后,即可进入软件,我们可以尝试先用 eDrawings 打开一个 solidworks 模型。

    如果您还没有任何 CAD 三维模型,可以前往这里下载笔者演示使用的这个轴承模型。

  10. 第一次打开 CAD 模型文件会提示安装 SOLIDWORKS 文档管理程序,点击“下载并安装”即可:
    在这里插入图片描述

  11. 下载完成后双击运行安装向导程序,点击下一步:
    在这里插入图片描述

  12. 点击“安装”:
    在这里插入图片描述

  13. 安装完成后,点击“结束”以退出安装向导:
    在这里插入图片描述

  14. 回到 eDrawings,点击警告对话框的“好的,我现在已安装。”按钮:
    在这里插入图片描述

  15. 然后 solidworks 模型就顺利打开啦,可以看到没有任何问题:
    在这里插入图片描述

    eDrawings 默认使用的“选择”工具;在切换为“平移”工具后,可以通过鼠标左键平移画面以及通过鼠标中键旋转画面。


第四、五、六章主要参考:https://help.solidworks.com/2023/english/api/emodelapi/GettingStarted-emodelapi.html


4、手动生成 eDrawings x64 主互操作程序集DLL

您必须手动生成 Microsoft Visual Studio C# Windows 窗体应用所需要的64位主互操作程序集DLL,因为 Microsoft Visual Studio 是一个32位应用。

💬 值得一提的是,在 Visual Studio 2022 之前,Microsoft Visual Studio 的确是一个32位应用;但是最新的 Visual Studio 2022 已经全面转换为64位应用程序了(了解更多…)。所以如果您使用的是最新的 Visual Studio 2022,那您可以直接跳过第四章

  1. 如果您还没有安装 eDrawings,请先前往安装 eDrawings 20nn x64 版本。

  2. 在您的计算机上定位到 tlbimp.exe

    • .NET Framework 4 及以后,使用 CLR 4.0,路径为:
      C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools
    • .NET Framework 3.5 及之前,使用 CLR 2.0,路径为:
      C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\Bin

    笔者 tlbimp.exe 所在目录为:
    C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools
    在这里插入图片描述

  3. tlbimp.exe 所在文件夹中打开命令提示符窗口:
    在这里插入图片描述

    Windows10 在当前文件夹下清除文件路径并输入 cmd 即可打开命令提示符窗口。

  4. 输入:

    tlbimp.exe "C:\Program Files\Common Files\eDrawings2023\EModelView.dll"
    

    ⚠️ 如果 eDrawings 20nn x64 版本安装在您的计算机上别的位置,请指定您的 EModelView.dll 路径。
    在这里插入图片描述

  5. 检查命令提示符窗口以确认是否返回了 Type 库导入到 EModelView.dll 中的信息:
    在这里插入图片描述

  6. 输入 exit 退出命令提示符窗口。

5、创建一个 C# eDrawings x64 项目

  1. 首先创建 eDrawings x64 EModelView.dll,详见第四章。

  2. 打开 Visual Studio,点击“创建新项目”:
    在这里插入图片描述

  3. 按如图所示筛选后,选中“Windows 窗体应用(.NET Framework)”,点击下一步:
    在这里插入图片描述

  4. 项目名称自行命名即可,笔者就命名为 “eDrawings” 了;项目路径与自己一般项目所在路径一致即可。点击“创建”:
    在这里插入图片描述

  5. 完成之后进入到设计页面,前往 “项目”==>“eDrawings 属性” 打开项目的属性页面:
    在这里插入图片描述

    a. 在“生成”选项卡中将“目标平台”更改为 x64
    在这里插入图片描述

    💬 或者“目标平台”保持为“Any CPU”,仅仅取消下方“首选 32 位”项的勾选也可。
    在这里插入图片描述

    b. 如果您是使用 .NET Framework 4 或者以后创建的 EModelView.dll,确保“应用程序”选项卡中“目标框架”为 .NET Framework 4.n
    在这里插入图片描述

  6. 属性设置完成后,ctrl+S 保存一下就可以关闭属性页面了。

6、向 Visual Studio 添加 EModelView ActiveX 控件

  1. 在完成第五章的内容后,回到设计页面;这个时候我们主要关注右边的“工具箱”停靠窗口:
    在这里插入图片描述

    如果没有“工具箱”窗口,可以前往 “视图”==>“工具箱” 打开。

  2. 在“工具箱”窗口内部空白处右击鼠标,点击“选择项”:
    在这里插入图片描述

  3. 弹出“选择工具箱项”对话框,切换到“COM 组件”选项卡,找到“eDrawings 2023 Control”组件,勾选,然后点击“确定”:
    在这里插入图片描述

  4. 随后就可以在“工具箱”窗口找到“eDrawings 2023 Control”控件了:
    在这里插入图片描述

  5. 然后就可以向窗口添加该控件了:
    在这里插入图片描述

    成功添加控件后项目也会自动添加对 AxEModelViewEModelView 的引用:
    在这里插入图片描述

  6. 设置控件的 Dock 属性为 “Fill”,这样就可以填满整个窗口了:
    在这里插入图片描述

  7. 在设计页面右击,选择“查看代码”即可跳转到代码编辑页面:
    在这里插入图片描述

  8. 使用控件的 OpenDoc() 方法以打开一个 CAD 文件:

    //笔者的控件名称为 “axEModelViewControl1”,实际使用时请根据您的 eDrawings 2023 Control 名称调整代码即可。
    axEModelViewControl1.OpenDoc(@"D:\Visual Studio\source\repos\eDrawings\BAY6205ZZ.sldprt", false, false, true, "");
    

    在这里插入图片描述

    函数原型:

    void AxEModelView.AxEModelViewControl.OpenDoc(string fileName, bool isTemp, bool promptToSave, bool readOnly, string commandString)
    
    参数定义
    fileName文件的绝对路径和文件名称(笔者是将 CAD 文件拷贝到了项目所在文件夹)
    isTemptrue 表示在远程非 eDrawings 文件关闭时删除该文件的本地副本,false 表示保留本地副本
    promptToSavetrue 表示在用户退出而不保存文件时显示对话框,false 表示不显示对话框
    readOnlytrue 表示以只读方式打开文件,false 表示不以只读方式打开文件
    commandString命令字符串,通常指定一个空字符串即可;不要指定 Nothing, Empty 或 vbNullString
  9. 运行成功后如下图所示(在控件区域内鼠标右击还可以查看更多可操作选项):
    在这里插入图片描述


http://www.ppmy.cn/news/500654.html

相关文章

工程图

一、类图 (1)类的属性及成员方法画法 (2)抽象类的画法 如果类是抽象类,类图中的类名字用斜体来表示,如下: (3)B类作为A类的属性 public class A{private B b; }可以看作…

SolidWorks、inventor、UG...我该学哪个?主流三维机械设计软件对比

目前三维CAD市场的主流软件包括SolidWorks、CATIA、Creo(旧称PRO/E)、NX、Auto-CAD等产品。软件这么多,我到底要学哪个?今天我就来对主流的三维机械设计软件来进行一一讲解,帮你选出最适合的软件。 SolidWorks&#x…

如何在并行安装中更改默认的SOLIDWORKS版本?| SOLIDWORKS教程

如果您的计算机上现已安装了多个版本的 SOLIDWORKS ,可能会遇见每次打开 SOLIDWORKS 文件时都是错误版本的情况,这将直接影响我们的效率。在本文中,您将了解到如何在并行安装中更改默认的 SOLIDWORKS 版本 。 在以下例子中,我想确…

SolidWorks工程图中模板与格式的关系

SolidWorks工程图中模板与格式的关系 转载 http://blog.sina.com.cn/s/blog_6a0f6f160102xzk1.html 关键词:图纸格式(.slddrt)、绘图标准(.sldstd)、工程图模板(.drwdot)、工程图文件&#xf…

光模块安规认证简介

背景 认证是指由认证机构证明产品、服务、管理体系符合相关技术规范的强制性要求或者标准的合格评定活动。其中产品认证是通过对产品的不同层级认证实现各级材料的可追溯性。认证按照内容分类大致包括:安全、电磁兼容(EMC)和环保等。按照必要…

【算法设计与分析】期末考试知识总结(知识超浓缩版)

目录 简要介绍 复杂度 迭代 插入排序 二分查找 快排划分 选择排序 计数排序 基数排序 桶排序 递归 递归式的计算-四种方法 欧几里得算法 汉诺塔问题 快速排序 归并排序 堆排序 分治 二维极大点问题 一维最邻近点对 二维最邻近点对 逆序对的数目 凸包 最大字段…

qt udp通信

udp不分客户端和服务器,只需要使用一个类 QUdpSocket 这里写目录标题 界面设计qudpsocketthis按钮 打开按钮 发送 关闭 界面设计 接收框设置为 只读 为ui界面各个模块改名字 本低端口和目标ip框对齐,可以对目标ip 宽度设置 为一样 水平策略 qudpsocke…

表格el-table多出一条横线,怎么解决(el-table表格下方多一条线的问题)

最近在写el-table表格的时候,发现的问题,表格多出一条横线, 可以看出其它行,都是正常显示,只有第7行多出一条横线,找了好久, 最后发现是el-table表格的伪元素,问题就出在这&#xf…