摘要: SolidWorks 是流行的三维设计软件, 介绍了SolidWorks 三维设计软件的特点和二次开发方法, 研究了利用VB 基于Act iveX Automation 技术对SolidWorks 软件进行二次开发实现参数化设计的过程, 以及开发过程中用到的工程数据库访问技术, 最后以滚动轴承为例进行了验证, 实现了机械产品的参数化设计。

关键词: VB; SolidWorks; 参数化设计; ActiveX 自动化

南京东岱信息技术有限公司有一大批技术精湛的solidworks技术工程师,他们可以给你解决一些技术上面的问题。

1 SolidWorks 软件的开发方法

SolidWorks 软件是世界上第1 个基于Windows开发的三维CAD 系统, 是目前市场上所见到的三维CAD 解决方案中设计过程最简便、最方便的三维机械产品设计软件。SolidWorks 提供了几百个功能强大、免费的API, 应用程序接口) 函数, 以方便用户根据需要进行二次开发。API 函数是OLE( 对象链接或嵌入) 和COM( 组件对象模型) 的接口, SolidWorksAPI 是一个自上而下多层次的树形网络结构, 每一层又包括若干个对象, 其部分组织结构如图1 所示, 最顶层是应用程序级对象SldWorks, 该对象中封装了很多方法和属性, 在SldWorks 对象下面又定义了若干个子类, 如Environment、Frame, 每个对象又有自己的属性、方法和事件。在这些接口对象中封装的有关方法和属性, 涵盖了全部的SolidWorks 数据模型, 用户通过客户应用程序对这些API 对象及其方法和属性的操作, 实现对SolidWorks 的功能定制与扩展。在Solidworks 中加入ActiveX 自动化服务功能(ActiveX Automation ServerCapability) , 用户可以通过支持Act iveX 的可视化编程工具如Visual Basic、Visual Basic for Applicat ions (VBA) 、Visual Basic . NET、V-isual C# . NET、Visual C + + 6. “ 、Visual C+ + .NET、Delphi、SolidWorks 宏文件等进行快速开发, 实质是通过客户端应用程序来控制服务端的对象、方法和属性, 实现某种功能, 在利用VB 语言开发SolidWorks 的过程中, VB 开发的应用程序是客户端。

VBA 是VB 开发语言的子集, 常嵌套于支持ActiveXAutomation 技术的应用程序中, 如Microsoft Office、AutoCAD、SolidWorks 等, 其功能是实现应用程序的自动化、增强系统的功能以及满足用户的需求。由于必须依赖于应用程序而不能生成可执行文件,所以不能独立发布程序, 但其快速的开发过程和卓越的开发能力使其他语言无法比拟。VB 作为功能强大的面向对象开发工具, 可以创建标准应用程序、动态链接库、Act iveX 控件等, 许多应用程序均基于该种语言进行开发, 本文中滚动轴承的参数化设计实例就是基于这种工具进行的。

2 参数化图形设计

所谓参数化设计是指设计图形的拓扑关系不变, 尺寸形状由一组参数进行约束, 参数与图形的控制尺寸有显式的对应。参数化设计与传统设计相比, 最大的特点是它储存了整个设计过程, 使工程技术人员可以通过更改某些约束参数的数值即可快速获得不同的零件。SolidWorks 环境下参数化设计一般有2 种形式: ¹ 由软件本身提供的特征造型功能而实现的参数化设计, 如拉伸的深度、截面圆的半径大小等, 可以编辑修改, 这种方法不需要用户编程,只要熟练掌握特征造型功能即可; º 基于ActiveXAutomation 技术由内嵌的VBA 或其他二次开发语言编程实现的参数化设计, 通过定义的若干参数进行驱动绘图, 这种方法对编程人员的综合能力要求较高, 既要有较强的编程能力, 还要熟练掌握Solid Works 的零件设计过程。

在利用Visual Basic 开发SolidWorks 参数化设计的过程中, 一般应遵循的步骤是: ¹ 参数定义; º 参数取值; » 实体生成与编辑。

2. 1 参数定义

在基于尺寸驱动的参数化图形设计中, 一般是外形轮廓相对固定而只在尺寸上有数值差异的系列图形, 因此对这些零部件图形的处理主要是定义各外形轮廓的尺寸变量名称, 在定义过程中, 对参数的命名应本着简化、形象、完整的原则, 既不能有多余的尺寸而构成过约束, 也不能有遗漏的尺寸而构成欠约束, 过约束和欠约束的情况均无法实现图形的设计, 个别位置尺寸需要由尺寸链进行求解。

2. 2 参数取值

