文档库 最新最全的文档下载
当前位置:文档库 › 基于DLL的SolidWorks二次开发

基于DLL的SolidWorks二次开发

基于DLL的SolidWorks二次开发
基于DLL的SolidWorks二次开发

基于DLL的SoiidWorks二次开发

回程磊杨永顺

摘要论述利用Visuai C++6.0编程语言通过动态链接库DLL对SoiidWorks进行二次开发的原理和一些关键技术,并结合实例具体说明DLL程序代码的设计。

关键词:Solidworks动态链接库Visual C++二次开发CAD

中图分类号:TP391.7 文献标识码:A 文章编号:1671—3133(2004)09—0038—03

Redevelopment Solidworks application program based on DLL technology

回Cheng Lei,Yang Yongshun

Abstract Introduces the principie and some key technoiogy of the redeveiopment SoiidWorks with Visuai C++through Dynam-ic Link Library fiie,combined with exampies to ciarify the design method of dii programming code.

Key words:Solidworks Dynamic link library Visual C++Redevelopment CAD

SoiidWorks是一套基于三维造型的机械设计自动化软件,功能强大且操作简单。它采用参数化尺寸驱动和特征造型技术建立零件的三维模型,可以动态模拟装配过程,可以由三维实体自动生成二维工程图。SoiidWorks的尺寸全相关技术使得零件、装配体及工程图在不同文件中显示同一模型,如果在一个文件中对模型进行了修改,则包含此模型的其他文件也会相应更改。因此与目前普遍采用的对二维CAD软件如AutoCAD进行二次开发相比较,二次开发三维CAD软件SoiidWorks具有开发周期短、工作量小等优点,而且有了三维实体模型可以对重要零、部件进行有限元分析与优化设计(CAE),可以模拟数控加工(CAM),这样就易于实现CAX系统的集成。

一、SoiidWorks二次开发原理

SoiidWorks通过OLE(Object Linking and Embed-ding,对象的链接和嵌入)技术为用户提供了强大的二次开发接口API(Appiication Programming Interface,应用程序界面),API中包含了数百个可以在Visuai Bas-ic、VBA(Excei、Access等)、C、C++或SoiidWorks宏文件调用的函数。

SoiidWorks的API接口分为两种:一种是基于OLE Automation的IDispatch技术,通过IDispatch接口暴露对象的属性和方法,以便在客户程序中使用这些属性并调用它所支持的方法。此种技术只能开发EXE形式的程序,所开发的CAD系统不能直接加挂在SoiidWorks系统界面下,无法实现与SoiidWorks系统的集成。另一种开发方式是基于Windows基础的COM(Component Object Modei,组件对象模型),COM 是一种组件开发技术,是Microsoft公司提出的并被大多数公司支持的一种标准协议,它建立了一个软件模块同另一个软件模块的连接,当这种连接建立成功之后,两个模块之间就可以通过接口来进行通讯。

SoiidWorks软件的COM接口支持使用VisuaiC++编程语言开发DLL(Dynamic Link Library,动态链接库)程序。DLL是一种用户模块,由用户自己开发的、可以加入到最终用户(包括用户本人和其他使用该模块的人)应用程序中提供某一特定功能的函数和类的集合。如SoiidWorks系统自带的插件PhotoWorks、An-imator等都是SoiidWorks的动态链接程序库(*.dii)。通过Visuai C++编写基于COM的DLL程序,可以实现对SoiidWorks底层的开发并且代码的执行效率高,能直接在SoiidWorks的界面下添加菜单、工具条等,在注册表中注册成功即可成为SoiidWorks的插件,实现了与SoiidWorks的无缝集成,是众多二次开发方法中的首选。

二、开发SoiidWorks DLL程序的关键技术

1.DLL程序的创建

SoiidWorks公司提供了制作DLL程序的向导,利用向导模板可方便地生成DLL文件。具体步骤是:首先,从SoiidWorks公司的网站下载制作动态链接库的向导文件“SWizard.awx”,将其拷贝至VC++安装目录下的\Common\MSDev98\Tempiate文件夹,这时VC 新建工程项中会出现“SoiidWorks Add-InAppWizard”向导。然后,利用此向导即可完成DLL程序的创建。

2.DLL程序的编译和注册

在VC中编译DLL程序时,不同的操作系统应该采用不同的设置:Windows95/98应该采用MBCS设置,Windows2000/XP应该采用Unicode设置,单步调试时应该采用Win32Pseudo—Debug设置,这将避免用户自己添加的资源和SoiidWorks的系统资源发生冲

83CAD/CAPP/CAM/CAE

现代制造工程2004(9)

突导致DLL程序不能运行。

编译链接成功后会生成*.dii格式的文件,运行Windows操作系统的Regsvr32命令注册此DLL文件,若DLL文件注册成功就可成为SoiidWorks系统的插件。打开注册表编辑器展开HKEY_LOCAL_MA-CHINE\SOFTWARE\SoiidWorks\Appiications\项,找到与注册DLL文件名称相同的子项,其包含一名为CLSID的字符串值,这是Windows系统为该DLL所分配的唯一标识字符串。展开HKEY_CLASSES_ROOT\ CLSID项,找到与CLSID字符串值相同的项,此项有一子InprocServer32和一个默认值,InprocServer32子项用来指明该DLL文件的具体路径,默认值可在Soiid-Works插件对话框中描述所编写插件的功能(如图l 所示)。

