网站首页  词典首页

请输入您要查询的论文:

 

标题 基于二次开发的动态干涉检查系统设计与应用
范文 韦文龙 仲梁维 陈彩凤
摘 要:干涉检查与产品设计研发质量有着密切联系,无论是在组合件装配体或模型的设计生产过程中,都可能避免不了装配体中存在干涉的情况。因此,为快速侦测出存在干涉的位置,进而快速修正干涉现象,干涉检查成为设计人员在建模过程中必不可少的工作。为了在建模装配过程中给设计人员提供高效、便捷的干涉检查方式,以VB.NET作为编程设计平台,结合SQL Server数据库相关知识,利用SolidWorks为软件开发平台,以棱形结构的千斤顶为研究对象,开发了一套动态干涉检查系统。该系统通过人机交互界面,可实现零部件间动态干涉的快速检查,从而显著提升设计效率和产品质量。
关键词:动态干涉检查;SolidWorks;VB.NET;千斤顶
DOI:10.11907/rjdk.172609
中图分类号:TP319
文献标识码:A 文章编号:1672-7800(2018)004-0144-04
Abstract:Interference check is closely related to the quality of product design, research and development. Interference check exists both in component assembly, model design and manufacuring. Therefore it is indispensable for designers to set up models in interference check and necessary and essential to detect interference loaction rapidly so as to achieve rapid detection. In order to provide designers with an efficient and convenient interference check during the modeling and assembly process, we develop a dynamic interference system in which VB.NET is used as the programming design platform and SolidWorks 2016 as the software development platform, and relevant knowledge of SQL Server database is combined to research on prismatic structure lifting jack through human-computer interaction. Rapid inspection of dynamic interference between parts and components is then realized to significantly improve design efficiency and product quality.
Key Words:dynamic interference checking; SolidWorks; VB.NET; lifting jack
0 引言
在經济全球化背景下,企业面临的竞争越来越激烈,设计的产品不仅要满足客户要求,还要保证产品安全可靠。为此引进计算机辅助软件[1],并结合相关编程语言对其进行二次开发,使产品的设计和开发朝着智能化、信息化、快速化的方向发展,从而极大地节约了开发成本和设计时间,增强了企业竞争力。
产品在设计和研发过程中,通常会存在干涉现象。因此,如何快速侦测出干涉,并对其进行有效判断与快速修正,变得极其重要。本文基于SolidWorks二次开发平台,以能上下升降的千斤顶为研究对象,设计出能够实现动态干涉检查的功能系统,对设计人员快速设计出高质量的产品具有积极作用。
1 SolidWorks二次开发原理
SolidWorks是一套基于Windows的CAD/CAE/CAM/PDM集成系统,集设计、分析、加工与数据管理于一体。而SolidWorks API是SolidWorks的OLE应用程序开发接口,用户可以利用它并通过支持OLE编程的开发工具,如VB、VBA、C等对其进行二次开发[2]。
图1为SolidWorks的对象模型层次结构,是一个自上而下的树型结构。
SolidWorks的OLE对象总共可分为10大类,几乎涵盖了所有操作,如建模、修改等基本功能,任何支持OLE和COM的编程语言都可作为SolidWorks的开发工具[3]。SolidWorks二次开发分为两种,一种是基于自动化的,此技术只能开发EXE形式的程序;另一种是基于COM的,将程序内容以DLL插件形式嵌入到SolidWorks菜单栏中。本文以编程语言VB为开发工具[4],采用基于COM的开发方式,通过编程语言访问这些API对象,可以轻松向SolidWorks发出操作指令,令其执行特定动作,从而快速建立适合用户需要的功能模块。
2 装配动态干涉检查系统
2.1 SolidWorks干涉检查
SolidWorks对于干涉检查部分,无论是组合件或零部件于静态、动态环境下都能快速进行干涉检测,且系统会立即以警示窗口提示存在的干涉情况,从而实现快速修正模型的全方位设计功能。
2.2 动态干涉检查系统简介
为解决装配体干涉问题,以编程语言VB开发了一套简易的动态干涉检查系统,可为用户提供便捷的动态干涉检查功能模块[5]。通过调用SolidWorks API,实现了VB与SolidWorks的连接,并通过参数化设计实现动态干涉检查,最后利用SQI. Server数据库读取数据[6],将检查结果以Excel表格形式导出,使用户可从“干涉检查表”中读取到干涉的详细信息。
本系统所使用的“动态干涉检查”不同于SolidWorks自带的“动态干涉检查”,主要体现在本方式结合了“静态干涉”和零部件“位移”的关系,通过程序控制,使零部件位移到指定位置,分别在不同位置进行干涉检查,并实现了每位移一段距离进行一次干涉检查的功能。该系统不仅提高了开发人员的设计效率,还提升了产品开发质量。
2.3 系统设计开发过程
利用编程语言VB开发基于SolidWorks的“动态干涉检查”功能模块,大致分为两个阶段:第一阶段是可视化设计,可利用VB.NET工具箱对界面进行设计,然后通过SolidWorks SDK,在VB与SolidWorks之间建立一座联系的桥梁,使系统嵌入SolidWorks插件菜单中[7];第二阶段是代码编写,可通过VB编程语言和API实现。系统开发流程如图2所示。
3 动态干涉检查系统应用
3.1 装配体选择
“干涉检查”作为一个功能模块,需要对一个具体模型进行识别和操作。因此,需要以一个能进行“位移”的装配体为研究对象。该模型至少包含两个零部件,并且在运行时要求至少选择两个零部件。结合日常生活中的机械设备,本文选择的对象是“千斤顶”,其不仅用途广泛,对加工精度要求也很高,最重要的是其工作方式是上下移动的,满足了本系统开发的基本要求。
3.2 交互式系统界面设计与操作
3.2.1 系统用户界面
用户界面是系统的重要部分,主要由启动模型、位移、干涉检查等按钮组成。功能模块则包括两种检查方式,一种是“手动式”动态干涉检查,另一种是“自动式”动态干涉检查。
3.2.2 系统基本操作流程
“手动式”:输入“高度值H”,点击“位移”按钮,此时系统检测输入的数值是否符合设计要求,如不符合,会提醒用户再次输入,如果符合,模型会位移到指定高度;然后点击“干涉检查”开始检查,结果以Excel表格形式输出,本次检查结束;再输入新的“高度值H”,可进行下一次检查,从而实现装配体在不同位置的干涉检查。
“自动式”:本方式更加智能化与参数化[8],只需分别输入“间隔距离D”和“检查次数N”,点击“一键检查”,如果数值符合要求,则开始“动态干涉检查”,最后得到装配体在N个位置的干涉检查结果。
动态干涉检查系统运行流程如图4所示。
3.3 动态干涉检查系统实现
在复杂装配体中,仅依靠视觉判断装配体是否存在干涉十分困难,以VB作为编程设计平台,依靠API即可实现干涉检查。本系统的“动态干涉检查”是指将“干涉检查”与“位移”结合起来,即在程序中加上一个循环语句,通过调整间隔距离和检查次数,便可实现模型的自动位移和干涉检查。
(1)启动模型。打开SolidWorks,进入系统操作界面[9],在进行干涉检查前,需要先打开某一装配体,具体程序如下:
SwApp=CreateObject("sldworks.application")
part=SwApp.OpenDoc("路径.SLDASM",2,0,"",longstatus,longwarnings)
SwApp.ActivateDoc("模型名称.SLDASM",False,longstatus)
part=SwApp.ActiveDoc
(2)位移。由于实现“动态干涉检查”的基本要求是使零部件动起来,并且不能破坏零部件的装配关系,利用基准面的配合关系,不仅能使零部件动起来,还能设置其位移距离,主要代码如下:
part.EditUnsuppress()
boolstatus=part.Extension.SelectByID2("基准面","PLANE",0,0,0,False,0,Nothing,0)
part.ActivateSelectedFeature()
……
myDimension=part.Parameter("D1@基准面")
myDimension.SystemValue=Val(310-TextBox3.Text*(O-1))/1000
boolstatus=part.EditRebuild3()
其中,myDimension是关于位移距离的变量,在全局加一个循环语句,通过该变量的赋值,可使模型依次位移到指定位置。
(3)进行动态干涉检查,通过调用API函数,实现了“干涉检查”功能,主要程序如下:
nSelCount=swSelMgr.GetSelectedObjectCount
ReDimCompArray(nSelCount-1)
vCompArray=CompArray
swAssy.ToolsCheckInterference2(nSelCount,(vCompArray),False,vIntCompArray,vIntFaceArray)
If (IsNothing(vIntCompArray)) And (IsNothing(vIntFaceArray))
其中If (IsNothing(vIntCompArray)) And (IsNothing(vIntFaceArray))的作用是判斷是否存在干涉,swAssy.ToolsCheckInterference2是进行干涉检查的关键代码。在模型中的运行效果如图5所示。
(4)使存在干涉的部分高亮显示,代码如下:
……
swFace.Highlight(True)
bRet=swEnt.Select2(True,0)
Next i
For i=0 To UBound(vIntCompArray)
swComp=vIntCompArray(i)
bRet=swComp.Select2(True,0)
Next i
(5)详细干涉结果。通过以下代码可得到干涉结果详细信息:
pIntMgr=swAssemblyDoc.InterferenceDetectionManager
……
pIntMgr.CreateFastenersFolder=True
pIntMgr.IgnoreHiddenBodies=True
pIntMgr.UseTransform=True
pIntMgr.NonInterferingComponentDisplay=value
vInts=pIntMgr.GetInterferences
ret=pIntMgr.GetComponentsAndTransforms(vComps,vTrans)
……
vComps=interference.Components
swApp.SendMsgToUser("干涉序数:"&(i+1)&"干涉的组件个数:共"&interference.GetComponentCount;&"个"&"干涉的总面积:"&(V)&"mm^3")
pIntMgr.Done()
3.4 数据库应用
在查看干涉结果的方式上,最先采用的是弹窗形式[10],后来考虑到操作的简便性,以SQL Server提供数据支持,加上程序识别的干涉信息,最后以Excel表格形式列出干涉结果,不仅可一目了然地查看结果,还有利于数据存储。干涉检查表样式如图6所示。
4 结语
本文以千斤顶为研究对象,以SolidWorks软件为开发平台,以VB为编程语言对SolidWorks进行二次开发,研发出一套动态干涉检查系统,不仅可为开发类似功能的系统提供参考,也为企业未来在虚拟装配领域的二次开发奠定基础。本系统功能的实现,不仅提高了开发人员设计效率,避免时间花费大量时间重新设计及建构原型,降低了公司的人力与时间成本,同时提升了产品质量和企业竞争力。
参考文献:
[1] 湛迪强,孔杰.SolidWorks 2014快速入门、进阶与精通[M].北京:电子工业出版社,2014.
[2] 江洪,李仲兴,邢启恩.SolidWorks2003二次開发基础与实例教程[M].北京:电子工业出版社,2003.
[3] 陈超祥,胡启登.SolidWorks高级教程简编[M].北京:机械工业出版社,2015.
[4] 林卓然.VB语言程序设计[M].北京:电子工业出版社,2012.
[5] 钱海军.Visual Basic项目案例开发实战[M].北京:清华大学出版社,2016.
[6] 张昊,高晶.SQL Server 2008数据库原理及应用教程[M].北京:清华大学出版社,2016.
[7] 鲍东,仲梁维.利用参数化设计技术的起重机快速设计研究[J].现代制造工程,2014(1):2-4.
[8] 张峰,李前兆,黄传真.参数化设计的研究现状与发展趋势[J].机械工程师,2002(1):13-15.
[9] 沈斌,宫大.产品广义参数化设计的研究[J].计算机工程与应用,2006,31(1):94-96.
[10] 孙毅.对称驱动剪式升降平台设计及研究[D].昆明:昆明理工大学,2012.
(责任编辑:黄 健)
随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/11 4:28:14