在机械零部件的参数化设计中, 对于尺寸参数的取值, 一般都对应一系列的尺寸数值, 而这些尺寸数值在有关的机械设计手册中一般表现为数据表格、图表曲线、图形以及计算公式的形式, 有些表格样式比较复杂且存在部分交叉现象, 在参数化设计过程中, 若每次都要进行手工查询, 需要花费一定的时间, 且不能保证数据读取或计算的准确性。在进行参数化设计之前, 引入比较成熟的工程数据库技术, 将涉及到的有关表格进行简化或整理, 构成一种关系型数据库表格, 在设计过程中就可以按照要求,利用SQL( 结构化查询语言) 进行条件检索, 能缩短检索时间、准确性高、并提高计算精度。常用的数据库系统有Microsoft Access、Microsoft SQL Server、Oracle等多种, 由于桌面数据库Microsoft Access 具有小巧灵活、支持SQL 语言、可以通过ODBC 管理、存储多种数据类型、支持Windows 的各种操作系统等优点, 广泛应用于各种工程设计的数据存储处理中。

对于访问数据库表格数据内容的方法, 通常可以采用ODBC、DAO、RDO、ADO 等方式, ADO( ActiveXData Object) 是Microsoft 公司为在Internet 网络上发布数据库而推出的最新产品, 建立在自动化基础上,能够访问任何兼容ODBC 或OLEDB 的数据库, 具有高度的伸缩性、支持连接池、复杂的数据操作、断开的记录集及编程简单和方便的优点。ADO 主要由Connection 对象、Command 对象、RecordSet 对象、Fields 集合与对象、Parameters 对象与集合、Errors 对象与集合等组成。在VB 中使用ADO 时, 应先加载对ADO 对象的引用, 即点击执行菜单/ 工程” y/ 引用”y/ Microsoft Act iveX Data Objects 2. 5 Library”。由于计算机安装的应用程序中对应的ADO 版本有差异, 所以在出现的引用对话框中也可能有多个版本的ADO 库文件, 应根据需要以及有关的操作选用具体版本, 并非版本越高越好, 例如程序中若用到ADO 的MoveComplete 事件, 则不同版本中的定义形式不同。

2. 3 实体生成与编辑

SolidWorks 提供了拉伸、旋转等多种特征造型工具, 用户重复或组合使用这些工具可以比较轻松地完成复杂零件的三维图形设计, 但是在对其进行二次开发的过程中应该使用哪些API 函数以及如何使用这些函数进行特征造型和视图切换, 是编程开发中面临的难题, 很多人感觉无从下手。由于VBA 常用于录制宏代码, 可提供一种便捷的途径, 即按照零件的实际设计过程由用户预演的方式, 通过启用/ 录制宏”的功能, 具体是执行菜单命令/ 工具” y / 宏操作” y/ 录制”, 在SolidWorks 环境下使用拉伸、切除等特征造型工具完成整个设计过程, 将本次零件设计全过程录制成宏代码( 后缀是swp 的文件) , 然后用VBA 环境打开刚才录制的宏, 将其中一些关键数据用参数名称进行替换, 修改文档对象名称, 最后将这些代码拷贝到VB 环境下, 即可得到该零部件参数化设计的源代码。

3 设计实例

滚动轴承是一种应用非常广泛的标准零件, 其结构主要由外圈、内圈、保持架和滚动体等组成。传统的轴承参数化设计一般采用分别建立各组成零件然后装配自底向上的建模方法, 为减少文件操作, 降低零件的装配复杂度, 将其作为一个文件进行设计和管理。

( 1) 参数定义

轴承参数化标注如图2 所示, 定义的参数有轴承外径D 、轴承内径d、滚动体直径R、外圈壁厚B 1以及内圈壁厚B2。有关的计算A = ( D - d )P2, B1= 3AP8, B2= 3AP8, R = AP4。

( 2) 参数选择

根据对滚动轴承国家标准有关数据的研究, 本着构建、查询方便的原则, 筛选出本次参数化设计中有用的数据, 采用Microsoft Access 2”““ 桌面数据库系统, 定义存储表格的字段类型、字段长度和表格名称等内容。

设计中以轴承中间孔的直径d 作为查询的依据, 在VB 工程中引用/ SldWorks 2”“4 Type Library”和/ Microsoft ActiveX Data Objects 2. 5 Library”类型库, 定义ADO 连接对象和记录集对象, 参照如下代码可实现对数据库的访问, 并获得轴承大径尺寸、轴承宽度、安装尺寸等数据。

Dim Conn As New ADODB. Connection

Dim RS As New ADODB. Recordset

Conn. Open “Provider= Microsoft. Jet. OLEDB. 41”;

Data Source= 轴承数据库. mdb”

RS.Open “select * from 轴承数据表where 轴径

d= “ & D”, Conn, 1, 1

If RS. EOF Then

D= “

Else

D= RS. Fields( “轴承大径D”) .Value

End If

RS. Close: Conn. Close

( 3) 实体生成与编辑

以下程序用于Visual Basic6. “ 建立与SolidWorks

的连接以及创建和保存图形文件。

Dim swApp As SldWorks. SldWorks

Set swApp = GetObject ( , “ SldWorks. Applicat

ion”)

If Err Then

Set swApp = CreateObject ( “ SldWorks. Applicat

ion”)

If Err Then