3.DLL程序的运行

如果在VC++调试环境下运行DLL程序,系统会提示输入调用此DLL的可执行文件名,选择Soiid-Works可执行程序的具体路径后,SoiidWorks就会自动运行,使用SoiidWorks的文件/打开菜单,在文件类型过滤器中选择Add-Ins(*.dii)就可加载自己的DLL 程序。

如果DLL程序调试成功,生成了*.dii格式文件,可以直接在SoiidWorks系统中打开*.dii。DLL注册成为SoiidWorks系统的插件后,还可使用工具/插件菜单打开插件对话框,选中需要加载的插件(如图l所示),以后再启动SoiidWorks时就可自动加载DLL程序,

无须再进行加载操作,十分方便。

图l 二次开发建立的插件

三、DLL应用程序实例

l.程序功能及其设计思想

下面就结合实例给出开发SoiidWorks动态链接库DLL程序的具体代码。本程序可以根据用户输入的尺

寸参数在SoiidWorks系统中自动绘出挤压模垫套的三维造型图,从而实现挤压模垫套的参数化设计。此程序是在Visuai C++6.0开发环境下通过与SoiidWorks 软件的COM接口建立通讯,定制SoiidWorks系统的菜单、工具栏资源等,并通过MFC类库进行主控界面设计。编译后生成SoiidWorks的动态链接库文件3DCAD.dii,3DCAD.dii注册成功后即为SoiidWorks系统的插件,名称为3DCAD(如图l所示)。DLL文件加载后,用户就可利用自定义的菜单或工具栏快捷方式弹出程序的主控界面,进行人机交互操作,从而实现二次开发的CAD系统与SoiidWorks的无缝集成。

2.定制程序的主控界面

如图2所示,用对话框编辑器创建对话框模板资源,用“CiassWizard”生成该对话框的类CDigi(从CDi-aiog派生),并加入所需成员变量,在自定义菜单和工具栏按钮的消息响应函数里分别添加如下的代码弹出主控界面。

CDigi dig;//声名对话框类的成员变量

dig.DoModai();//弹出程序的主控界面

在绘图按钮的消息响应函数里添加相关的绘图函数代码,

就可实现参数化绘图功能。

图2 程序的主控界面

3.定制SoiidWorks的界面

l)定制SoiidWorks的菜单

用户自定义菜单所插入的位置可以用数字来表示,规则是:把SoiidWorks菜单从左至右排序并由0开始计数,例如4代表自定义菜单的位置在【插入】与【工具】之间(如图3所示),具体实现是在C3DCADApp::docCreateMenu函数中添加以下代码://自定义菜单的插入位置

#define swMenuPosition4

//添加顶层弹出式菜单【3DCAD】

hres=pFrame->AddMenu(auT(“3DCAD(&G)”),

swMenuPosition,&bres);

//添加【3DCAD】的下一级菜单【垫套】

93

CAD/CAPP/CAM/CAE

现代制造工程!""#($)

设计直齿圆锥齿轮的SoiidWorks二次开发*

回王霞张耀宗李占君

摘要介绍以SoiidWorks为开发平台,以VB为编程语言,开发直齿圆锥齿轮三维实体参数化造型系统的方法。

关键词:Visual basic Solidworks参数化实体造型

中图分类号:TP391 文献标识码:A 文章编号:1671—3133(2004)09—0040—03

The design of straight bevel gear and developing of Solidworks

回wang Xia,zhang Yaozong,li zhanjun

Abstract Introduces a method of deveioping straight bevei gear three dimensions body parametric system based on SoiidWorks and VB ianguage as program ianguage.Its purpose is to provide a new method.

Key words:Visual basic Solidworks Parametric Body modeling

一、圆锥齿轮三维造型系统简介

SoiidWorks的二次开发为实现圆锥齿轮实体参数化设计提供了有力的手段。渐开线直齿圆锥齿轮三维造型系统的流程如图1所示,各模块及其功能如下。

1.系统界面模块

该模块的功能是采集直齿圆锥齿轮实体造型所要的具体参数,从而利用该系统生成标准齿形、压力角为20 的齿轮。

2.SoiidWorks软件的OLE技术

*河南省自然科学基金资助项目(0111040900),河南科技大学基金资助项目(200113)

hres=pframe->AddMenuItem(auT(“3DCAD(&G)”),

auT(“垫套(&D)…”),swLastPosition,

auT(“3DCAD@Myfunction”),&bres);

图3 定制菜单、工具栏及程序运行的界面2)定制SoiidWorks的工具栏

用户可先绘制出自定义工具栏按钮的图标,然后在C3DCADApp::docCreateMenu函数中添加以下代码,加载并显示自定义工具栏。

SetResources();//确保使用自己添加的资源

//加载工具栏图标资源

m_SmaiiTooibar.LoadMappedBitmap(IDR_TOOLBAR_SMALL);

HBITMAP hbmSmaiiImageWeii=

(HBITMAP)m_SmaiiTooibar.GetSafeHandie();

//把资源控制权交还给SoiidWorks

ResetResources();

//显示工具栏并设置工具栏名称为“绘图工具”

hres=m_pSidWorks->AddTooibar2(auT(“3DCAD”),

auT(“绘图工具”),(iong)hbmSmaiiImageWeii,

(iong)hbmLargeImageWeii,-1,

DocumentType,&m_TooibarId);

