找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

solidworks参数化二次开发,减少重复设计为缩短企业设计周期

单人床| 2018-12-25 10:07 阅读 705 评论 0

首先对 SolidWorks 二次开发技术进行研究,包括 SolidWorks API、Simulation API 对象模型及 API 的具体功能。在结构分析的基础上,对系统进行整体设计并根据功能进行模块划分,对 Access 数据库设计、用户界面开发以及 ADO.NET 数据库访问技术等相关技术进行研究。

对插件开发的关键技术进行探究,包括开发模板准备、插件注册与加载、菜单设计以及创建回调函数等,将开发的软件生成插件并嵌入到 SolidWorks 中,在SolidWorks 中实现机架 CAD/CAE 一体化设计。

为满足带式输送机机架快速设计的要求,降低设计成本,提高设计质量及效率,本文根据 DTII 型带式输送机机架的特点,结合实际情况及生产需要,利用 OLE(Object Linking And Embedding)技术,以 Visual Studio 2010 为开发工具,以 Access 2010 作为后台数据库,对 SolidWorks 及 SolidWorks Simulation 进行二次开发,建立集参数化设计、自动装配、自动创建工程图以及自动分析等功能为一体的机架 CAD/CAE 系统,并以插件的形式嵌入 SolidWorks。主要研究内容如下:

(1)通过 SolidWorks 二次开发实现机架参数化设计,研究和总结 SolidWorks 二次开发的实现方法、接口对象及 API 功能。

(2)研究整体结构及技术标准,对 CAD/CAE 系统进行总体设计,并根据功能对其进行模块划分。

(3)建立系列零件库,分析研究机架组成部件的结构特征,利用 SolidWorks 绘制零件模板;设计参数数据库和用户交互界面,研究数据库访问技术,利用 ADO.NET 技术将 Access 数据库与界面联接,实现数据的访问及操作。

(4)开发机架 CAD/CAE 系统,研究机架参数化设计及分析的流程及实现方法,结合 Visual Studio 软件,利用 VB.NET 语言编写程序代码,并生成 EXE 文件。

(5)研究 SolidWorks 插件的开发方法,链接所有 EXE 文件,利用 SolidWorks API SDK 开发插件并生成 DLL 文件,将开发的插件嵌入 SolidWorks。

solidWorks 是一款优秀的三维设计软件,具有强大的特征造型能力,同时支持参数化驱动。它具有良好的开放性和兼容性,提供完整的、免费的二次开发工具 API,以便用户使用支持 OLE 的编程语言建立自己的应用方案。本文对 SolidWorks 进行二次开发,创建 CAD/CAE 系统的技术路线如图所示。

二次开发方式

SolidWorks 二次开发方式有两种:一种是进程外组件程序开发,即开发成独立应用程序(EXE);另一种是进程内组件程序开发,即开发成 SolidWorks 插件(DLL)。 独立应用程序具有单独的内存地址和系统资源,通过调用 API函数操作 SolidWorks。它与 SolidWorks 的工作状态互不影响,即程序的异常不影响 SolidWorks 运行。开发时,需引用库文件:SldWorks version Type Library、SolidWorks version Constant type library,然后在编程软件中依次编辑、调试,直到生成 EXE 文件。由该方式开发的应用程序,不能在 SolidWorks 中添加自定义菜单、工具栏和属性页等快捷操作方式,只能采取外挂的工作方式,即需要在应用程序和 SolidWorks 之间进行前后台的切换,相对于插件形式的应用程序,运行效率较低。 插件以动态链接库形式嵌入到 SolidWorks 中,与 SolidWorks 共享内存地址和系统资源,但应用程序的异常可能会导致 SolidWorks 运行不稳定。插件形式下,当 SolidWorks需调用应用程序时,可以通过插件管理器将其装入 SolidWorks 内存空间;反之,当不需要应用程序服务时,通过插件管理器将其移出内存,释放内存空间供其他程序使用,这样极大地提高了程序运行效率。在开发插件形式的应用程序时,应更加注意代码的准确性、可读性。开发时,可以使用SolidWorks公司提供的API SDK,调用AddCommandItem2、PropertyManager pages 等方法在 SolidWorks 中添加自定义菜单、工具栏、属性页等快捷方式,使应用程序与 SolidWorks 融为一体,自定义插件菜单如图 所示。

二次开发方法

SolidWorks 二次开发方法有两种,一种是编程法,一种是尺寸驱动法。

编程法是用程序表示设计整个流程,将设计中的所有关系式全部通过程序表达,按照建模顺序编写相关代码。这种方法不需要单独构建模型,但每更新一次模型都要从头至尾执行一次代码。以创建圆柱为例,编程代码如下:

boolstatus = Part.Extension.SelectByID2("前视基面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)’选择前视基准面 Part.SketchManager.InsertSketch True’插入草图

Set skSegment = Part.SketchManager.CreateCircle(0#, 0#, 0#, 0.042579, 0.000541, 0#)

创建半径为 50mm 的圆

Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, 0.1,

0.01, False, False, False, False, 1.74532925199433E-02, 1.74532925199433E-02, False, False, False, False, True, True, True, 0, 0, False)’拉伸草图

编程法涉及大量的 SolidWorks API,需要开发人员对 API 功能及其方法、属性有一定了解。为减轻编码工作量,可以借助 SolidWorks 宏工具,录制整个设计建模过程,根据编码需要,修改、调试录制的代码。但是 SolidWorks 宏工具只能在零件、装配以及工程图环境下使用,而在 Simulation 环境下,只能根据分析流程逐条编写代码。 尺寸驱动法是在保持模型结构不变的情况下,将模型的尺寸标注视为变量,通过给予不同的尺寸值,从而获得一系列结构相同而尺寸不同的系列零件。这种方式不需要整个建模过程的代码,只需要打开模型、修改尺寸以及模型重建等过程的少量代码,具有较强的实用性和操作性。由于这种方法在参数化设计建模过程中并不创建新的模型,而只是在原有模型的基础上改变相应的尺寸。因此使用这种开发方式时,需要先根据零部件结构特征,创建用于改变尺寸的模板。

SolidWorks 宏工具

宏是一些组织有序的用来完成特定任务的程序代码,实际上就是命令集合,相当于AutoCAD 中的脚本文件,是实现 SolidWorks 二次开发最快、最简单的编程方法。它包含与 SolidWorks 界面操作相同的 SolidWorks API 调用,可以记录界面操作并将其转化为程序代码。宏程序使用的 Visual Basic for Applications(VBA)语言属于 Basic 语系,是一种在应用程序中通用的自动化编程语言,具有与 VB.NET 相似的语言结构,因此录制的宏代码可放入 VB.NET 程序中使用。 宏工具内嵌在 SolidWorks 中,操作界面如图 所示。它仅能记录 SolidWorks 操作,难以识别、筛选有效操作。当进行视图操作时,如更改视图方向、大小以及模型空间位置等,将会产生大量无用的代码,如下所示:

Dim myModelView As Object

Set myModelView = Part.ActiveView

myModelView.RotateAboutCenter -4.82968123904728E-03, -1.18231981586713E-02

因此,使用宏录制必须合理规划界面操作顺序,然后通过嵌入在 SolidWorks 中的VBA 工具集或 MVSA 工具集,记录、编辑和调试宏代码,完成宏录制。

文章点评