MsgBox”无法创建SolidWorks”

Exit Sub

Else

swApp. Visible = True

End If

End If

swApp.Visible = True

0PatFilePath = 0E: \ Program Files \ SolidWorks

\ data \ templates \ 零件. prtdot0

Set Part = swApp. NewDocument ( PatFilePath, 0,

0# , 0# )

Part. SaveAs2 SavedFile, 0, False, False

根据前面查表得到的参数值, 依次绘制轴承外圈、轴承内圈、滚道和滚动体等实体零件, 最后对生成的滚动体进行圆周阵列。在设计过程中将会用到SelectByID( 选择草图、基准轴等图形对象) 、ClearSelection2( 清除选择) 、CreateCircle ( 绘制圆) 、ShowNamedView2(显示视图) 、FeatureExtrusion( 拉伸特征) 、FeatureRevolveCut ( 旋转切除特征) 、ActivateSelectedFeature(激活选中特征) 、FeatureCirPattern( 圆周阵列特征) 等方法。生成的三维模型如图3 所示。

南京东岱信息技术有限公司目前主要从事销售solidworks以及技术支持solidworks







 

发表于: 2014-03-21 13:42 阅读(18386) 评论(16) 收藏 好文推荐

本博客所有内容,若无特殊声明,皆为博主原创作品,未经博主授权,任何人不得复制、转载、摘编等任何方式进行使用和传播。

作者该类其他博文:

评论列表
# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-22 10:08 | MrWorm | 1楼
利用vb对solidworks进行二次开发非常方便

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-23 16:20 | SAIIASA | 2楼
solidworks是一款强大的三维设计软件,大家支持一下!

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-25 20:59 | blueocean01 | 3楼
利用vb对solidworks进行二次开发非常方便

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-26 13:47 | 932841651 | 4楼
能实现solidworks参数化设计那是很不错的,如那个企业有这方面的需求可以找我51887857

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-26 16:29 | ddsoftdjg | 5楼
VB能够帮助Solidworks实现参数化设计

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-26 20:26 | Zoe1986 | 6楼
solidworks三维设计软件,参数化设计提高工作效率。

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-28 11:28 | 3级死灵书 | 7楼
文章写得不错,值得一读。

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-29 09:33 | ddsoftdjg | 8楼
SolidWorks实现机械产品参数化设计可以帮助设计人员提高效率

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-29 13:24 | WOU1989 | 9楼
支持一下![good]

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-29 15:25 | 伊豆 | 10楼
利用vb对solidworks进行二次开发非常方便!!!

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-29 20:05 | weisir1dds | 11楼
solidworks的接口做的很好,二次开发容易

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-29 21:25 | ddschen | 12楼
Solidworks给客户带来的就是方便、高效。看得见的经济效益!

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-29 22:03 | sxg020 | 13楼
南京东岱软件是一家实力雄厚的公司.提供多种专业的解决方案

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-30 09:50 | 1TOM1 | 14楼
SolidWorks是南京东岱软件代理的三维设计软件,听说他们的工程师很专业,售后也很好,二次开发水平也很高哦。

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-04-30 13:20 | Muxe | 15楼
VB开发SolidWorks实现机械产品参数化设计

# re: VB开发SolidWorks实现机械产品参数化设计
引用
2014-05-04 07:53 | miss4Byouth | 16楼
Solidworks三维设计软件,功能很强大。参数化设计功能提高了工作效率。 南京东岱软件的solidworks真好,收藏着!


发表评论(网友发言只代表个人观点,不代表本网站观点或立场。)

您尚未登录,请先【登录或注册

公告


南京东岱软件技术有限公司

有任何技术问题或者产品需求可以及时联系我们。

网址:www.ddsoft.com.cn

地址:南京市广州路199号天诚大厦14楼

联系方式:025-51887879/56    邮箱:chenhui@ddsoft.com.cn

三维设计软件SolidWorks /CAMWorks /ProCAM/专业钣金软件Radan/材料成本管理软件/PLM/PDMcrack


个人档案

<2019年9月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

最近来访

留言簿(1)

文章分类

文章档案

相册

友情链接


最新评论

UI欧--薛高斌
怎么可以看到内容啊!--qsgq7777
比较的很详细,--Szwf92618
对比很明显啊--李丶伟
SolidWorks,简单,易学,易用。--1TOM1
radan和maxxcam都不错哦!--1TOM1
这个比较还是不错的嘛,很值得我们考虑与探讨。--932841651
这个方式很不错,很实用的技巧--932841651
1111--ddsoft01
好马就得配好鞍!--bz1016
调整参数,功能很强大!--bz1016
SOLIDWORKS 2017通过在DELL工作站测试,性价比还是可以的。--ddsoftdjg
好文章,有利于厂家找到符合自己需要的软件--ddsoftdjg
SOLIDWORKS 2017增加很多功能,更人性化,实用!!!--伊豆
综合比较起来,还是Radan的功能看起来最强大--仙剑专家