此DLL加载成功后,用户可在SoiidWorks系统中打开3DCAD/垫套菜单或单击工具栏快捷按钮弹出程序主控界面(如图2所示),用户输入垫套的尺寸参数后,单击绘图按钮,SoiidWorks就会自动绘出垫套的三维实体造型(如图3所示)。

四、结语

本文介绍了在Visuai C++6.0的集成开发环境下通过动态链接库DLL对SoiidWorks进行二次开发实现机械零件参数化设计的方法。通过实例表明,基于DLL的SoiidWorks二次开发可以很好实现与Soiid-Works系统的无缝集成,并且操作简单,能满足用户开发三维CAD系统的需要。

参考文献

1 SoiidWorks Corporation U.S.SoiidWorks2001pius API Heip

2 熊歆斌.Visuai C++程序设计培训教程[M].北京:清华大

学出版社,2002

作者简介:程磊,硕士研究生,主要研究方向为精密塑性成形、模具CAD/CAPP。

作者通讯地址:河南科技大学190#信箱(洛阳471003)

电话:(0379)4245460

收稿日期:20040120

04CAD/CAPP/CAM

/CAE

现代制造工程2004(9)

基于DLL的SolidWorks二次开发

作者:程磊, 杨永顺

作者单位:河南科技大学,洛阳,471003

刊名:

现代制造工程

英文刊名:MODERN MANUFACTURING ENGINEERING

年,卷(期):2004(9)

被引用次数:8次

参考文献(2条)

1.SolidWorks Corporation U.S.SolidWorks 2001 plus API Help

2.熊歆斌Visual C++程序设计培训教程 2002

本文读者也读过(10条)

1.王彪.刘中柱SolidWorks 二次开发的应用--Visual C++篇[期刊论文]-华北工学院学报2004,25(3)

2.李向阳SolidWorks二次开发的研究[期刊论文]-精密制造与自动化2008(2)

3.陈岳坪.高健.王虎奇.李书平.CHEN Yue-ping.GAO Jian.WANG Hu-qi.LI Shu-ping基于ATL技术的SolidWorks二次开发新方法[期刊论文]-模具工业2009,35(6)

4.周凯旋.罗会信基于Visual Basic的SolidWorks二次开发[期刊论文]-机械制造2005,43(5)

5.郑晖.张福生.郭立观基于COM技术的SolidWorks二次开发[期刊论文]-机械工程与自动化2009(4)

6.曾锋.钟治初.姚山SolidWorksAPI二次开发方法与应用[期刊论文]-嘉应学院学报2011,29(11)

7.孙建军.黎旭.唐慧海.黄艳群基于SolidWorks二次开发的非标准件参数化设计[期刊论文]-现代制造工程2003(6)

8.杜民.DU Min基于Visual C++对SolidWorks二次开发技术研究[期刊论文]-科学技术与工程2006,6(10)

9.马咏梅.丁行武.李鑫.Ma Yongmei.Ding Xingwu.Li xin SolidWorks二次开发在机械零件设计中的应用与研究[期刊论文]-机械传动2010,34(1)

10.王晓丽.季忠.WANG Xiaoli.JI Zhong SolidWorks的二次开发方法比较[期刊论文]-现代制造技术与装备2006(2)

引证文献(8条)

1.张才忠基于VB的SolidWorks零件库的二次开发[期刊论文]-现代制造技术与装备 2010(4)

2.宋率展.高荣慧基于VC的SolidWoks键联接模块二次开发[期刊论文]-机械工程师 2006(3)

3.徐洁基于SolidWorks的齿轮三维参数设计系统的研究[期刊论文]-机电信息 2010(30)

4.黄锐坤热流道注塑模辅助设计模块的开发[学位论文]硕士 2006

5.谌先文参数化设计与虚拟样机技术在减速器开发中的应用研究[学位论文]硕士 2006

6.王鑫螺杆型干式真空泵参数化设计软件的开发[学位论文]硕士 2006

7.陈云三维压铸模具标准件库的研究与开发[学位论文]硕士 2005

8.刘文亮基于SolidWorks的数控回转立体库的自动设计[学位论文]硕士 2005

本文链接:https://www.wendangku.net/doc/117697114.html,/Periodical_jxgys200409016.aspx

用c#进行Solidworks二次开发的简单步骤

用c#进行Solidworks二次开发的简单步骤1.录制宏 2.在Solidworks里画一个圆柱,画完后点停止,并将录制结果保存为.csproj 3.点击编辑,打开刚才保存的结果(默认是用vs2005打开的) 4.在项目里添加窗体输入框等 5.修改、添加窗体代码(加粗的部分是必须的) using https://www.wendangku.net/doc/117697114.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using SolidWorks.Interop.sldworks;//需要添加的引用 using SolidWorks.Interop.swconst;//需要添加的引用 namespace Macro3.csproj { publicpartialclass Form1 : Form { SldWorks swApp = null; ModelDoc2 swModel = null; public Form1(SldWorks iswApp)//把SolidWorksMacro.cs下的swApp传递过来 { InitializeComponent(); swApp = iswApp; swModel = (ModelDoc2)swApp.ActiveDoc;

} privatevoid Form1_Load(object sender, EventArgs e) { } privatevoid button1_Click(object sender, EventArgs e) { long r=0,h=0; if (swModel == null) swApp.SendMsgToUser("请新建一个零件!"); else { if (long.TryParse(textBox1.Text,out r) &&long.TryParse(textBox2.Text,out h)) CreatCylinder(r, h); else MessageBox.Show("请输入有效的直径和高度!"); } } privatevoid CreatCylinder(double r, double h) //从main()函数下粘贴过来的代码,这里改写成一 个方法 { bool boolstatus = false; boolstatus = swModel.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, false, 0, null, 0); swModel.SketchManager.InsertSketch(true); SketchSegment skSegment = null; skSegment = ((SketchSegment)(swModel.SketchManager.CreateCircle(0, 0, 0, r, 0, 0))); boolstatus = swModel.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, false, 0, null, 0); Feature myFeature = null; myFeature = ((Feature)(swModel.FeatureManager.FeatureExtrusion2(true, false, false, 0, 0, h, h, false, false, false, false, 0,0, false, false, false, false, true, true, true, 0, 0, false))); } } } 6.修改、添加main()函数代码 using SolidWorks.Interop.sldworks; using SolidWorks.Interop.swconst; using System.Runtime.InteropServices; using System;

