2023年11月30日发(作者:)

SolidWorks系统简介

目前,在我国的CAD市场上比较流行的三维CAD软件有SolidWorksMDTUGPro/

E SolidEdge 等。但就价位来讲SolidWorksMDTSolidEdge是中低档价位的产品,UG

Pro/E

IDEAS是高中档价位的产品。

SolidWorks是一套基于WindowsCAD/CAE/CAM/PDM桌面集成系统,是美国SolidWo

rks公司在总结和继承了大型机械CAD软件的基础上,在Windows环境下实现的第一个

机械三维CAD软件,于199511月研制成功。它全面采用非全约束的特征建模技术,

其设计过程全相关性,可以在设计过程的任何阶段修改设计。同时牵动相关部分的修改。

它即提供自底向上的装配方法,同时还提供自顶向下的装配方法。自顶向下的装配方法使

工程师能在装配环境中参考装配体的其他零件的位置及尺寸设计新的零件,更加符合工程

习惯。它具有独创性的封装功能,可以分块处理复杂的装配体。具有产品配置功能,为

用户设计不同构性的产品。它集成了设计、分析、加工和数据管理过程,所获得的分析和

加工模拟结果成为产品模型的属性,SolidWorks的特征管理器中清晰的列出了详细的数

据信息。它还可以动态模拟装配过程,进行静态干涉检查、计算质量特征,如质心、惯性

矩等。它将2D造型绘图与3D造型技术融为一体,能自动生成零件尺寸、材料明细表(B

OM)、具有指引线的零部件编号等技术资料,从而简化了工程图样的生成过程。同时有

中英文两种界面可以选择,其先进的特征树结构使操作更加简便和直观。具有交好的开发

性接口和功能扩充性。能轻松实现各种CAD软件之间的数据转换传送。

目前,SolidWorks的全球用户超过20万,国外大多数制造公司招聘时都要求应聘人具备

操作SolidWorks的能力。国际上很多一流的名校都将SolidWorks定为大学本科学生的必

修课,如麻省理工学院、英国剑桥大学等。95%的西方企业要求员工回运用SolidWorks

件,SolidWorks连续几年被美国一些杂志评为优秀的CAD软件。

但是SolidWorks也并非十全十美,不可能满足特定企业的特殊要求。例如,由于该软件是

外国人写的,不适合中国的国标,如标题栏、明细表、放大图的标注、剖视图的标注、装

配图的序号等。也没有适合我国国标的标准件库。因此,为了适应特定企业的特殊要求,

形成企业自己的特色,使SolidWorks在我国的企业中有效的发挥作用,并使常用的或是重

复的任务自动化,提高效率,就必须对其进行本土化和专业化的二次开发工作。

SolidWorks 系统具有如下的特点:

(1) 具有独特的特征管理员,提供的特征管理员设计历史树同具体的实体模型是实时的动态

联接;

(2) 具有强大的实体建模功能和直观的Windows 用户界面;

(3) 支持Windows DDE 机制和OLE 技术;

(4) 支持Internet 技术,可以共享设计数据;

(5) 双向关联的尺寸驱动机制;

(6) 提供了VB ,VC + + 和其他支持OLE 的开发语言接口;

(7) 给基于Windows 的桌面集成赋予了新的含义。

2006-6-3 06:30

回复

2

赵の山河

它以Wi

ndow

s 为平

,集成

了动态

仿真软

(Moti

onwork

s) 工程

分析软

(CosMo

- Solid

Worksor

ks) 、数

控加工

软件(Su

rfCA

M) 、以

及工程

了解此

系统的

最新发

展情况,

或获得

最新的

技术支

持。

造型

功能

工程绘

图系统

Drawin

g 主要

用于三

维模型

的工程

图纸绘

制与输

,可同

时编辑

上的尺

寸或造

型变化

,图纸

也相应

图中未

给出的

信息,

加工注

意点、

料选择

等。

装配

功能

一个零

件。Soli

dWork

s 可以

模拟仿

真装配

的全过

程。

二次开

虽然Sol

idWork

s 所提

供的功

能非常

强大,

要使其

户可以

使用高

级语言

对其进

行二次

开发,

立适合

用户需

要的、

用的Sol

