找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 17140|回复: 18
打印 上一主题 下一主题

[讨论] VB 开发SolidWorks 实现机械产品参数化设计

[复制链接]
跳转到指定楼层
1
发表于 2014-3-28 10:21:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
VB 开发SOLIDWORKS实现机械产品参数化设计
摘要: 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 forApplicat ions (VBA) 、Visual Basic . NET、V-isual C# . NET、Visual C + + 6. “ 、Visual C+ + .NET、Delphi、SolidWorks 宏文件等进行快速开发, 实质是通过客户端应用程序来控制服务端的对象、方法和属性, 实现某种功能, 在利用VB 语言开发SolidWorks 的过程中, VB 开发的应用程序是客户端,
file:///C:/Users/deng/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
图1 SolidWorks 的对象模型
VBA 是VB 开发语言的子集, 常嵌套于支持ActiveXAutomation 技术的应用程序中, 如Microsoft Office、AutoCAD、SolidWorks 等, 其功能是实现应用程序的自动化、增强系统的功能以及满足用户的需求。由于必须依赖于应用程序而不能生成可执行文件,所以不能独立发布程序, 但其快速的开发过程和卓越的开发能力使其他语言无法比拟。VB 作为功能强大的面向对象开发工具, 可以创建标准应用程序、动态链接库、Act iveX 控件等, 许多应用程序均基于该种语言进行开发, 本文中滚动轴承的参数化设计实例就是基于这种工具进行的。
2 参数化图形设计
所谓参数化设计是指设计图形的拓扑关系不变, 尺寸形状由一组参数进行约束, 参数与图形的控制尺寸有显式的对应。参数化设计与传统设计相比, 最大的特点是它储存了整个设计过程, 使工程技术人员可以通过更改某些约束参数的数值即可快速获得不同的零件。SolidWorks 环境下参数化设计一般有2 种形式: 1 由软件本身提供的特征造型功能而实现的参数化设计, 如拉伸的深度、截面圆的半径大小等, 可以编辑修改, 这种方法不需要用户编程,只要熟练掌握特征造型功能即可; o 基于ActiveXAutomation 技术由内嵌的VBA 或其他二次开发语言编程实现的参数化设计, 通过定义的若干参数进行驱动绘图, 这种方法对编程人员的综合能力要求较高, 既要有较强的编程能力, 还要熟练掌握Solid Works 的零件设计过程。
在利用Visual Basic 开发SolidWorks 参数化设计的过程中, 一般应遵循的步骤是: 1 参数定义; o 参数取值; » 实体生成与编辑。
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 iveXData 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。
file:///C:/Users/deng/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
( 2) 参数选择
根据对滚动轴承国家标准有关数据的研究, 本着构建、查询方便的原则, 筛选出本次参数化设计中有用的数据, 采用Microsoft Access 2”““ 桌面数据库系统, 定义存储表格的字段类型、字段长度和表格名称等内容。
设计中以轴承中间孔的直径d 作为查询的依据, 在VB 工程中引用/ SldWorks 2”“4 Type Library”和/ Microsoft ActiveXData Objects 2. 5 Library”类型库, 定义ADO 连接对象和记录集对象, 参照如下代码可实现对数据库的访问, 并获得轴承大径尺寸、轴承宽度、安装尺寸等数据。
Dim Conn As NewADODB. 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 AsSldWorks. 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 所示。
file:///C:/Users/deng/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif
图3 滚动轴承三维模型
南京东岱信息技术有限公司目前主要从事销售solidworks以及技术支持solidworks。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2014-4-22 10:09:50 | 只看该作者
利用vb对solidworks进行二次开发非常方便
3
发表于 2014-4-23 16:22:49 | 只看该作者
solidworks是一款强大的三维设计软件,大家支持一下!
4
发表于 2014-4-25 21:01:16 | 只看该作者
利用vb对solidworks进行二次开发非常方便
5
发表于 2014-4-26 13:49:37 | 只看该作者
能实现solidworks参数化设计那是很不错的,如那个企业有这方面的需求可以找我51887857
6
发表于 2014-4-26 20:29:58 | 只看该作者
solidworks三维设计软件,参数化设计提高工作效率。
7
发表于 2014-4-27 19:56:54 | 只看该作者
利用vb对solidworks进行二次开发非常方便!!!
8
发表于 2014-4-28 09:53:57 | 只看该作者
VB 开发SolidWorks实现机械产品参数化设计,扩充了solidworks的新功能
9
发表于 2014-4-28 09:54:35 | 只看该作者
ddsoft_djg 发表于 2014-4-28 09:53
VB 开发SolidWorks实现机械产品参数化设计,扩充了solidworks的新功能

是的,值得支持一下。
10
发表于 2014-4-28 11:29:49 | 只看该作者
文章写得不错,值得一读。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-23 20:40 , Processed in 0.024936 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表