SolidWorks二次开发概述

SolidWorks二次开发概述 随着计算机技术的发展,尤其是三维CAD技术的广泛应用,设计者在产品设计时,可以直接在计算机上构造三维实体,进行虚拟装配,利用软件内置的干涉检验等功能可以极大地确保设计合理与高效,缩短产品的设计周期,为产品的更新换代提供较大的便利。设计者使用方便快捷、功能强大的三维CAD软件,与熟悉的Windows界面交互,可大大提高工作效率,也是企业进步的一个内在推动力。 作为三维建模软件中的佼佼者,SolidWorks软件是一款基于Windows平台开发的著名的全参数化三维实体造型软件,其设计过程全相关性,可以在设计过程的任何阶段修改设计,同时牵动相关部分的改变。SolidWorks软件具有强大的零件设计、钣金设计、管理设计、绘制二维工程图、支持异地协同工作等功能,它可以实现由三维实体造型向二维工程图的转化,能够使零件设计、装配设计和工程图保持时刻的全相关和同步。同时SolidWorks具有良好的开放性和兼容性。它不仅可以向下兼容二维AutoGAD,使得以前采用AutoCAD软件进行的设计得以继续使用和转化,同时还可以与许多其它专业软件(如有限元分析软件Ansys、数据加工软件Camworks、数据管理系统SmarTeams、三维实体设计软件UG、Pro/E等)无缝集成为功能十分强大的CAD/GAE/CAM/PDM系统,完全能胜任大型工程与产品的设计、分析、制造和数据管理。然而在工程实践中,其专业针对性不强。因此,人们通常在此平台上运用各种二次开发工具,开发符合国家标准、适合企业实际应用的功能模块,以极大地提高这一通用系统的附加值,提高操作人员的工作效率与产品的质量与市场竞争力,更好地满足企业设计要求,更好地发挥CAD的效能。通过对CAD软件的二次开发,可使CAD软件实现专业化、本地化。 SolidWorks通过COM(Component Object Model,组件对象模型)技术为用户提供了强大的二次开发接口(SolidWorks API),凡支持COM编程的开发工具,如Visual Basic, Delphi等均可用于SolidWorks的二次开发。SolidWorks中常用的API对象如图1所示。SldWorks对象为对SolidWorks工作环境进行访问处理提供了接口。通过此对象可以对SolidWorks工作环境添加菜单、删除菜单、添加工具条、打开文件、新建文件、退出SolidWorks系统。SolidWorks的API对象涵盖了全部的SolidWorks的数据模型,通过对这些对象属性的设置和方法的调用,就可以在用户自己开发的DLL中实现与SolidWorks相同的功能。进行二次开发时,调用SolidWorks中的API函数,可以完成零件的造型和修改,零件各特征的建立、修改、删除和压缩等各项控制,零件特征信息的提取,如特征尺寸的设置与提取,特征所在面的信息提取及各种几何和拓扑信息,零件的装配信息,零件工程图纸中的各项信息等。

solidworks二次开发

2.3 Solidworks 二次开发 Solidworks是在windows环境下实现的三维机械CAD软件。它采用了windows用户界面,拥有强大、动态激活的属性管理器,以灵活的草图绘制为基础,辅助以特征建立能力以及装配控制功能,并提供了自由、开放、功能完整的API开发工具接口。这些功能使solidworks实现了三维CAD软件所提倡的易操作性、高效性以及功能完全性。Solidworks软件进行参数化建模的主要技术特点是: (1)基于特征。将某些具有代表性的平面几何形状定义为特征,并将其所有尺寸存为可调参数,进而形成实体,以此为基础来进行更为复杂的几何形体 的构造。 (2)全尺寸约束。将形状和尺寸联系起来考虑,通过尺寸约束来实现对几何形状的控制。 (3)尺寸驱动设计通过编辑尺寸数值来驱动几何形状的改变,尺寸参数的修改将导致其他相关模块中的相关尺寸的全盘更新。采用这种技术的理由在于它能够彻底地克服了自由建模的无约束状态,几何形状均以尺寸的形式而被牢牢地控制住。 Solidworks通过OLE(对象的嵌入与)或者COM为用户提供了自由开放、功能完整的二次开发接口(API)。因此,凡支持OLE和COM编程的开发工具,诸如Visual Basic、Visual C++等均可用于Solidworks的二次开发,以创建出使用人员所需的、专门化的Solidworks应用模块。Solidworks支撑Activex Automation技术,在VB环境下建立客户程序可以直接访问Solidworks中的对象,在这里,为求方便,我们可将solidworks理解为一个服务程序,把二次开发工具的VB程序作为客户程序,它们之间只是服务器与客户的关系。用户主要在VB上进行操作,VB就可以驱动Solidworks完成相应的工作。通过调用API对象属性的设置和方法,就可以在开发的程序中实现与solidworks相同的功能。对于一般零件我们可采用人机交互的形式建立模型,设定合理的设计变量,再通过VB程序驱动设计变量实现模型的更新方法,系统开发流程如图2-5示:

基于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 我们把刚才宏的所有代码先粘贴过来。通过命令的单词意思我们可以判断,前七句是用来创建新零件的,我们观察第6句,发现这种创建方法与SW的安装位置有关联,所以我们使用下面三句通用的创建零件方法来替代这些代码(忘了是哪位大侠教给笨笨的了,抱歉)。 Set swApp = Set Part = Set Part = 继续往下读,目的是找到创建圆柱体的命令代码。判断的依据是命令的英文词意,再建模的时候我们做了两件事情:创建草图和拉伸。在下面的代码中有两个命令:和,然后打开SW帮助菜单中的API帮助主题。 搜索这两个命令的用法,这样我们就在宏编辑功能的帮助下了结了我们需要的指令代码的用法。 第四步:编写程序 下面的事情就是编程的事了,笨笨的程序里面利用我们上面找到的圆柱体的建模命令来创建一个圆柱阵列,圆柱的高度按照正弦变化,圆柱的位置处在一个圆圈上。编程的思路就是利用循环语句,进行变量运算,然后将变量值付给建模的参数,让建立的圆柱模型的位置(草图圆的位置)和高度(拉伸特征的长度和方向)发生变化。别忘了保存,然后执行这个宏。宏代码和执行结果代码如下:

solidworks二次开发

2、3 Solidworks 二次开发 Solidworks就是在windows环境下实现的三维机械CAD软件。它采用了windows用户界面,拥有强大、动态激活的属性管理器,以灵活的草图绘制为基础,辅助以特征建立能力以及装配控制功能,并提供了自由、开放、功能完整的API开发工具接口。这些功能使solidworks实现了三维CAD软件所提倡的易操作性、高效性以及功能完全性。Solidworks软件进行参数化建模的主要技术特点就是: (1)基于特征。将某些具有代表性的平面几何形状定义为特征,并将其所有尺寸存为可调参数,进而形成实体,以此为基础来进行更为复杂的几何形体 的构造。 (2)全尺寸约束。将形状与尺寸联系起来考虑,通过尺寸约束来实现对几何形状的控制。 (3)尺寸驱动设计通过编辑尺寸数值来驱动几何形状的改变,尺寸参数的修改将导致其她相关模块中的相关尺寸的全盘更新。采用这种技术的理由在于它能够彻底地克服了自由建模的无约束状态,几何形状均以尺寸的形式而被牢牢地控制住。 Solidworks通过OLE(对象的嵌入与链接)或者COM为用户提供了自由开放、功能完整的二次开发接口(API)。因此,凡支持OLE与COM编程的开发工具,诸如Visual Basic、Visual C++等均可用于Solidworks的二次开发,以创建出使用人员所需的、专门化的Solidworks应用模块。Solidworks支撑Activex Automation技术,在VB环境下建立客户程序可以直接访问Solidworks中的对象,在这里,为求方便,我们可将solidworks理解为一个服务程序,把二次开发工具的VB程序作为客户程序,它们之间只就是服务器与客户的关系。用户主要在VB上进行操作,VB就可以驱动Solidworks完成相应的工作。通过调用API对象属性的设置与方法,就可以在开发的程序中实现与solidworks相同的功能。对于一般零件我们可采用人机交互的形式建立模型,设定合理的设计变量,再通过VB程序驱动设计变量实现模型的更新方法,系统开发流程如图2-5示:

Solidworks二次开发遍历