idWorks

功能模

块。Soli

dWork

s 是一

个非常

Solid

Work

s AP

I 函数,

可以完

成零件

的建造、

修改;

件各特

征的建

立、修

改、删

除、压

缩等各

项控制;

2006-6-3 06:30

回复

赵の山河

嵌入到

它的管

理系统

中。

3

为了方便用户进行二次开发,SolidWorks提供了几百个API

函数,这些APISolidWorksOLECOM接口,用户

可以使用VB/VC等高级语言对其进行二次开发,建立适合

用户需要的、专用的SolidWorks功能模块。要顺利对Solid

Works进行二次开发,以下的基本术语是需要知道的。

OLE技术

OLE就是对象的嵌入与连接,它使得应用程序之间能够通

过数据的嵌入或连接的方式来共享数据。含有嵌入或连接文

档的应用程序被称为容器程序,提供文档数据编辑的应用程

序被称为服务器程序。OLE2.0推出以后,OLE已经不再是

对象的嵌入和连接的缩略词。不妨认为ActiveXOLE3.0

事实上ActiveXOLE在网络上的扩展,它使用了OLE

术并且超过了本地机器的范围。自动化技术Automation

OLE技术的一个重要内容。直到今天,自动化技术扩充和

发展为ActiveX Automation它适用于OLE对象和ActiveX

对象。自动化技术由客户程序和服务器程序组成,客户程序

是操纵者与控制者,服务器程序是被控制者,它包含了一系

列的暴露对象。服务器应用程序通过自身对象的属性、方法、

事件外显其功能;对象的服务器程序简单而抽象的代表。

客户应用程序则通过操纵服务器应用程序所暴露的一系列

对象来操纵服务器应用程序。只要服务器程序提供一定的接

口,可以使任何对象实现自动化。对象包含的一些外部接口,

它们被称为方法与属性。方法是自动化对象的一些函数,

们是提供给客户程序的外部公共成员函数,属性是一个对象

的一些命名特性,即对象的一些共有数据域。操纵程序被称

为客户(Client),而被操纵程序称为服务器(Server),被操纵的

对象是ActiveX对象如果应用程序支持OLE技术,则在不

同应用程序之间的切换由OLE自动完成。SolidWoks支持O

LE标准,完全实现了OLE自动化,前已提及,SolidWoks

具有开放的结构体系,它的这种开放性体现在它所提供的A

PI对象上。API是一个对SolidWoks的应用编程接口(Appli

cation Programming Interface)包含了几百个对象及其属性、

方法和事件,这正是SolidWoks为用户提供的功能强大的二

2006-6-3 06:30

回复

赵の山河

次开发接口,凡支持OLE编程的开发工具,如 Visual C++

Visual BasicDephi等均可从各自本身操作这些对象,从而

直接行使SolidWoks的功能,如画一条直线,拉伸一个凸台,

或修改一个表面的参数等。利用这种方法可以完成SolidWo

ks的二次开发,创建出用户定制的、专用的SolidWoks功能

模块。在本课题中,我们用VB来控制SolidWoks提供的各

种对象,即把VB 作为客户程序,SolidWoks作为服务器程

序。

ActiveX技术

ActiveX是微软新近提出的一种技术,它以COM为基础,

其中包括了OLE技术以及应用于internet的多种技术。它使

得不同的进程,甚至是网络上的进程之间相互通信,并朝着

多媒体方向发展。ActiveX是一种面向对象的组件系统,其

中包括了组件软件的各个方面,有复杂文档、自定义控制、

OLE自动化、交互应用程序脚本、数据传送及其他分布软

件的相互作用。这些组件对象为用户提供了不同的功能,使

得不同的软件供应商提供的组件可以在

4

二进制之间进行相互的连接和通信。对象通过接口实现组件

之间以及组件与系统之间的相互作用。在桌面系统进行软件

交互时,除了系统提供的标准控制外,OLE控件是一个重

要的组成部分。ActiveX是一种标准,利用这个标准可以使

用通过不同的语言开发的软件构件在单机或网络环境中相

互操作。同时,ActiveX也是以组件对象模型为基础的开放

技术的集合,它代表了应用程序与internet的一种集成策略。

OLE Automation技术

