




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文通过一个小程序着重讲述了如何在Microsoft Visual Basic编程环境中使用Solidworks API 的技术, 进行参数化地改变3D立体图形。其它更多的应用可由此延伸出去。 .*Microsoft Visual Basic与Solidworks的接口技术摘要:本文着重讲述了如何在Microsoft Visual Basic编程环境中使用Solidworks API的技术,及其在工控领域内的应用。关键词: Interface, API1 前言 伴随着计算机技术的发展, 在工控领域内, 人们越来越不能对计算机屏幕只作为数字显示器感到满意, 人们需要对机器更直观的显示及更方便的控制。 目前一个简单的办法是使用“组态“软件, 但它的价格对小型机器太贵了一点, 另外, 它的共性较多, 不可能满足各行业所有用户的需求。 在这种情况下, 我们可以自己编程来仿真机器的运动, 当然, 一个必不可少的前提是机器的控制及反馈信号都可经由计算机识别和处理。本文通过一个小程序着重讲述了如何在Microsoft Visual Basic编程环境中使用Solidworks API 的技术, 进行参数化地改变3D立体图形。其它更多的应用可由此延伸出去。2 在Solidworks中自动生成一个程序模板这可以通过宏记录来实现. 具体步骤如下:2.1 绘制一个草图a) 打开所要进行修改的零件;b) 在宏工具条上点击记录停止宏 按钮;c) 选择一个平面作为草图绘制平面;d) 在草图工具条上点击草图按钮, 插入一个草图;e) 在标准视图工具条上点击向上按钮;f) 在草图工具条上点击圆按钮;g) 在草图绘制平面上以中心为圆心画一个圆的草图;h) 在特征管理器中将半径设置为15(或其它值);i) 点击确定.2.2 创建一个特征a) 在特征工具条上点击剪取按钮;b) 在特征管理器中,在方向1下设置:结束条件为盲孔深度为25(或其它值);c) 点击确定. 此时在零件所选取的面上创建了一个半径15mm,深度为25mm的孔.d) 点击停止宏按钮以停止记录宏;e) 在另存为.对话框中选出要存储宏文件的文件夹;f) 在文件名栏里键入宏文件名,如MacroCut ,此时, 自动将.swp作为扩展名,表明该文件是一个Solidworks 宏文件.g) 点击保存.此时的程序大致如下:Dim swApp As ObjectDim Part As ObjectDim boolstatus As BooleanDim longstatus As Long, longwarnings As LongDim FeatureData As ObjectDim Feature As ObjectDim Component As ObjectSub main()Set swApp = Application.SldWorksSet Part = swApp.ActiveDocPart.ClearSelection2 TruePart.CreateCircle 0, 0, 0, -0.02057158807497, 0.004219588533317, 0Part.ClearSelection2 Trueboolstatus = Part.Extension.SelectByID(Arc1, SKETCHSEGMENT, 0, 0, 0, False, 0, Nothing)Part.FeatureManager.FeatureCut True, False, False, 0, 0, 0.025, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1Part.SelectionManager.EnableContourSelection = 0End Sub此程序只能在Solidworks环境中执行, 包含了一些冗余的语句, 也没有参数化功能.3 在Visual Basic 中运行宏为使所记录的宏能够在Visual Basic中运行, 需做如下修改:a) 在程序中添加Part.InsertSketch2 True, 允许插入草图;b) 在程序的开始出添加语句Option Explicit , 确保每个变量先定义后使用.c) 去除没有用到的变量 Dim longstatus As Long, longwarnings As Long Dim FeatureData As Object Dim Feature As Object Dim Component As Objectd) 修改变量SwApp, Part的定义, 使其与Solid Works软件关联起来. Dim swApp As SldWorks.SldWorks Dim Part As SldWorks.ModelDoc2此时程序应当如下:Option ExplicitDim swApp As SldWorks.SldWorksDim Part As SldWorks.ModelDoc2Dim boolstatus As BooleanSub main()Set swApp = Application.SldWorksSet Part = swApp.ActiveDocPart.InsertSketch2 TruePart.ClearSelection2 TruePart.CreateCircle 0, 0, 0, -0.02057158807497, 0.004219588533317, 0Part.ClearSelection2 Trueboolstatus = Part.Extension.SelectByID(Arc1, SKETCHSEGMENT, 0, 0, 0, False, 0, Nothing)Part.FeatureManager.FeatureCut True, False, False, 0, 0, 0.025, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1Part.SelectionManager.EnableContourSelection = 0End Sub其中关键函数Part.FeatureManager.FeatureCut解释如下:描述 :创建一个切割特征语法(OLE自动化)pFeat = FeatureManager.FeatureCut ( sd, flip, dir, t1, t2, d1, d2, dchk1, dchk2, ddir1, ddir2, dang1, dang2, offsetReverse1, offsetReverse2, translateSurface1, translateSurface2, normalCut, useFeatScope, useAutoSelect )sd, TRUE表示一端, FALSE表示二端flip, TRUE表示去除轮廓材料, FALSE表示不去除dir, TRUE表示方向1作为缺省方向的反向t1, 第一个末端的结束类型t2, 第二个末端的结束类型d1, 第一个末端的深度(单位:米)d2, 第二个末端的深度(单位:米)dchk1, TRUE允许方向1有倾角, FALSE表示不允许dchk2, TRUE允许方向2有倾角, FALSE表示不允许ddir1, TRUE表示方向1向内倾角, FALSE表示向外倾角ddir2, TRUE表示方向2向内倾角, FALSE表示向外倾角dang1, 方向1倾角dang2, 方向2倾角offsetReverse1, TRUE表示方向1的偏移方向远离草图, FALSE表示指向草图offsetReverse2, TRUE表示方向2的偏移方向远离草图, FALSE表示指向草图translateSurface1, TRUE表示方向1拉伸到参考面, FALSE表示拉伸到真实平面translateSurface2, TRUE表示方向2拉伸到参考面, FALSE表示拉伸到真实平面normalCut, TRUE确保剪切到板材厚度, FALSE则不(此变量只用于板材)useFeatScope, TRUE作用于选定零件, FALSE作用于所有零件useAutoSelect, TRUE表示自动选定所有零件并加上特征, FALSE作用于选定零件pFeat, 返回该特征的指针现在,在Visual Basic 中运行该程序,可在Solid Works中零件的所选面上打一个半径15mm, 深度为25mm的孔。4 在Visual Basic中添加用户界面和参数化接口为使本程序具有通用性,我们必须添加用户界面和参数化接口。4.1 创建一个窗体 4.1.1 创建一个空白窗体 a) Visual Basic编辑器中, 点击浏览菜单中的项目管理器菜单项 b) 在项目管理器中, 鼠标右击前面所修改的MacroCut.swb文件 c) 选取弹出菜单中的插入,用户窗体项, 自动在项目中增加一个名为UserForm1的空白窗体, 同时显示工具箱d) 点击浏览菜单中的特征窗口, 显示与UserForm1关联的特征e) 要改变窗体的名称, 在项目管理器中单击UserForm1, 在特征窗口中的名称行中键入FormCut1(或其它值名称), 单击窗体, 使修改起效f) 在窗体标题栏中显示的名称,可通过在特征窗口中的标题行中键入而改变4.1.2 放置文本框与按钮a) 从工具箱中拖拉文本框工具到窗体中,放置到左上角。在刚创建的文本框下方再放置一个文本框b) 从工具箱中拖拉命令按钮工具到窗体中,放置到文本框下方c) 点击上方的文本框,在特征窗口中的名称行中输入TextRadius,单其它行使修改起效。同样修改另一文本框的名称为TextDepthd) 修改命令按钮的名称为bOK,按钮显示文本为Bestimmung4.1.3 放置说明性文字a) 从工具箱中拖拉标签工具到窗体中,放置到文本框1旁边b) 在标签1的特征窗口中将标题修改为Durchmesser,点击窗体的其它部分c) 在文本框2旁边放置标签2,标题修改为Tiefd) 窗体最上方放置说明性文字Nummer eingeben bitte(0)及in mm此时窗体外观如下:4.2 为窗体添加代码 为在主程序与子程序间传送数值,在主程序的变量申明部分添加下面二句: Public Depth As Double Public Radius As Double在窗体中双击Bestimmung按钮,为该按钮的单击事件添加所要执行的代码。在出现的代码窗口中,与语句Private Sub bOK_Click() 和 End Sub之间输入如下程序段: 确保在半径和深度框中输入的是数字Depth = TxtDepth.text / 1000Radius = TxtRadius.text / 1000 关闭对话框并继续HideIf Depth = 0 Or Radius = 0 Then 当输入的数字不正确是显示提示框MsgBox You must enter correct values for both depth and radius.End If 接下来修改主程序MacroCut.swb,用来显示用户界面和获得半径及深度值。在项目管理器中双击MacroCut文件,打开代码窗口添加下面变量定义:Dim dx,dy,dz As Double Dim HoleRadius As Double Dim HoleDepth As Double在Set Part = swApp.ActiveDoc后添加如下程序段,用来显示用户界面和获得用户输入的半径及深度值: 创建用户窗体实例Dim myForm As New FormmCut 设置窗体标题myForm.Caption = Size of Cut-Extrude in Millimeters用来显示用户界面和获得用户输入的半径及深度值:myForm.ShowHoleRadius = Radius HoleDepth = Depth用户界面不再使用,从内存中撤出去Set myForm = Nothing 使用变量使半径及深度参数化地改变:以所选平面的中心为圆心绘圆Part.CreateCircleByRadius2 dx, dy, dz, HoleRadius 增加孔特征Part.FeatureManager.FeatureCut True, False, False, 0, 0, HoleDepth, 0.01, True, False, False, False, 0, 0, False, False, False, False, 0, 1, 1保存修改结果。到现在的主程序和子程序分别如下:Option ExplicitPublic Depth As DoublePublic Radius As DoubleDim swApp As SldWorks.SldWorksDim Part As SldWorks.ModelDoc2Dim boolstatus As BooleanDim dx, dy, dz, HoleRadius As DoubleDim HoleDepth As DoubleDim myForm As New FormCut1Sub main()Set swApp = Application.SldWorksSet Part = swApp.ActiveDoc Create an instance of the user form Set the caption for the formmyForm.Caption = Size of Cut-Extrude in Millimeters Display the user form and retrieve radius and depth values entered by users Divide the values by 1000 to change millimeters to metersmyForm.ShowHoleRadius = RadiusHoleDepth = DepthDestroy the user form and remove it from memory because it is no longer neededSet myForm = NothingSketch circle centered on the sketch p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黄石亲子营地活动方案
- 古代姓氏考试题及答案
- 工程经济考试题及答案
- 高考试题讲解及答案
- 港台文学考试题及答案
- 社会帮扶行动协助承诺书(8篇)
- 企业行政管理常用文件管理工具
- 法学民法考试题及答案
- (正式版)DB15∕T 3405.1-2024 《蚯蚓养殖和治污改土技术规程 第1部分:蚯蚓养殖和粪污处理》
- 电子基础考试题及答案
- 职称评聘工作管理制度
- 三腔空肠营养管构造及护理
- 2025年人教PEP版(2024)小学英语四年级上册(全册)教学设计(附目录)
- DB31/T 1367-2022养老机构服务质量监测与评价规范
- 2025年(第一季度)电网工程设备材料信息参考价(加密)
- 贵金属废料提炼合同协议
- 中国传统木工工艺课件
- 有限空间作业培训内容
- 淋巴瘤PET-CT及PET-MR显像临床应用指南(2025版)解读课件
- 模具部的组建和管理
- 《中国近现代史纲要》课程教学大纲
评论
0/150
提交评论