Solidworks二次开发—06—在装配体中添加配合 分类:devil-box about2005-04-07 10:38 1514人阅读评论(3) 收藏举报distanceinputfunctionalignmentobjectassembly Solidworks二次开发—06—在装配体中添加配合 折腾了三天终于完成了计划中的功能模块。在一个装配体中自动判断插入合适的零件,并添加配合。 在前面几篇文章中我已经基本上说明了如何得到零部件的数据信息、如何插入零部件、如何得到已经选择的特征等。 下面只介绍怎样进行配合 在做配合时,需要经常选择到零件的面、线等,这是一个问题,还有就是介绍一下addmate2函数的使用:一般进行配合我们按照下面的次序来进行: 1-ModelDoc.ClearSelection2 ‘取消所有选择 2-选择需要配合的实体(entity) 3-使用AddMate2函数进行配合 4-再次使用 ModelDoc.ClearSelection2 ‘取消所有选择 主要的问题在于如何选择合适的面: 由于面的命名没有什么规律,很多时候是程序自动来命名的,这样,不方便使用selectbyID来选择,我也不想使用坐标值来选择一个面,那样做更加糟糕。 在得到一个组件(component)或者一个特征(feature)时,我们有getfaces、getfirstface、getnextface 等方法,我们可以使用这些方法遍历一个组件或特征等的各个面,来达到选择面的目的,看下面程序:Private Function selectface(dcom As https://www.wendangku.net/doc/117697114.html,ponent2, tp As Integer) As Boolean Set swdowelbody = dcom.GetBody() If swdowelbody Is Nothing Then '错误处理 MsgBox "选择零件失败" selectface = False Exit Function End If Set swDCface = swdowelbody.GetFirstFace ‘得到第一个面 Do While Not swDCface Is Nothing ‘遍历各个面 Set swDsurface = swDCface.GetSurface ‘得到表面对象 If swDsurface.IsCylinder Then ‘如果是圆柱面 If tp = 0 Then 'means cylinder Set swDEnt = swDCface swDEnt.Select4 True, selDdata selectface = True Exit Function End If Else ‘如果是其它,当然实际中我们可能需要使用select来定义好多分支 If tp = 1 Then 'means plane

基于C#的SolidWorks二次开发

摘要: 气动电阻点焊钳已经被各大汽车制造厂商广泛运的用于汽车焊接工艺中。它以无污染、压力稳定、动作敏捷等优点逐步替代了国内常见的液压传动焊钳,改变了液压传动滞缓的现象,从而达到了焊接循环的要求。本次毕业设计中,设计者使用了由微软公司开发的高级程序设计语言——C#(又名C SHARP)通过SolidWorks提供的“对象链接与嵌入技术(OLE)”与“部件对象模式技术(COM)”对SolidWorks进行了二次开发,完成了气动电阻点焊钳零件“电极臂”和“电极杆”的参数化设计及电阻点焊钳三维零件图库的生成任务,能方便设计者根据被加工物体的形状大小自动生成与之相适应的不同型号的电极臂和电极杆零件。 关键词: 电阻点焊钳C# 二次开发SolidWorks 设计者三维零件图库 Abstract: Pneumatic resistance spot welding tongs have been widely used in Welding process of automobile by the major automobile manufacturers. Known for traits such as pollutant-free, pressure stability, and response agility, PRSWT has gradually replaced the usual domestic the hydraulic pliers, improved the sluggishness of Hydraulic transmission and thus satisfies the welding cycle demand. In this Final year Project , designer has used the high-level programming language developed by Microsoft Corp——C#(also called C SHARP) and made secondary development on SolidWorks with the help of OLE(=Object linking and embedding technology) and COM(=Component object model technology) provided by SolidWorks, which completed the parametric design of the Pneumatic resistance spot welding parts — Electrode arm and electrode rod and the create task of 3D Part Library of Resistance spot welding tongs, which enables the designers to automatically generate the Electrode arms and electrode rod parts corresponding to different types according to the shape and size of the object to be processed with greater efficiency. Key words: Resistance spot welding tongs C# Secondary development SolidWorks designers 3D Part Library

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 Object Dim part As Object Dim 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 True part.ClearSelection2 True Dim skSegment As Object Set skSegment = part.SketchManager.CreateCircle(0#, 0#, 0#, Val(Text1.Text) / 2000, 0, 0#) part.ShowNamedView2 "*上下二等角轴测", 8 part.ClearSelection2 True boolstatus = part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0) Dim myFeature As Object Set 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 = False 5.单击VB中的启动按钮,先进性程序调试,调试结果如下: 注意:在solidworks的API函数中的单位是米,如Set skSegment =

solidworks二次开发全教程系列

solidworks二次开发全教程系列 solidworks二次开发-01-录制一个宏 第一步: 我们需要自己录制一个宏,然后看看程序产生了什么代码。当初学习excel时候就是这么干的。只是,solidworks要复杂一些,直接录制的宏不能使用,需要做一些调整。在没有经验的时候我们最好按照下面的建议来做。 Edit or Debug SolidWorks Macro Edit 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个宏程序列表供选择。 In the dialog box, select a macro file (.swp) and click Open. 选择一个宏swp文件 NOTE: You can also edit .swb files, which are older-style SolidWorks macro files. When you run or edit a .swb file, it is automatically converted to a .swp file. 旧的宏文件后缀为swb,你也可以打开swb,那么会自动保存为swp。 Edit or debug the macro. If it is a new macro, be sure to:如果是新的宏 Delete extra lines of code: 删除一些多余的代码: The following variables are declared automatically in a SolidWorks macro. Delete any variables not used in the macro. 这些对象的声明是自动产生的,可以将没用的删除Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim FeatureData As Object Dim Feature As Object Dim Component As Object Delete all lines of code that change the view. 删除切换试图的代码 译者注:像这样的Part.ActiveView().RotateAboutCenter 0.0662574, 0.0346621 无情的删掉吧 Delete all ModelDocExtension::SelectByID2 calls appearing immediately before ModelDoc2::ClearSelection2

solidworks的二次开发

目录 引言 (6) 第一章总论 1.1计算机辅助设计CAD技术 (7) 1.2计算机具设计CAFD (8) 1.3、机床夹具设计历史现状 (8) 第二章夹具库的建立 2.1引言 (9) 2.2 夹具几何建模介绍…………………………………………………………………..….9. 2.3 基于solidworks的夹具建模 (10) 2.4 solidworks的夹具库建立 (11) 2.5 solidworks 的配置技术 (14) 2.6 solidworks在夹具设计中的应用 (17) 第三章VB开发solidworks 3.1、solidworks二次开发步骤………………………………………………………..………17. 3.2、机床夹具库的建立 (18) 3.3、VB连接Access数据库 (18) 3.4、VB连接solidworks (19) 3.5、运行VB程序 (21) 结束语 (24) 参考文献 (25) 致谢 (26)

题目基于三维设计软件专用夹具CAD系统设计 学生:xxx 指导教师:张鹏 摘要计算机辅助夹具设计利用VB语言对solidworks的二次开发,提高了夹具的设计效率,增强了企业的竞争力,降低了设计人员的劳动强度,缩短了产品开发周期,克服了传统的夹具是企业发展瓶颈问题。 论文在开始回顾了CAD/CAM的发展和现状结合我国现在CAFD的现状,提出了建立机床夹具三大元件库的思想,设计CAFD系统,并实现。 在比较现在国内CAD实际情况下,主流的三维软件都具有用户定制功能并提供二次开发工具。通过三维软件的二次开发工具可以把商品化、通用化的CAD系统用户化、本地化,即以CAD系统为基础平台,在软件开发商提供的开发环境和编程接口基础之上,根据自己的技术需要研制开发自己的应用系统,进一步提高产品研发效率。本论文以VB语言为开发工具,以solidworks为编程平台,以access为数据库支持,通过solidworksAPI的二次开发功能实现CAFD系统。 关键字CAD技术solidworks的二次开发VB语言access数据库夹具零部件库

基于3种开发工具的SolidWorks二次开发对比编程实践

基于3种开发工具的SolidWorks二次开发对比编程实践

基于3种开发工具的SolidWorks二次开发对比编程实践 2009年08月12日 e-works 1 前言 随着计算机技术与网络技术的迅速发展,越来越多的企业已经加大对于企业数字化信息化的建设,购买了相应的三维设计软件及其相关产品,这无疑对加速企业产品开发进程,缩短产品制造周期,提高产品质量,增强企业市场竞争力与创新能力发挥着重要作用。然而在工程实践中,其专业针对性不强。为此,人们通常通过对CAD软件的二次开发,开发符合国家标准、适合企业实际应用的功能模块,以极大地提高这一通用系统的附加值,更好地满足企业设计要求,更好地发挥CAD的效能。 SolidWorks软件是一款基于Windows平台开发的著名的全参数化三维实体造型软件,其设计过程全相关性,可以在设计过程的任何阶段修改设计,同时牵动相关部分的改变。同时SolidWorks具有良好的开放性和兼容性。基于这些优点,本文着重对SolidWorks的二次开发进行分析与研究。通过对该软件的二次开发,使其实现专业化、本地化,更大程度上发挥软件的价值,为制造业信息化与快速化服务。 2 SolidWorks二次开发的大体思路与一般方法 SolidWorks通过COM(Component Object Model,组件对象模型)技术为用户提供了强大的二次开发接口(SolidWorks API),凡支持COM编程的开发工具,如Visual Basic, Delphi等均可用于SolidWorks的二次开发。SolidWorks 中常用的API对象如图1所示。SldWorks对象为对SolidWorks工作环境进行访问处理提供了接口。通过此对象可以对SolidWorks工作环境添加菜单、删除菜单、添加工具条、打开文件、新建文件、退出SolidWorks系统。SolidWorks的API对象涵盖了全部的SolidWorks的数据模型,通过对这些对象属性的设置和方法的调用,就可以在用户自己开发的DLL中实现与SolidWorks相同的功能。进行二次开发时,调用SolidWorks中的API函数,可以完成零件的造型和修改,零件各特征的建立、修改、删除和压缩等各项控制,零件特征信息的提取,如特征尺寸的设置与提取,特征所在面的信息提取及各种几何和拓扑信息,零件的装配信息,零件工程图纸中的各项信息等[1]。

SOLIDWORKS二次开发

2.3Solidworks二次开发 Solidworks是在windows环境下实现的三维机械CAD软件。它采用了windows用户界面,拥有强大、动态激活的属性管理器,以灵活的草图绘制为基础,辅助以特征建立能力以及装配控制功能,并提供了自由、开放、功能完整的API开发工具接口。这些功能使solidworks实现了三维CAD软件所提倡的易操作性、高效性以及功能完全性。Solidworks软件进行参数化建模的主要技术特点是: (1)基于特征。将某些具有代表性的平面几何形状定义为特征,并将其所有尺寸存为可调参数,进而形成实体,以此为基础来进行更为复杂的几何形体 的构造。 (2)全尺寸约束。将形状和尺寸联系起来考虑,通过尺寸约束来实现对几何形状的控制。 (3)尺寸驱动设计通过编辑尺寸数值来驱动几何形状的改变,尺寸参数的修改将导致其他相关模块中的相关尺寸的全盘更新。采用这种技术的理由在 于它能够彻底地克服了自由建模的无约束状态,几何形状均以尺寸的形式 而被牢牢地控制住。 Solidworks通过OLE(对象的嵌入与链接)或者COM为用户提供了自由开放、功能完整的二次开发接口(API)。因此,凡支持OLE和COM编程的开发工具,诸如Visual Basic、Visual C++等均可用于Solidworks的二次开发,以创建出使用人员所需的、专门化的Solidworks应用模块。Solidworks支撑Activex Automation技术,在VB环境下建立客户程序可以直接访问Solidworks中的对象,在这里,为求方便,我们可将solidworks理解为一个服务程序,把二次开发工具的VB程序作为客户程序,它们之间只是服务器与客户的关系。用户主要在VB 上进行操作,VB就可以驱动Solidworks完成相应的工作。通过调用API对象属性的设置和方法,就可以在开发的程序中实现与solidworks相同的功能。对于一般零件我们可采用人机交互的形式建立模型,设定合理的设计变量,再通过VB 程序驱动设计变量实现模型的更新方法,系统开发流程如图2-5示:

Solidworks二次开发基本步骤

Solidworks二次开发基本步骤 发表时间: 2009-6-5 来源: 智造网 关键字: solidworks二次开发 因为SW整合了VB编辑器(比较像VB6.0),这个编辑器又可以进行宏与二次开发的制作。这里使用宏的建立来打好基础框架,以简化开发过程。用这种录制宏的方法也可以快速得到SW的操作命令,这比检索全英文的API文档方便。 因为SW整合了VB编辑器(比较像VB6.0),这个编辑器又可以进行宏与二次开发的制作。使用宏的建立来打好基础框架,以简化开发过程。用这种录制宏的方法也可以快速得到SW的操作命令,这比检索全英文的API文档方便。目的:使用简单实例,向新手讲述最基本的二次开发步骤,让没用过二次开发的朋友能够迅速上手。本文需要VB6的基础技术,能看懂VB6程序代码,会写基本程序就行。 第一步:录制宏 运行SW,如图的两种方法开始录制宏

新建一个圆柱体,然后停止录制,并保存文件 第二步:创建程序

使用编辑宏,在VB编辑器中打开刚才制作的宏文件。界面跟VB6是一样的。程序并不长,通过读程序,我们找到刚才所作的两件事情--创建文件和建模的代码,以备后用。 插入用户窗体 投稿或有疑问请联系:MSN:kangta868@https://www.wendangku.net/doc/117697114.html, QQ:1090219530

因为SW整合了VB编辑器(比较像VB6.0),这个编辑器又可以进行宏与二次开发的制作。这里使用宏的建立来打好基础框架,以简化开发过程。用这种录制宏的方法也可以快速得到SW的操作命令,这比检索全英文的API文档方便。 在控件工具箱重托拽一个按钮控件到窗体,如图。把窗体和按钮的Caption属性分别改成:"SW基础二次开发"和"画阵列",这样窗口和按钮的文字就变成我们需要的样子了。当然你也可以写成其他文字。 第三步:整理代码 首先存盘,防止调试过程中死机带来的损失。 然后双基左上角"工程"窗口中的"模块"下我们刚刚建立的那个宏,来显示代码。在"Sub main()"下面一行添加"Sub main()",让程序运行后首先显示刚刚创建的窗口。然后选中"Sub main()"到最后一个"end"之间的所有属于宏的代码,并剪切。这样宏代码就剩下下面的三句。(分隔线上面的声明代码不要动)

Solidworks二次开发入门教程

Solidworks二次开发入门教程连载4:运用VB语言实现二次开发 VB简述 Visual Basic(简称为VB)是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows 环境下的各类应用程序。它简单易学、效率高,且功能强大可以与Windows 专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(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程序

solidworks二次开发

2、3 Sol i dwo r ks 二次开发 S o lidwo r k s就是在windo w s环境下实现得三维机械C AD软件。它采用了 w i ndows 用户界面,拥有强大、动态激活得属性管理器,以灵活得草图绘制为基础,辅助以特征建立能力以及装配控制功能,并提供了自由、开放、功能完整得A PI开发工具接口。这些功能使s o l i dwor k s实现了三维CAD软件所提倡得易操作性、高效性以及功能完全性.So 1 id wo rk s软件进行参数化建模得主要技术特点就是: (1)基于特征。将某些具有代表性得平面几何形状定义为特征,并将其所有尺寸存为可调参数,进而形成实体,以此为基础来进行更为复杂得几何形体得构造。 (2)全尺寸约束。将形状与尺寸联系起来考虑,通过尺寸约束来实现对几何形状得控制. (3)尺寸驱动设计通过编辑尺寸数值来驱动几何形状得改变,尺寸参数得修改将导致其她相关模块中得相关尺寸得全盘更新.采用这种技术得理由在于它能 够彻底地克服了自由建模得无约束状态,几何形状均以尺寸得形式而被牢牢地控制住。 Solidworks通过OL E (对象得嵌入与链接)或者为用户提供了自由开放、功能完整得二次开发接口(A P I).因此,凡支持OL E与编程得开发工具,诸如V i su al B a si c>V isu a l C+ +等均可用于Soli d works得二次开发,以创建出使用人员所需得、专门化得So lid works应用模块.Solidwo rk s支撑A c ti v e x A utomation技术,在VB环境下建立客户程序可以直接访问S olid wo r k s中得对象,在这里,为求方便,我们可将so lidwor k s理解为一个服务程序,把二次开发工具得VB 程序作为客户程序,它们之间只就是服务器与客户得关系。用户主要在VB上进行操作,VB就可以驱动S o li d wor ks完成相应得工作.通过调用A P I 对象属性得设置与方法,就可以在开发得程序中实现与solidwork s相同得功能.对于一般零件我们可采用人机交互得形式建立模型,设定合理得设计变量,再通过VB 程序驱动设计变量实现模型得更新方法,系统开发流程如图2—5 示: 开始

相关文档