自动化技术(Automation)为软件之间的交互创造了条件,它

允许多个应用程序或组件之间进行通讯和交互,而与它们的

语言、分布和原始平台无关。在开发标准件库时,运用OL

E(Object Linking and Embedding)Automation技术,无疑会减

小开发的难度,使系统更加稳定可靠。SolidWorks系统提供

数据操纵接口函数API专门读写三维零件数据,并提供了

一系列的Automation接口(包括对象、属性和方法),使用户

进行二次开发更加容易。运用Automation技术使得在自己

的应用程序中驱动三维CAD系统中的零件变的有可能而且

容易。

2006-6-3 06:31

回复

尺寸驱动原理

本论文对标准件建模采用尺寸驱动原理,即标准件的生成也

是对相应标准件模板进行尺寸驱动的过程。尺寸驱动即在零

件拓扑结构不变的情况下,把零件的尺寸参数定义为尺寸变

量,并定义出变量间的关系,当给定不同的尺寸值,就可得

到一组结构相同而尺寸不同的零件,每一类标准件对应一个

模板文件,在模板文件中定义尺寸变量和变量间的关系。

于三维CAD都采用了参数化的设计方法,在开发标准件库

时没有必要再做尺寸约束求解,所以零件的最后生成可以依

靠系统参数化功能来实现,即通过用新的尺寸值对实现准备

好标准件模板进行尺寸驱动来生成一个新的标准件。

在工程实践中用到的具有系列尺寸的标准件,其尺寸参数可

分为独立参数和非独立参数,独立参数中包含了主驱动参数

(称之为基本参数)和自定义特性参数。一般只要给定独立参

数,即可唯一确定零件的全部几何参数(非独立参数可由主

驱动参数从标准件特性参数库中取得)。例如GB5780-86

其螺纹规格,螺杆长度,螺纹长度为三个独立参数,由用户

根据自身需要进行选取。螺纹规格确定之后,螺栓的六角头

厚度,扳手宽,倒角半径等尺寸即可从特性参数库中获得,

从而可以对形状模式库中的对应的形状模型进行尺寸驱动,

实现零件建模。

2.2 SolidWorksAPI函数介绍

2.2.1 SolidWorks 的对象模型

相关术语

对象类定义了具有相同结构和操作的一组对象,其最基本的

特征是封装和继承。作为一种抽象数据,对象把实体的相关

特征和操作封装在一起,允许人们以自然的方式去模拟外部

实体的结构和行为;继承是对象类实现可复用性和可扩充性

的重要特征。一个对象类可以定义为另一个更一般的特殊情

, 这个对象类是特殊对象类的父类( SuperClass) ,或者说,

5

特殊对象是这个一般对象的子类(SubClass) ,子类继承父类

的所有属性和操作,除此以外子类还可以定义自己特有的属

性和操作。继承是对象类的一种特例化关系,亦即集合包含

关系,

赵の山河

2006-6-3 06:31

回复

赵の山河

子类对象实例集合是父类对象实例集合的子集。

2.1

对象模型

SolidWorks 的对象模型是一个多层次的对象网络,如图2.1

所示。最高级别的对象类是SldWorks ,该对象中封装了很多

方法(Methods) , OpenDoc2 ActivateDoc2 CloseDocE

xitApp,下面又创建了许多子类, ModelDocEnvironment

Frame。本文将重点介绍ModelDoc 对象,因为大部分绘图操

作都在ModelDoc 对象中, SelectByID (选择) CreateCirc

le2 ( 画圆) CreateLine2 ( 画直线)ModelDoc 中又创建了P

artDocAssemblyDocDrawingDoc 等子类。其中大部分实

体建模操作都在PartDoc 对象中,FeatureExtrusion (拉伸)

FeatureRevolve (旋转);而相关的装配操作如AddComponen

t (插入零部件) AddMate (插入配合) 等都在AssemblyDo

c 对象中。

2.2.2 对象的属性和方法

SolidWorks 创建的对象中,每个对象都有自己的属性和方

,通过调用API 函数实现,反过来,应用SolidWorks 的每一

步操作都体现在特定的对象类中。下面以VB 为开发平台介

绍其一些常用的API 函数。

连接SolidWorks

