Solidworks二次开发入门教程[VB实现]
solidworks api二次开发实例详解 -回复
solidworks api二次开发实例详解-回复如何进行SolidWorks API二次开发实例的详解SolidWorks是一款常见的三维计算机辅助设计(CAD)软件,用于创建和编辑各种机械设计、装配和零件模型等。
它具有功能强大的应用编程接口(API),允许开发人员自定义和扩展软件的功能。
在本文中,我们将通过一个实例来详细介绍SolidWorks API的二次开发过程。
1. 环境设置首先,我们需要确保已经正确设置SolidWorks的开发环境。
在SolidWorks安装目录中,找到并运行"swvisualizeapi.exe"文件,按照提示安装Visualize API。
接下来,打开SolidWorks软件,点击"工具"->"宏"->"编辑",在"选项"对话框的"VBA环境"选项卡中,勾选"显示工具栏"和"显示添加-Ins",以便在开发过程中方便调试和查看结果。
2. 创建新的宏在SolidWorks中点击"工具"->"宏"->"新建"来创建一个新的宏。
在该宏中,我们将使用VBA代码进行二次开发。
首先,我们需要定义一个模块(Module)来存储我们的代码。
在"Macros in"下拉菜单中选择"NewMacros",然后点击"创建",在弹出的对话框中命名新模块为"API_Example"。
接下来,在模块中输入以下代码:vbaOption ExplicitSub API_Example()' 在此处编写您的代码End Sub接下来,我们将在此处编写我们的代码。
3. 加载程序集在编写SolidWorks API代码之前,我们需要加载SolidWorks程序集。
基于VB的Solidworks的二次开发
基于VB的Solidworks的二次开发目录第一章绪论 (1)1.1课题研究背景和意义 (1)1.1.1 设计手段 (1)1.1.2 分析理论 (2)1.1.3 外观造形 (2)1.1.4 液压部件CAD系统的意义 (2)1.2 CAD技术的特点及应用 (4)1.2.1 CAD技术的特点 (4)1.2.2 CAD(算机辅助设计)应用 (5)1.3 CAD/CAM技术的发展概述 (7)1.4 SolidWorks软件简介及应用 (10)1.4.1SolidWorks软件主要有以下基本功能: (10)第二章SolidWorks二次开发 (13)2.1 SolidWorks二次开发简介 (14)2.2 SolidWorks二次开发的两种基本方式 (14)2.2.1 基于OLE自动化技术 (14)2.2.2 基于COM规范 (15)2.3 SolidWorks的二次开发工具 (15)2.4 SolidWorks宏简介 (16)2.5 SolidWorks二次开发方法比较 (18)2.6 SolidWorks二次开发的基本原理 (19)2.7 本系统的具体开发方案 (20)第三章数据库 (21)3.1 数据库的简介 (21)3.1.1 数据库结构及应用 (21)3.1.2 数据库技术的应用 (22)3.3数据库接口技术(Access数据库引擎) (22)第四章Visual Basic 6.0 (25)4.1 Visual Basic 6.0简介 (25)4.1.2 Visual Basic 6.0的新特点 (26)4.2 VB开发液压阀标准件库的实例 (28)4.2.1 分析结构特征,建立DV节流截止阀和单向节流截止阀体模型 (29)4.3 用VB开发人机交互界面及运行结果 (30)结论 (44)致谢 (45)参考文献 (46)基于VB的DV节流截止阀和单向节流截止阀SolidWorks的二次开发060606415 马冶指导教师: 高长银教授第一章绪论1.1课题研究背景和意义液压部件因具有结构简单、工艺适应性强、环境污染小等其他设备不可替代的性能特点,被广泛应用于汽车制造、航空航天、国防、电力电子、塑料、机械、冶金和轻工等国民经济的各个领域。
基于Vb的Solidworks二次开发的经典实例
发表时间: 2009-6-5 来源: 智造网关键字: solidworks二次开发因为SW整合了VB编辑器(比较像,这个编辑器又可以进行宏与二次开发的制作。
这里使用宏的建立来打好基础框架,以简化开发过程。
用这种录制宏的方法也可以快速得到SW的操作命令,这比检索全英文的API 文档方便。
因为SW整合了VB编辑器(比较像,这个编辑器又可以进行宏与二次开发的制作。
使用宏的建立来打好基础框架,以简化开发过程。
用这种录制宏的方法也可以快速得到SW的操作命令,这比检索全英文的API 文档方便。
目的:使用简单实例,向新手讲述最基本的二次开发步骤,让没用过二次开发的朋友能够迅速上手。
本文需要VB6的基础技术,能看懂VB6程序代码,会写基本程序就行。
第一步:录制宏运行SW,如图的两种方法开始录制宏新建一个圆柱体,然后停止录制,并保存文件第二步:创建程序使用编辑宏,在VB编辑器中打开刚才制作的宏文件。
界面跟VB6是一样的。
程序并不长,通过读程序,我们找到刚才所作的两件事情--创建文件和建模的代码,以备后用。
插入用户窗体在控件工具箱重托拽一个按钮控件到窗体,如图。
把窗体和按钮的Caption属性分别改成:"SW基础二次开发"和"画阵列",这样窗口和按钮的文字就变成我们需要的样子了。
当然你也可以写成其他文字。
第三步:整理代码首先存盘,防止调试过程中死机带来的损失。
然后双基左上角"工程"窗口中的"模块"下我们刚刚建立的那个宏,来显示代码。
在"Sub main()"下面一行添加"Sub main()",让程序运行后首先显示刚刚创建的窗口。
然后选中"Sub main()"到最后一个"end"之间的所有属于宏的代码,并剪切。
这样宏代码就剩下下面的三句。
(分隔线上面的声明代码不要动)工程窗口双击"UserForm1",显示创建的窗口,再双击按钮,VB会自动建立按钮点击事件的代码:Private Sub CommandButton1_Click()End Sub我们把刚才宏的所有代码先粘贴过来。
如何利用vb对SolidWorks进行二次开发
如何利用对SolidWorks进行二次开发1.首先正确安装vs2010与SolidWorks,打开vs2010新建项目如图1。
图1系统会自动生成解决方案如图2。
图22.然后添加窗口Form1,向窗体中添加一个Button按钮,编写代码如下。
Public Class Form1Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickMsgBox("测试成功 by_NYX")End SubEnd Class3.修改代码,如图3。
图3将代码修改为:Public Sub AddCommandMgr()Dim cmdGroup As ICommandGroupIf iBmp Is Nothing TheniBmp = New BitmapHandler()End IfDim thisAssembly As AssemblyDim Title As String = "NYX_CESHI"Dim ToolTip As String = "Form1 Design System"Dim docTypes() As Integer = {swDocumentTypes_e.swDocASSEMBLY, _swDocumentTypes_e.swDocDRAWING, _swDocumentTypes_e.swDocPART}thisAssembly = System.Reflection.Assembly.GetAssembly(Me.GetType()) Dim cmdGroupErr As Integer = 0Dim ignorePrevious As Boolean = FalseDim registryIDs As Object = NothingDim getDataResult As Boolean =iCmdMgr.GetGroupDataFromRegistry(mainCmdGroupID, registryIDs)Dim knownIDs As Integer() = New Integer(1) {mainItemID1, mainItemID2}If getDataResult ThenIf Not CompareIDs(registryIDs, knownIDs) Then'if the IDs don't match, reset the commandGroupignorePrevious = TrueEnd IfEnd IfcmdGroup = iCmdMgr.CreateCommandGroup2(mainCmdGroupID, Title, ToolTip, "", -1, ignorePrevious, cmdGroupErr)If cmdGroup Is Nothing Or thisAssembly Is Nothing ThenThrow New NullReferenceException()End IfIf Not IsNothing(cmdGroup) ThenrgeIconList =iBmp.CreateFileFromResourceBitmap("SwVBAddin1_Matlab.ToolbarLarge.bmp", thisAssembly)cmdGroup.SmallIconList =iBmp.CreateFileFromResourceBitmap("SwVBAddin1_Matlab.ToolbarSmall.bmp", thisAssembly)rgeMainIcon =iBmp.CreateFileFromResourceBitmap("SwVBAddin1_Matlab.MainIconLarge.bmp", thisAssembly)cmdGroup.SmallMainIcon =iBmp.CreateFileFromResourceBitmap("SwVBAddin1_Matlab.MainIconSmall.bmp", thisAssembly)cmdGroup.AddCommandItem2("测试用", 0, "Form1 Design", "Form1 Design", 4, "Form1", "Form1_EnableMethod", 0, swconst.swCommandItemType_e.swMenuItem)cmdGroup.HasToolbar = TruecmdGroup.HasMenu = TruecmdGroup.Activate()End IfthisAssembly = NothingiBmp.Dispose()End Sub'判断菜单工具条按钮可用性Function Form1_EnableMethod() As Integer If iSwApp.ActiveDoc Is Nothing Then Form1_EnableMethod = 1ElseForm1_EnableMethod = 0End IfEnd FunctionFunction Form1() As BooleanDim st As New Form1st.Show()End Function4.重新生成解决方案,如图4。
基于vb的solidworks的二次开发
基于VB的solidworks 的二次开发姓名:张超学号:S11080203097专业:机械设计及理论班级: 机电4班基于VB的solidworks的二次开发1.引言Solidworks是基于windows平台、采用parasolid图形核心的一套三维CAD软件,它支持参数化和特征造型技术,能够使用户方便地创造任何复杂形状的实体,并且可以实现实体的参数化驱动。
由于其界面友好、操作方便、简单易学,目前已成为流行的三维设计软件。
更重要的是,solidworks提供了大量的 API函数用于二次开发,这些 API函数是solidworks的OLE或COM接口,使用户能够直接访问solidworks,并可以使用多种高级语言,如VB、VBA、VC等对其进行二次开发。
由于VB是运行在windows环境下的可视化编程语言,具有语言规则简单、功能齐全、使用方便的优点,并且在VB中可以像调用普通过程一样调用API函数,进而实现需要的功能。
因此很多科研工作者利用VB语言进行solidworks的二次开发。
2.VB二次开发solidworks的过程2.1 开发方法:基于VB的solidworks二次开发,最重要的是程序代码的编写。
代码可以完全由开发者写入,即完全用程序实现三维建模的编辑,这种方法编程较为复杂,但可以实现对具有复杂形体的零件造型。
另一个简单的方法是先录制使用solidworks用户界面执行的操作,即录制宏,获得宏操作代码,将其复制添加到VB程序所需部分,然后编辑修改已达到程序要求,通过程序驱动设计变量实现模型的建立和更新,这种方法编程简单,通用性好。
下面以挤压模垫套(见下图)为例说明这种方法的实现。
2.2 开发过程(1)提出设计意图,分析将要建立的模型,打开VB程序设计软件,根据设计意图创建VB窗体界面,创建程序主界面如下图,从界面可以看到定义挤压模垫套的5个尺寸参数为:D1、D2、D3、H1、H2,输入不同的数据即可得到所需要的模型。
基于VB的SolidWorks零件库的二次开发
SolidWorks是在Windows环境下实现的第一个机械三维CAD软件,是基于特征进行参数化实体建模设计的工具,可以创建完全关联的三维实体模型。
SolidWorks以其设计过程简单、功能强大等优点,成为当前常用的一种三维设计软件。
尽管SolidWoks的功能十分强大,但它只是针对整个制造行业的通用软件,不能满足特定用户的特殊要求。
这就需要用户根据自身的需要利用SolidWorks所提供的二次开发工具和接口进行二次开发,使其在企业的产品开发中发挥更大的作用,提高设计效率。
1SolidWorks 二次开发原理概述1.1SolidWorks二次开发的形式SolidWorksAPI(ApplicationProgrammingInterface,应用程序编程接口)是SolidWorks的OLE(ObjectLinkingandEmbedding,对象链接或嵌入)应用程序开发接口,用户可以利用它和支持OLE编程的开发工具,如VB、VBA(Excel,Access)、VC等对SolidWorks进行二次开发,建立适合用户需要的、专用的SolidWorks功能模块,在此基础上实现零件及模具的参数化驱动。
Solidworks二次开发通常有两种形式:一是独立应用程序(standaloneapplication),用户程序作为一个独立的应用程序(*.exe),通过API接口调用SolidWorks提供的服务,完成对SolidWorks的控制和操作;二是插件形式(Add-Inapplication),用户程序作为一个插件(*.dll)集成到Solidworks中去。
插件形式下,用户程序跟Solidworks程序运行在同一进程空间,运行效率高,而且用户可以在SolidWorks中添加自己的菜单、工具栏、属性页等,使用户程序跟Solidworks程序浑然容为一体。
由于插件程序跟SolidWorks运行在同一进程空间,插件程序的异常会导致solidworks程序的不稳定,因此在做开发时也要更加小心。
使用VBA进行solidworks开发指南
目录第1章概述 (2)1.1内容简介 (2)1.2名词解释 (2)1.3预备知识 (3)第2章录制、编辑、运行宏 (3)2.1录制、编辑、运行宏基本步骤: (3)2.2一些基本的建议: (3)第3章代码格式及帮助信息 (5)3.1代码格式: (5)3.2获得帮助: (6)第4章常用对象模型 (7)4.1综述: (7)4.2SldWorks.SldWorks : (8)4.3SldWorks.ModelDoc2: (8)4.4SldWorks.PartDoc、SldWorks.AssemblyDoc、SldWorks.DrawingDoc: (9)4.5SldWorks.feature、SldWorks.Sketch : (9)第5章零件 PartDoc (9)5.1综述: (9)5.2选择对象的话题: (10)5.3访问并修改特征: (12)5.4草图的话题: (17)第6章装配体 (18)6.1综述: (18)6.2组件的话题:插入零部件到装配体 (19)6.3配合的话题:在装配体中添加配合 (22)6.4由于说到参考,顺便讨论一下配合参考: (26)第7章工程图 (28)7.1综述: (28)7.2注释的话题: (29)7.3生成图纸的话题:并讨论如何解决实际问题 (30)第8章总结: (40)第1章概述1.1内容简介Solidworks在提供了强大的三维建模功能的同时,也为使用者提供了开放的应用程序编程接口(API),通过调用这些API,我们可以将solidworks中一些重复单调或者规则明确的操作使用程序语言描述,通过简单的人机交互,让计算机自己来完成此类工作。
掌握了此类本领,可以在以后的工作中,开阔自己的视野,更加深入的了解软件本身工作的原理,并且,改善自己的工作,提高工作效率和质量。
本文旨在总结作者工作中获得的经验,专注于solidworks软件本身特点,文章中示例的代码基本上使用了vb语言描述,选择vb语言是因为其语法简单易懂,并且和应用程序间有很明朗的接口不需要再学习其它技术(如果使用c++,可能需要读者拥有COM知识)。
用VB进行Solidworks二次开发的编程技巧与实现方法
用VB进行Solidworks二次开发的编程技巧与实现方法0.引言Solidworks是美国Solidworks公司基于Windows平台开发的著名的全参数化三维实体造型软件,其功能强大、性能优良,易学易用,同时solidworks具有良好的开放性和兼容性。
不仅可以向下兼容二维AutoGAD,同时也可以与许多其它专业软件(如有限元分析软件Ansys、三维实体设计软件UG、Pro/E等)无缝集成为功能十分强大的CAD/GAE/CAM/PDM系统,完全能胜任大型工程与产品的设计、分析、制造和数据管理。
当前,各类用户不仅在应用Solidworks的强大功能进行各类专业设计,同时也在积极探索Solidworks的二次开发技术,力求扩展Solidworks的功能并使其用户化、专业化、本土化,以提高该软件的附加值与工作效率。
本文通过实例介绍了Solidworks二次开发中有关零部件绘制、插件生成及独立可执行文件生成过程中的编程技巧与实现方法。
1. 三维设计VB编程实现对于大多数三维软件使用者来说,主要是单纯的三维建模和装配。
可是在实际的三维设计中经常会遇到不好解决的问题,比如频繁出现的尺寸不同但形状相似的零件,齿轮等零件的曲线绘制等。
如果想解决这样的问题就必须涉及到二次开发,使用编程可以使零件建模更加快捷或更加真实。
但是对于大多数初学者而言,由于牵涉到许多solidworks API 底层命令的调用,不容易也不可能全面掌握。
因此,利用宏命令进行相关部分的录制,在VB 相关语法规则的约束下进行源代码的改写,用这种录制宏的方法可以快速得到solidworks的操作命令,这比检索全英文的API文档方便,从而有效提高了编程效率。
宏录制的源代码不能直接运行,必须在VB编辑器中对制作的宏文件进行一些修改,替换相关代码,删除冗余代码,这样的话录制的宏文件才可以得以顺利运行。
关于这方面的文章很多,在此不再赘述。
特别强调的是,对于Sub main中出现的前七句代码(本文以新建一个文件为例,其他情况类似):Set swApp = Application.SldWorksswApp.ActiveDoc.ActiveView.FrameLeft = 0swApp.ActiveDoc.ActiveView.FrameTop = 0swApp.ActiveDoc.ActiveView.FrameState = 1swApp.ActiveDoc.ActiveView.FrameState = 1Set Part = swApp.NewDocument("D:\ProgramFiles\SolidWorks\data\templates\零件.prtdot", 0, 0#, 0#)Set Part = swApp.ActivateDoc2("零件1", False, longstatus) 上述创建方法与SW的安装位置有关联,因此使用下面三句通用的创建零件方法来替代这些代码:Set swApp = Application.SldWorksSet Part = swApp.NewPartSet Part = swApp.ActiveDoc通过对宏录制的源代码的修改与完善,便可以运行该宏文件。
使用VBA进行solidworks开发指南
目录第1章概述 (2)内容简介 (2)名词解释 (2)预备知识 (3)第2章录制、编辑、运行宏 (3)录制、编辑、运行宏基本步骤: (3)一些基本的建议: (3)第3章代码格式及帮助信息 (5)代码格式: (5)获得帮助: (6)第4章常用对象模型 (7)综述: (7): (8): (8)、、: (9)、: (9)第5章零件PartDoc (9)综述: (9)选择对象的话题: (10)访问并修改特征: (12)草图的话题: (17)第6章装配体 (18)综述: (18)组件的话题:插入零部件到装配体 (19)配合的话题:在装配体中添加配合 (22)由于说到参考,顺便讨论一下配合参考: (26)第7章工程图 (28)综述: (28)注释的话题: (29)生成图纸的话题:并讨论如何解决实际问题 (30)第8章总结: (40)第1章概述内容简介Solidworks在提供了强大的三维建模功能的同时,也为使用者提供了开放的应用程序编程接口(API),通过调用这些API,我们可以将solidworks中一些重复单调或者规则明确的操作使用程序语言描述,通过简单的人机交互,让计算机自己来完成此类工作。
掌握了此类本领,可以在以后的工作中,开阔自己的视野,更加深入的了解软件本身工作的原理,并且,改善自己的工作,提高工作效率和质量。
本文旨在总结作者工作中获得的经验,专注于solidworks软件本身特点,文章中示例的代码基本上使用了vb语言描述,选择vb语言是因为其语法简单易懂,并且和应用程序间有很明朗的接口不需要再学习其它技术(如果使用c++,可能需要读者拥有COM知识)。
Solidworks提供了极其丰富的API,并且有很完善的帮助系统。
我们可以使用Microsoft VBA编写SolidWorks Macros或者使用其他编程环境编写Standalone and Add-in Applications。
(使用visual studio到.NET都可以)在SW的API帮助中我们可以很明了的查看API调用语法及相关的示例代码。
solidworks二次开发教程
solidworks二次开发教程在Solidworks二次开发中,我们可以使用Solidworks API来扩展和定制软件功能,提高工作效率。
下面是一个简单的教程,介绍了如何创建和编辑模型,以及如何进行基本的数据管理。
1. 创建一个新的Part文件:```vbDim swApp As SldWorks.SldWorksDim swModel As SldWorks.ModelDoc2Set swApp = Application.SldWorksSet swModel =swApp.NewDocument("C:\ProgramData\SolidWorks\SolidWorks 2022\templates\part.prtdot", 0, 0, 0)'设置Part文件属性swModel.Extension.CustomPropertyManager("").Add3 "MyProperty", swCustomInfoText, "MyValue"```2. 创建一个新的Assembly文件:```vbDim swApp As SldWorks.SldWorksDim swModel As SldWorks.ModelDoc2Set swApp = Application.SldWorksSet swModel =swApp.NewDocument("C:\ProgramData\SolidWorks\SolidWorks 2022\templates\assembly.asmdot", 0, 0, 0)'创建组件Dim swAssembly As SldWorks.AssemblyDocSet swAssembly = swModelDim swPart As SldWorks.ModelDoc2Set swPart =swAssembly.AddComponent5("C:\Path\To\Part.sldprt", 0, "", False, "", 0, 0, 0)'设置Assembly文件属性swModel.Extension.CustomPropertyManager("Part.sldprt").Add3 "MyProperty", swCustomInfoText, "MyValue"```3. 创建一个新的Drawing文件:```vbDim swApp As SldWorks.SldWorksDim swModel As SldWorks.ModelDoc2Set swApp = Application.SldWorksSet swModel =swApp.NewDocument("C:\ProgramData\SolidWorks\SolidWorks 2022\templates\drawing.drwdot", 0, 0, 0)'导入视图Dim swDrawing As SldWorks.DrawingDocSet swDrawing = swModelDim swView As SldWorks.ViewSet swView =swDrawing.CreateDrawViewFromModelView3("C:\Path\To\Part.s ldprt", "*等轴测", 0, 0, 0)'设置Drawing文件属性swModel.Extension.CustomPropertyManager("Part.sldprt").Add3 "MyProperty", swCustomInfoText, "MyValue"```4. 编辑模型:```vb'打开一个Part文件Dim swApp As SldWorks.SldWorksDim swModel As SldWorks.ModelDoc2Set swApp = Application.SldWorksSet swModel = swApp.OpenDoc6("C:\Path\To\Part.sldprt", swDocumentTypes_e.swDocPART,swOpenDocOptions_e.swOpenDocOptions_Silent, "", 0, 0)'选择特定特征Dim swFeat As SldWorks.FeatureSet swFeat = swModel.FeatureByName("特征名称")'修改特征参数If swFeat.GetTypeName2 = "特征类型" ThenDim swFeatData As SldWorks.FilletFeatureDataSet swFeatData = swFeat.GetDefinitionswFeatData.Radius = 5.0swFeat.ModifyDefinition swFeatData, swModel, Nothing End If'保存并关闭文件swModel.SaveAs2 "C:\Path\To\Part.sldprt", swSaveAsVersion_e.swSaveAsCurrentVersion, False, True swModel.CloseDoc```5. 数据管理:```vb'打开一个Part文件Dim swApp As SldWorks.SldWorksDim swModel As SldWorks.ModelDoc2Set swApp = Application.SldWorksSet swModel = swApp.OpenDoc6("C:\Path\To\Part.sldprt", swDocumentTypes_e.swDocPART, swOpenDocOptions_e.swOpenDocOptions_Silent, "", 0, 0)'获取自定义属性值Dim swCustPropMgr As SldWorks.CustomPropertyManager Set swCustPropMgr =swModel.Extension.CustomPropertyManager("")Dim propValue As StringpropValue = swCustPropMgr.Get2("MyProperty")'MsgBox弹窗显示自定义属性值MsgBox "MyProperty的值是:" & propValue'关闭文件swModel.CloseDoc```上述代码为简单的Solidworks二次开发教程,帮助你了解如何创建、编辑和管理模型数据。
VB对solidworks进行二次开发入门2种方式
VB对solidworks进⾏⼆次开发⼊门2种⽅式VB对solidworks进⾏⼆次开发本次的开发均使⽤简单圆柱为例进⾏solidworks⼆次开发⽅法⼀:借助API绘图函数1.使⽤宏录制圆柱的建模过程,录制代码如下:2.在VB程序开发环境中建⽴标准EXE⽂件,并且引⽤solidworks类型库,其引⼊步骤如下:单击菜单栏中【⼯程】【引⽤】命令,选择“SolidWorks exposed Type Libraries For add-in Use”(SolidWorks插件库⽂件)、“SolidWorks 2007 Type Libray”(SolidWorks库⽂件)和“SolidWorks Consant Type library”(SolidWorks常数库)3.在VB开发环境中添加2个lable控件,2个textbox控件,2个commandbutton控件,并将lable控件分别命名为圆柱直径,圆柱长度,将commandbutton控件分别命名为连接solidworks,开始绘制。
程序界⾯如下:4.代码编写A.在代码编写窗⼝,通⽤区定义变量,代码如下:Dim swapp As ObjectDim part As ObjectDim boolstatus As Boolean'定义接⼝B.双击第⼀个commandbutton控件,并且写⼊如下代码:Set swapp = CreateObject("SldWorks.Application")Set part = swapp.NewPart()swapp.Visible = True'获取solidworks软件接⼝并新建⼀个零件⽂件(⾄此,就可以使⽤VB启动solidworks)C.双击第⼆个commandbutton控件,并把solidworks录制的宏⽂件的相关代码复制到VB的第⼆个commandbutton控件Click的事件中,并且对代码进⾏修改,修改后的代码如下:boolstatus = part.Extension.SelectByID2("前视", "PLANE", 0, 0, 0, False, 0, Nothing, 0)part.SketchManager.InsertSketch Truepart.ClearSelection2 TrueDim skSegment As ObjectSet skSegment = part.SketchManager.CreateCircle(0#, 0#, 0#, Val(Text1.Text) / 2000, 0, 0#)part.ShowNamedView2 "*上下⼆等⾓轴测", 8part.ClearSelection2 Trueboolstatus = part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)Dim myFeature As ObjectSet myFeature = part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, Val(Text2.Text) / 1000, 0, False, False, False, False, 0, 0, False, False, False, False,True, True, True, 0, 0, False)part.SelectionManager.EnableContourSelection = False5.单击VB中的启动按钮,先进性程序调试,调试结果如下:注意:在solidworks的API函数中的单位是⽶,如Set skSegment =part.SketchManager.CreateCircle(0#, 0#, 0#, Val(Text1.Text) / 2000, 0, 0#),⾄于除以2000的原因是API中的绘制圆的函数,是以半径为参数。
基于VB的SolidWorks二次开发
ห้องสมุดไป่ตู้
动化。
收稿日期: 2005- 10- 09
131 机械工程师 2006 年第 3 期
制 造 业 信 息 化 Ma n u fa c tu rin g In fo rm a tio n a liz a tio n
图 3 尺寸参数表
图 4 VB 中参数定义界面
图 1 SolidWor ks2004 的接口关系图
[ 参考文献] [ 1] 温 诗 铸 , 黎 明. 机 械 学 发 展 战 略 研 究 [ M] . 北 京 : 清 华 大 学 出 版
社, 2003, 43- 45. [ 2] Kazuki MIZUTANI, Kazumichi KATO and Kazumasa NAKAMU-
RA. Active vibration control of rotating shaft supported by flexible bearings ( 1st report, application of the principle of a dynamic absorber [ A] . Transactions of Japan Society of Mechanical Engi- neers Part C[ C] . 595621993, JSME: 1710- 1716.
solidworks二次开发全教程系列
solidworks二次开发全教程系列solidworks二次开发-01-录制一个宏第一步:我们需要自己录制一个宏,然后看看程序产生了什么代码。
当初学习excel时候就是这么干的。
只是,solidworks要复杂一些,直接录制的宏不能使用,需要做一些调整。
在没有经验的时候我们最好按照下面的建议来做。
Edit or Debug SolidWorks MacroEdit or debug SolidWorks macros using Microsoft VBA. 使用Microsoft VBA编辑或调试宏To edit or debug a SolidWorks macro:Click Edit Macro on the Macro toolbar, or click Tools, Macro, Edit.NOTES: 注意:To automatically edit a macro after recording it, click Tools, Options, Systems Options. On the General tab, select Automatically edit macro after recording and click OK. This setting is persistent across SolidWorks sessions.此选项Automatically edit macro after recording 顾名思义是在记录宏完毕后自动打开编辑界面。
If you recently edited the macro, you can select it from the menu when you click Tools, Macro. This menu lists the last nine macros that you edited.已经编辑了宏,菜单中会有最近的9个宏程序列表供选择。
solidworks二次开发全教程系列
solidworks二次开发全教程系列solidworks二次开发-01-录制一个宏第一步:我们需要自己录制一个宏,然后看看程序产生了什么代码。
当初学习excel时候就是这么干的。
只是,solidworks要复杂一些,直接录制的宏不能使用,需要做一些调整。
在没有经验的时候我们最好按照下面的建议来做。
Edit or Debug SolidWorks MacroEdit or debug SolidWorks macros using Microsoft VBA. 使用Microsoft VBA编辑或调试宏To edit or debug a SolidWorks macro:Click Edit Macro on the Macro toolbar, or click Tools, Macro, Edit.NOTES: 注意:To automatically edit a macro after recording it, click Tools, Options, Systems Options. On the General tab, select Automatically edit macro after recording and click OK. This setting is persistent across SolidWorks sessions.此选项Automatically edit macro after recording 顾名思义是在记录宏完毕后自动打开编辑界面。
If you recently edited the macro, you can select it from the menu when you click Tools, Macro. This menu lists the last nine macros that you edited.已经编辑了宏,菜单中会有最近的9个宏程序列表供选择。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Solidworks二次开发入门教程:运用VB语言实现二次开发Visual Basic(简称为VB)是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows 环境下的各类应用程序。
它简单易学、效率高,且功能强大可以与Windows 专业开发工具SDK相媲美。
在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(O LE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。
随着版本的提高,Visual Basic的功能也越来越强。
5.0版以后,Visual Basic 推出了中文版,与前个版本相比,其功能有了很大提升。
Visual Basic 6.0作为Visual Studio 6.0的优秀一员,已成为企业级快速开发的利器。
Visual Basic 6. 0在数据访问方面有了很大的改进,新的ADO组件让对大量数据快速访问成为可能。
数据环境和新的报表功能也让数据开发有了全新的体验。
Visual Basic 借助COM/COM+强大的功能,可以开发具有多层结构的分布式应用程序。
同时,Visual Basic还可以在IIS上开发性能超群的Web应用程序。
Visual Basic 6. 0在语言方面和IDE方面的改进都不大,但是许多新增的组件成为Visual Basic开发人员手中的利器,如File System Object等。
新的字符串函数Split和Replace等也给Visual Basic的程序员带来很大方便。
Visual Basic 6.0具有下述优点:(1) 面向对象(2) 事件驱动(3) 软件的集成式开发(4) 结构化的程序设计语言(5) 强大的数据库访问功能(6) 支持对象的链接与嵌入技术(7) 网络功能(8) 多个应用程序向导(9) 支持动态交换、动态链接技术(l0) 联机帮助功能VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO 连接数据库,或者轻松的创建ActiveX控件。
它不像高级语言Visual C++那麽复杂,但它的功能很全,程序员可以轻松的使用VB提供的组件进行二次开发,快速建立属于自己的应用程序。
2 利用VB实现圆台交互式绘制的实现过程2.1 启动VB程序启动VB程序,VB6.0的主窗口如图1所示,可以直观地看到主窗体主要有以下部分组成:标题栏;菜单栏;工具栏;窗体设计器;控件(工具)箱;弹出式(上下文)菜单;工程管理器窗口;属性窗口;对象浏览器;对象浏览器及窗体布局窗口。
建立一个新的标准EXE工程文件,对其进行重命名保存,重命名为"圆台绘制",将Form窗体文件重命名保存为"交互式圆台绘制",如图2所示。
特别需要注意的一点是:在标题栏显示的当前的工程名及窗体名是通过修改属性窗口中"名称"属性及"caption"属性得以实现的,与实际的工程名及窗体名并无直接联系,实际的工程名及窗体名是通过诸如"(圆台绘制.vbp)"形式体现出来的。
图1 VB6.0主窗口图2 重命名操作后的工程资源管理器2.2 引用Solidworks类型库文件要操作SW对象,那么添加SW引用是必不可少的。
在VB里添加引用,单击菜单栏中【工程】【引用】命令,选择"SolidWorks exposed Type Libraries For add-in Use"(SolidWorks插件库文件)、"Soli dWorks 2007 Type Libray"(SolidWorks库文件)和"SolidWorks Consant Type library"(SolidW orks常数库),如图3所示。
本文其实只用到了"SolidWorks 2007 Type Libray"(SolidWorks库文件),但为了方便以后的程序扩展,将上述三种常用库文件一并添加。
图3 引用SolidWorks类型库2.3 编辑窗体界面(1)拖动工具箱组件板上的Lable控件、TextBox控件及CommandButton控件到Form上。
(2)接下来在属性窗口将Lable1、Lable2的属性分别设置为"圆台半径:"、"圆台高度:";将Com mandButton1、CommandButton2的属性分别设置为"启动SolidWorks交互式绘图"、"退出SolidWo rks软件"。
编辑后的窗体界面如图4所示。
图4 编辑后窗体界面2.4编程实现在VB编程环境下,引用单元文件,创建相关函数及编写事件处理过程,实现程序功能。
绘制圆台的详细程序代码及其注释如下所示:Private Sub Command1_Click()Dim swapp As ObjectDim part As ObjectDim boolstatus As Boolean"定义接口Set swapp = CreateObject("SldWorks.Application")Set part = swapp.NewPart()swapp.Visible = True"获取solidworks软件接口并新建一个零件文件part.InsertSketch2 Trueboolstatus = part.Extension.SelectByID("前视", "PLANE", 0, 0, 0, False, 0, Nothing)part.InsertSketch2 Truepart.CreateCircle 0, 0, 0, 0, Val(R.Text) / 10005, 0part.ShowNamedView2 "*上下二等角轴测", 8part.FeatureManager.FeatureExtrusion True, False, False, 0, 0, Val(H.Text) / 1000, 0.01, Fal se, False, False, False, 0, 0, False, False, False, False, 1, 1, 1"建立模型End Sub点击"启动SolidWorks交互式绘图"后,程序调用SolidWorks自动绘制的圆台三维图如图5所示。
可交互式修改参数,直至达到满意的效果。
操作完成后点击"退出SolidWorks环境"可以自动关闭并退出So lidWorks环境。
图5 交互式绘图后结果3 小结本文同样以一个简单实例的实现过程为例,采用VB语言编制了相关程序,详细介绍了二次开发的具体实现过程,给出了重要文件的引用、属性设置、接口程序的编制和事件处理等过程的完整代码。
通过上述实例的实现过程,可以看出:VB语言简单易学,学习过程中很容易上手;功能齐全,程序员可以轻松的使用VB提供的组件进行二次开发,快速建立属于自己的应用程序,在其各项高效强大集成功能的支持下,最终可方便快速地完成二次开发任务。
参照连载1中的通过宏录制实现的二次开发过程,可以清楚地看到,利用VB二次开发实现圆台绘制的具体命令源代码不需要自己编写,可以直接对宏录制的相关源码拷贝过来加以利用即可,只需要修改其中的相关变量参数诸如Val(R.Text)即可,易于实现,减轻了程序员的工作量,提高了程序的开发速度。
简单说明SolidWorks API的应用本文通过介绍“自定义属性”这个程序的开发和使用过程,来简单地说明SolidWorks API的应用,希望起到抛砖引玉的作用。
SolidWorks API是SolidWorks的OLE应用程序开发接口,用户可以利用它和支持OLE编程的开发工具,如VB、VBA(Excel,Access)、C、VC++等对SolidWorks进行二次开发,建立适合用户需要的、专用的SolidWorks 功能模块。
一、问题的提出大多数工程图纸的标题栏中应该包括一些基本的设计信息,如零件名称、零件代号、材料以及设计人员和设计日期等,其中,零件的名称、代号、材料、数量、重量及一些重要的后处理要求等信息还应该出现在装配图的材料明细表(BOM)中。
这些内容如果在工程图中一一进行编写和修改,其工作量是很大的,并且这种处理方法也不利于保证设计信息的一致性,对模型文件(零件或装配体文件)和图纸文件的管理来讲是脱节的。
SolidWorks是一个全相关的三维机械设计软件,模型文件中的设计数据,如尺寸、注释、文件属性等内容与工程图相关,因此,我们在处理上述工程图标题栏和材料明细表中的设计数据时,应该将这些内容保存在模型文件中,并且自动显示在工程图相应的位置上。
当需要对工程图中的内容进行修改时,直接修改模型文件中的相应数据即可实现。
这样的处理方法不仅保证了设计信息的一致性,而且可以大大提高设计效率。
根据这个设想,笔者将这些设计信息进行了归纳,并将它们作为模型文件的自定义属性保存在模型文件指定配置的属性(在Solid Works中,选择菜单“文件→属性”,单击“指定配置”标签,如图1所示)中,针对模型文件指定配置的这些属性可以自动带入到工程图的标题栏和材料明细表。
对于材料明细表模板进行修改或建立新的明细表模板就可以在装配图中的材料明细表中显示所需要的设计信息(工程图格式文件的定义和材料明细表模板的定义,请参阅《SolidWorks2001中文版实用技术精粹》一书)。
因此,无论何时需要修改设计信息,只需在SolidWorks中打开相应的模型文件,修改指定配置属性即可。
然而,即使采用这样的处理方法,在修改文件当前配置属性时仍然显得有些繁琐,能否为S olidWorks建立一个工作界面,可以更加方便地添加和修改这些信息就成了问题的关键。
二、自定义属性Cpbom 为了更大程度地提高工作效率,我们利用VB6.0通过SolidWorks API建立了自定义属性设置程序——Cpbom,这个程序通过一个对话界面直接对当前模型文件的当前配置进行添加或修改,其基本功能如下:☆针对配置添加模型文件的自定义属性;☆设置的项目包括:零件代号、材料名称、后处理、设计者姓名、设计日期;☆确定自定义属性后,自动保存文件;如当前文件还没有保存,提示文件保存路径和文件名称;☆针对装配文件,可以选择是否删除“材料”和“后处理”两个属性。