在对SolidWorks 进行二次开发时,首先要建立SolidWorks

连接,创建SolidWorks 的应用对象:

Dim swApp As Object

Set swApp = CreateObject (ation)

通过这个函数,就打开了SolidWorks 的接口,可以调用它的A

PI 函数了。

建立新的零件图、装配图

创建零件图:

6

Dim Part As Object

Set Part = t

创建装配图:

Dim Assem As Object

Set Assem = embly

这两个函数创建了一个新的工作区,使我们能够进行建模和

装配。

选择

选择可以说是在使用SolidWorks 时用得最多的一个命令,

有很多命令在使用时都要选择操作对象,通过调用ModelDo

c 对象中的SelectByID 函数来实现:

ByID(objectName ,object Type ,x , y , z)

这个函数在应用时需要输入五个参数:objectName 表示要选

择对象的名称,该名称是SolidWorks在创建对象时按先后顺

序自动命名的,如基准面1 基准面2 Arc1 Line3 D1 @

1 @;object Type 要输入对象的类型,PLA

NE () SKETCHSEGMENT (草图上的对象如直线、圆弧

) DIMENSION (尺寸标注);x , y , z 是平面上任一点的坐

标值。

插入草图

在所选平面上插入草图,调用ModelDoc 中的InsertSketch

: Sketch ()

基本草图绘制命令

画直线调用ModelDoc 对象中的CreateLine2 函数:ModelDo

Line2 (xStart ,yStart ,zStart ,xEnd , yEnd , zEnd )[.Con

st ructionGeomet ry =True ]xStart yStart zStart xEndy

EndzEnd 分别是直线的起点和终点坐标; Const ructionGeo

met ry =True 时表示画中心辅助线。画圆调用ModelDoc

象中的CreateCircle2函数:Circle2 (xc ,yc ,z

c ,xp ,yp ,zp)xcyczcxp yp zp 分别是圆心和圆上一

点的坐标值。标注尺寸先通过SelectByID 函数选择要标注

的对象,再调用ModelDoc 中的AddDimension 函数:ModelDo

ension ( x , y , z)xyz 为尺寸文本所要放的位置

的坐标值。

基本实体建模命令

拉伸调用PartDoc 中的FeatureExtrusion 函数:

eExtrusion(sd ,flip ,dir ,t1 ,t2 , d1 ,d2 ,dchk1 ,dc

hk2 ,ddir1

,ddir2 ,dang1 ,dang2 ,off setReverse1 ,off setReverse2)sd TR

UE 时表示单向拉伸,FALSE 时双向拉伸,0 1 表示;di

r TRUE 时表示正向拉伸,为真时有效;dir TRUE 时表示

反向拉伸,为真时有效; t1 t2 表示终止类型,可取下列

: 0 (给定深度) 1 (贯穿) 2 (为贯穿下一个) 3 (成形到

一顶点) 4 (成形到一面) 5 (到离指定面指定的距离) 6 (

2006-6-3 06:31

回复

赵の山河

侧对称) ; d1 , d2 表示拉伸的深度; ddir1 ddir2 TRUE

表示带拔模角拉伸;dang1 dang2 TRUE时表示向内拔模,

FALSE 是向外拔模;off setRe2verse1 , off setReverse2

制到离指定面指定的距离,t1 t2 5 时有效。其中d2

dchk2

7

ddir2 dang2 off setReverse2 在双向拉伸时有效。旋转调

PartDoc FeatureRevolve 函数:eRevolve (a

ngle ,reverseDir ,angle2 ,revType)angle 表示旋转的角度;rever

seDir 控制旋转的方向,TRUE 时表示反向, revTyp 1

无效; an2gle2 表示旋转的反向角度,仅当revTyp 2 时有效;

revTyp 表示旋转类型,0 时单方向旋转,1 时双向等角度

旋转,2 时双向旋转。倒角调用ModelDoc 中的FeatureCh

amfer2

Type 函数:eChamferType(chamfer Type , wi

dth ,angle ,flip ,

otherDist ,vertexChamDist1 ,vertexChamDist2 ,vertexChamDis

t3)chamfer Type 控制倒角的类型,可取下列值: 1(角度- 距离

控制) 2 (距离- 距离控制) 3 (顶点-倒角控制) 4 (两边等

距离控制) ;width 表示倒角边距;angle 表示倒角角度,仅当ch

amfer Type1 1 时有效;otherDist 表示chamfer Type 2

的另一边距; vertexChamDist1vertexChamDist2 vertex2C

hamDist3 表示chamfer Type 3 时的三个距离。

基本装配命令

零件的建模完成后,即可进行零件的装配,先调用swApp

NewAssembly 函数新建一个空白装配文档,再通过调用A

ssemblyDoc 中的AddComponent 函数插入零部件:

ponent (compName ,x , y , z)compNam

e 表示要加入组件的路径及名称; x ,y , z 表示组件在装配文

档中放置的位置。插入配合调用AssemblyDoc 中的AddMat

e 函数:e (mateType ,align ,flip ,dist ,ang

le)mateType 控制配合类型,可取下列值:0 (重合) 1 (同轴

) 2 (垂直) 3 (平行) 4 (相切) 5 (

) 6 (角度) ;align 控制两配合面的方向,0 (同向对齐)

1 (反向对齐) 2 (最近处) ;flip TRUE 时表示延缓配合; di

st 控制mateType 5 时的距离; angle控制mateTyp 6

的角度。

2006-6-3 06:31

回复

赵の山河

2006-6-3 06:31

回复

添加菜单

为了操作方便,把生成标准件的功能挂到Solidworks 装配环

境的菜单和工具栏上,在菜单上的提示为各标准件的名称,

工具条上的提示则为图标,用户要插入某个标准件时,只需在

菜单或工具条上进行选择,然后由开发的程序调用相应的标

准件功能模块。Solidworks SldWorks 对象,VB Soli

dworks 工作环境进行访问处理提供了接口。通过此对象可

以对Solidworks工作环境添加菜单、删除菜单、添加工具条、

打开文件、新建文件、退出Solidworks 系统等功能,这里主

要是通过使用SldWorks 对象的Addmenu Addmenuite

m 方法来在Solidworks工作环境中添加菜单和下拉子菜单

及功能模块的调用;通过使用SldWorks 对象的Addtoolbar

AddToolbarCommand 方法来完成在Solidworks 工作环境中

添加工具条和完成对应标准件功能模块的调用。

Implements n

Dim iSldWorks As ks

Dim iCookie As Long

bRet = inCallbackInfo(nce, Me, i

Cookie)

bRet = u(swDocNONE, "螺纹联接(&L)

", 3)

bRet = uItem2(swDocNONE, iCookie, "

栓库(&S)@螺纹联接(&L)", -1, "LS_Item", "LS_ItemUpdate

", "螺栓标准件库")

8

bRet = uItem2(swDocPART, iCookie, "

栓库(&S)@螺纹联接(&L)", -1, "LS_Item", "LS_ItemUpdate

", "螺栓标准件库")

9

赵の山河

bRet = uItem2(swDocPART, iCookie, "

栓库(&S)@螺纹联接(&L)", -1, "LS_Item", "LS_ItemUpdate

", "螺栓标准件库")工具的VB 程序作为客户程序,它们之间

是服务器与客户的关系。用户只要在VB 上进行操作,VB

驱动SolidWorks完成相应的工作。SolidWorks为二次开发

提供了大量的API 对象,这些对象涵盖了全部的SolidWork

s的数据模型,通过对这些对象属性的设置和方法的调用,

就可以在用户自己开发的DLL 中实现与SolidWorks相同的

功能。

SolidWorks中常用的主要ActiveX Automation 对象有Solid

Works Body ParameterSldworksPartFace Feature

对象等。Sldworks对象为VB SolidWorks工作环境进行

访问处理提供了接口。通过此对象可以对SolidWorks工作

环境添加菜单、删除菜单、添加工具条、打开文件、新建文

件、退出SolidWorks系统。VB 调用SolidWorks中的AP

I 函数,还可以完成零件的建造和修改;零件各特征的建立、

修改、删除和压缩等各项控制;零件特征信息的提取,如特

征尺寸的设置与提取,特征所在面的信息提取及各种几何和

拓扑信息;零件的装配信息;零件工程图纸中的各项信息等。