文档库 最新最全的文档下载
当前位置:文档库 › 基于SolidWorks的二次开发参数化设计

基于SolidWorks的二次开发参数化设计

基于SolidWorks的二次开发参数化设计
基于SolidWorks的二次开发参数化设计

目录

摘要 (1)

前言 (2)

第2章曲轴设计主要参数的确定 (2)

2.1 曲轴设计参数取值范围的确定 (3)

2.1.1主轴颈直径d1 (3)

2.1.2主轴颈宽度L1 (3)

2.1.3 曲柄销直径d2 (3)

2.1.4曲柄销长度L2 (4)

2.1.5曲柄臂的宽度(b) 和厚度(h) (4)

第3章四缸机曲轴模型二次开发驱动原理 (5)

3.1 二次开发技术的研究 (5)

3.1.1二次开发的策略 (5)

3.1.2 设计计算系统开发工具的选择 (5)

3.1.3 三维建模系统开发工具的选择 (6)

3.1.4 驱动环境的选择 (6)

3.2 二次开发的关键技术 (7)

3.2.1 OLE Automation技术 (7)

3.2.2 ActiveX部件技术 (7)

3.2.3 参数化设计技术 (7)

3.2.4 用户界面技术 (8)

3.3 SolidWorks API函数的应用结构层次 (8)

第4章二次开发采用的方法选择 (9)

4.1 用VB开发人机交互界面 (9)

4.2 各参数模块的工能 (10)

第5章四缸机曲轴零件三维建模系统的研究 (12)

5.1 曲轴零件三维建模的结构分析 (12)

5.2 VB与SolidWorks建立通讯 (12)

5.3 零件自动建模实现 (14)

5.3.1 圆柱类实体拉伸 (14)

5.3.2 平衡臂拉伸 (15)

5.3.3 旋转切除 (18)

5.3.4实体镜像 (21)

5.3.5 生成圆角 (22)

5.3.6 旋转特征 (23)

第6章总结与展望 (26)

6.1 论文工作总结 (26)

6.2 论文工作展望 (27)

结论 (27)

参考文献 (27)

致谢........................................ 错误!未定义书签。

基于SolidWorks的曲轴零件的参数化设计

摘要:曲轴是发动机中将活塞的往复运动转化为圆周运动的核心部件,对于同一种机型,在研发和改进过程中曲轴的尺寸参数变化相对较少。以Visual Basic 6.0为开发工具,可以实现直列四缸发动机机曲轴零件的参数的确定。以三维特征造型软件Solid Works为开发平台,可以设计基于特征的四缸机曲轴零件三维模型的参数化系统,通过改变零件主要参数的程序参数化和交互式参数化两种方法完成模型尺寸的实时修改,生成新的模型,快速完成四缸机曲轴零件的三维模型设计。

本文建立的基于特征的直列四缸发动机机曲轴三维造型系统可以完成主要零件的三维动态造型工作,为后续的强度分析、性能分析、制造加工等奠定一定的基础。关键词:曲轴,VB, Solid Works,二次开发,参数化

Abstract:The engine will crank reciprocating piston into circular motion of the core components, for the same model, in the process of developing and improving crankshaft relatively small size parameters. With Visual Basic 6.0, development tools, inline four-cylinder engine can achieve the parameters todetermine crankshaft parts, as well as automatic calculation of geometricalparameters. Three-dimensional features of Solid Works modeling software for the development platform, feature-based three-dimensional model four-cylinder engine crankshaft parts of the system parameters, you can change the parts of the main parameters of the process parameters and interactive parameters for model size of two real-timechanges , update model size, generate a new model, fast four-cylinder engine crankshaft parts to complete three-dimensional model of the design.

In this paper, based on characteristics of the inline four-cylinder engine crankshaft to complete three-dimensional modeling system of the main components of the three-dimensional dynamic modeling work, the intensity of follow-up analysis, performance analysis, manufacturing and processing to lay a foundation.

Key words:crankshaft, VB, Solid Works, secondary development, parametric

前言

在汽车发动机的众多构成件当中,曲轴是发动机中最重要、载荷最重、工作环境最复杂、价格最贵的零件之一,被喻为发动机的脊梁骨。正确合理的四缸机曲轴设计对发动机运行性能有着重要的影响,但由于曲轴的生产主要为主机配套,国内曲轴系列化、通用化和规范化程度很低,即使同一型号的四缸机曲轴,零件图纸的技术标准也可能各有差异,互不通用。国内四缸机曲轴产品设计的混乱状况,给用户的使用选择带来了很大困难[1]。由此可见,根据发动机的工况条件及发展趋势,设计出一套列系列化、通用化的直列四缸发动机机曲轴,以供各式发动机设计匹配时选用,是发动机四缸机曲轴设计的未来之路。

第2章曲轴设计主要参数的确定

曲轴是发动机中价格最贵的重要零件。其成本大致占整机成本的1/10 。曲轴承受着由缸内气体作用力、往复惯性力和旋转惯性力引起的周期性变化的弯曲和扭转负荷[1]。一般情况下,曲轴最常见的损坏原因是弯曲疲劳。归纳起来对曲轴设计要求有以下几个方面曲轴的设计要求:

①足够的疲劳强度,设计时特别要设法缓和应力集中现象,尽可能加强弯曲疲劳强度较弱的曲臂部分,选用适当材料或采用必要的强化工艺措施。

②尽可能大的弯曲刚度和扭转刚度,以保证活塞连杆组和个轴承的可靠工作,避免产生严重的扭振、纵振和横振。为了提高弯曲刚度,最好是增加轴颈的直径,尽量争取较大的轴颈重叠度和减小跨度。为了提高扭转刚度,也需加粗轴颈和减小曲轴的总长。但是由于曲柄销直径的加大不仅受到活塞拆装的限制,而且会因转动惯量的增加导致扭振固有频率降低,对扭振不利,因此应该主要加粗主轴颈,并尽量将曲柄销作成空心的。同样的道理,应尽量减小平衡块的重量和消除曲柄臂的肩部。

③应保证主轴承和曲柄销轴承有足够的承压面积和可靠的润滑,轴颈具有良好的耐磨性。为此要在曲轴及轴承材料的选择、制造工艺、降低轴承负荷及合理设计润滑油道等方面给与保证。

③尽可能采用普通材料,如碳素钢或球墨铸铁,以降低制造成本,采用高合金钢材料,对应力集中比较敏感,表面粗糙度要好,否则疲劳强度会下降,过渡区应应力不能集中。

上述这些要求之间是存在矛盾的。保证曲轴有足够的疲劳强度是曲轴设计的首要问题。曲轴各轴颈的尺寸还应满足轴承承压能力和润滑条件的要求。另一方面,曲轴轴颈直径增加会使摩擦损失增加。以下根据曲轴设计要求和经验公式对曲轴部分参数进行校验对比。

2.1 曲轴设计参数取值范围的确定

2.1.1主轴颈直径d1

从理论上讲,主轴径承受力要比曲柄销小一半,但为了提高整根曲轴的刚度,一般设计要求d1>d2,柴油机取d1/D=0.67~0.8,汽油机取d1/D = 0.65~0.75 一般取值在经验公式范围内偏高,主轴径直径偏大。

2.1.2主轴颈宽度L1

一般经验数值柴油机为L1/D=0.40~0.45,汽油机为L1/D=0.35~0.45 通常为提高曲轴整体刚性,中间主轴颈比其余的宽一些,一般取值应低于正常值,但因主轴颈承受载荷比曲轴柄低一半,相对比压要低得多,一般不会有太大影响。

2.1.3 曲柄销直径d2

d2越大,可承受扭矩大,发动机功率越大。

但d2增大,则会导致拆卸困难。

d2增大,则曲轴转动惯量越大,易产生共振。

d2增大,若曲臂薄,则易产生应力集中。

d2增大,圆周速度增加,连杆瓦易磨损烧伤。

基于以上原因,高速柴油机的经验数据d2/ D = 0.60~0.70,汽油机的经验数据d2/D= 0.60~0.65对于发动机应在经验公式范围内,一般取值偏低。

2.1.4曲柄销长度L2

比压要满足P = P z JID2/4d2L2

L2/d2要适当,从理论上L2/d2 = 0.3时,承载能力最大,但实际中考虑设计紧凑性和其他相关零部件要求,一般L2/d2应在0.5~0.75范围内。

2.1.5曲柄臂的宽度(b) 和厚度(h)

由曲柄臂受力﹠= 6M/bh来分析,曲柄臂厚h 尽可能大一些,以降低﹠,一般经验h/D = 0.24~0.33,而宽度b 相对影响小一些,但也适当大些,以降低﹠。

最后确定的曲轴各主要部分的参数如表2.1所示:

表2.1曲轴各相对尺寸(与缸径D的比值)

然后,根据汽车工程手册,确定各尺寸参数之间的关系。此时需要注意:①多缸机四缸机曲轴各连杆轴颈等长,而各主轴颈则不一定等长。但只要轴承的承载能力允许,仍宜采用等缸距,即中间几个主轴颈等长,本设计即采用的是等缸距。因为主轴径等长便于采用内铣等先进的加工方法。②主轴颈直径d1一般都比连杆轴颈直径d2稍微大一些,一般d1=(1.05~1.25)d2。③从滑动轴承形成的承压油膜的条件考虑,四缸机曲轴长径比L/d 以0.4为佳(L为轴承的有效宽度)。④四缸机曲轴的重叠度△=(d1+d2)/2–R (R为曲柄半径),如果主轴径和连杆轴颈不重叠,△值为负值。

另外需要说明的是,对于直列四缸发动机,汽缸的直径D取值有一定范围,一般情况下取70~110mm,直列四缸柴油机的功率输出较大,,但不会超出太多。

第3章四缸机曲轴模型二次开发驱动原理

3.1 二次开发技术的研究

3.1.1二次开发的策略

目前二次开发的策略主要有三种:

根据一定的开发环境与工具对平台中CAD/CAM软件库中的各种CAD/CAM 软件进行开发。

①通用、标准的二次开发内容,应该由国家行业统一组织开发,或由有能力的大企业集团、软件公司作为商品开发,将来可以上市场,便于企业选用,防止重复开发。

②过去已开发的成果要推广。有问题的要组织解决,防止重复开发并通过开发逐渐完善各种标准。

②基于一定的CAD/CAM系统支持环境及所提供的开发环境与工具对平台CAD/CAM软件库中要求的某些类零件进行开发。而部分功能零件直接或间接利用平台中提供的能。

③利用这种策略开发人员无需一切从头开始,综合应用软件重用技术与思想和方法进行开发。本文研究开发采用的是最后一种开发策略[2]。

3.1.2 设计计算系统开发工具的选择

Visual Basic是Microsoft公司于1991年推出的Windows应用程序开发工具,从根本上改变了传统的程序设计模式,大大简化了应用程序设计。Visual Basic 采用面向事件和面向对象的程序设计机制,是一种进化了的程序设计系统。它改变了以往的程序设计环境,使程序员只需要花很少的时间来编写程序界面,而把更多的时间集中在要解决的问题上。

基于Visual Basic所开发的模块属于外挂式模块。VB开发可以充分利用宏记录功能。并且使用VB创建窗体方便,很容易编制出直观、友好的程序界面。而且,用VB进行二次开发调试比较容易、开发周期相对于VC开发短。但是,VB开发的exe程序与Solid Works结合不如VC++开发的DLL插件模块结合紧密,相比之下运行速度较慢。但是用VB编写程序更容易,开发界面直观,并且提供了大量的ActiveX控件支持,减轻了程序员的开发负担[3]。综合上述因素,论文采用VB进行二次开发。

3.1.3 三维建模系统开发工具的选择

就目前国内状况而言,大多数CAD二次开发都是以AutoCAD基础,但

Aut0CAD有许多不足地方,如它的三维建模手段弱。UG、Pro/E、CATIA大型软件尽管提供了VC++的开发方法和接口,但开发起来比较困难。

Solid Works 是一套基于Windows 的CAD桌面集成系统,是由美国Solid Works公司在总结和继承了大型机械CAD软件的基础上,在Windows环境下实现的第一个机械三维CAD 软件。Solid Works的基本特性与以前的桌面CAD机械设计系统相比较具有以下特性:

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

(1)具有独特的特征管理员历史树;

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

(3)提供了VB、VBA(宏记录)、Visual C++、Delphi等支持OLE(Object

Linking and Embedding,对象链接与嵌入)或COM(Component

Object Model,组件对象模型)的开发语言接口用于Solid Works 的二次

开发,创建出用户定制的专用Solid Works功能模块。

由于Solid Works可以采用宏录制的方式自动产生程序代码,可以大大缩短编程的工作时间,因此本文采用Solid Works 2010为开发平台。

3.1.4 驱动环境的选择

开发环境是指进行软件开发的硬件环境和软件环境。硬件环境:PentiumⅣ以上微机,内存1G以上,要求256M显存(最好配有图形加速卡),显示1024*768,USB接口、光驱和其它的外部设备。软件环境:操作系统为Windows XP。

由于本文参数化建模依托于三维造型软件Solid Works,所以Solid Works便成为了系统开发的唯一工作平台。而利用VB对Solid Works API进行二次开发,驱动Solid Works按照设计意图去工作就成为了系统设计的基本思想。

3.2 二次开发的关键技术

3.2.1 OLE Automation技术

OLE(Object Linking And Embedding)是对象链接与嵌入技术的简称,利用OLE技术,用户可以通过使用来自两个或多个Windows应用程序的资源解决复杂的应用问题。OLE提供了方便的技术用来将文档和来自不同程序的各种类型数据结合起来。Solid Works支持OLE标准,用户可以在自己开发的应用软件中实现诸如创建直线、构造实体、检查曲面表面参数等几乎所有的软件的功能。Solid Works 提供数据操纵接口函数API,专门读写三维零件数据,并提供了一系列的Automation接口(包括对象、属性和方法),使用户进行二次开发更加容易。在开发时,运用0LE Automation技术,会减小开发的难度,使系统更加稳定可靠[4]。

3.2.2 ActiveX部件技术

ActiveX部件是一个包含可执行代码的文件*.exe、*.dll或*.ocx文件,它提供的对象可被其它应用程序和部件使用[5]。由于四缸机曲轴零件参数化设计系统并没有特别复杂的图形计算,各模块与主程序之间的通讯并不是太多,程序最终选用Active EXE 部件。

3.2.3 参数化设计技术

参数化设计(Parametric Design也叫尺寸驱动Dimension-Driven)是CAD 技术在实际应用中提出的课题。二十世纪八十年代中期,PTC公司开始研制参数化软件Pro/E,九十年代参数化技术变得比较成熟起来,充分体现在许多通用件,零部件设计上存在简单易行的优势。目前参数化设计的方法主要有以下几种:

(1)基于几何约束的数学方法

(2)基于几何原理的人工智能方法

(3)基于构造工程方法

(4)参数化设计技术以约束造型为核心,以尺寸驱动为特征,允许设计者先进行

草图设计,绘制设计轮廓,然后再输入精确尺寸值完成最终设计。

3.2.4 用户界面技术

在产品设计过程中,追求用户界面的美观是每一个设计人员在软件开发时都必须考虑的因素。用户界面(Use Interface)又称人机界面,它是用户与计算机之间进行信息交换的中间媒介[2]。

在对用户界面进行设计时,要做到使其具有可靠性、简洁性、易学性、易使用性和即时反馈性。并使用户在操作时感到方便和舒适,输入操作时,应尽量的简单,易记。对不重要或常用参数设置为缺省值。在对话框中随时给出运行状态的提示,防止错误的积累,允许用户进行改正,可以进行重复性的使用等[5]。

3.3 Solid Works API函数的应用结构层次

Solid Works的二次开发采用基于COM的技术,用户可以使用Solid Works API(Application Programming Interface,应用程序接口),通过VB对Solid Works进行二次开发[6]。Solid Works将其内部数据以对象的形式组织起来,并构成了一个层次结构。最顶层对象为Solid Works Application,它是其他对象的父对象,可以用VB的函数Create Object获得对象关联[1]。

图3.1 Solid works API函数应用结构层次图

Solid Works中常用的主要OLE对象有SldWorks、ModelDoc、PartDoc、AssemblyDoc、DrawingDoc、Sketch、Dimension等。SldWorks对象位于应用程序的底层,可以实现应用程序的最基本的操作,如创建、打开、关闭和退出SolidWorks文档,设置当前的活动文档,并可以对Solid Works的系统环境进行设置。ModelDoc对象属于模型层,可以实现视图设置、轮廓线修改、参数控制、对象选择/打开和保存文档、创建编辑特征参量、创建框架等与实体模型相关的各类操作。ModelDoc对象包括PartDoc、AssemblyDoc和DrawingDoc等三个常用的对象。它包括Configuration、Feature、Attribute、RefAxis、RefPlane、MidSurface和Body等子对象。Feature子对象用于访问特征类型、名称、参数,以及特征管理器中设计树的下一级特征。Sketch对象允许获取关于轮廓线的基本信息;Dimension对象用于设置尺寸标注值和公差标注等内容[2]。

第4章二次开发采用的方法选择

VB是目前Windows平台下的优秀开发工具,支持各类最新的Windows技术,拥有强大的数据库编程能力,利用VB对Solid Works进行二次开发,可以将数据库技术与Solid Works的强大设计能力结合,实现功能强大的用户定制模块。而且使用Solid Works录制的VBA宏文件可直接用于VB程序中,因此使用VB最为二次开发工具,开发周期短,代码效率高[7]。

VB对OLE的支持有多种方式,如果使用OLE控件,或者在运行时创建OLE 对象等方法。通常为了更好的对OLE对像进行控制,多采用程序运行时创建OLE 对象。

4.1 用VB开发人机交互界面

对话框是一种方便、实用的人机交互界面,在CAD软件中使用十分广泛[8]。Solid Works 允许用户用Visual Basic创建自己的对话框,并在对话框中添加所需的控件。但是Solid Works对VB 程序的格式有一定的要求,我们可以通过不同的方法来运行Visual Basic应用程序,例如可以不用编译直接在SolidWorks中运行(用Basic开发的程序把后缀替换为.swp,这类程序通常是只用来调用SolidWorks API 函数库)、当作一个独立的.exe 文件(可执行文件)来运行以及在其它应用程序(如Excel)中运行等等[3]。本文创建的VB界面如下图4.1所示:

图4.1 欢迎界面

当用户打开应用程序后首先进入的是欢迎界面,用户可以点击“退出”退出按钮突出程序,或者点击“开始”按钮进入主窗体。主窗体的形式如图4.2所示:

图4.2四缸机曲轴参数化设计系统主窗体

4.2 各参数模块的工能

主窗体中调用了一系列控件和函数,将主窗口按照曲轴设计系统的设计过程分成了几个主要模块,其中包括曲轴的主要参数模块、数据库模块、计算轴颈过渡圆角r 和重合度△的模块、按照发动机类型进行输入参数检测的数据可行性检测模块、文件系统模块以及其他参数模块[2]。各自的功能说明如下:

(1)主要参数模块

主要参数模块允许用户直接输入自己的设计参数,也可以直接提取数据库中已经保存的参数。这些参数包括发动机型号、汽缸直径D、活塞行程S、主轴颈直径d1主轴颈长度L1、连杆轴颈直径d2、连杆轴颈长度L2以及平衡壁厚度h。并且模块中给出了相应的提示,以确保用户输入的参数符合汽车设计手册给出的设计标准。

(2)计算r和重合度△模块

计算r和重合度△模块的主要功能是根据用户输入的主要参数计算轴颈过渡圆角r 和重合度△的数值,并将计算结果直观的显示在相应的文本框中,以便用户进行修改。其中过渡圆角的计算公式为:r=0.045*D。

重合度△的计算公式为:△=(d1+d2)/2–R (R为曲柄半径)。

(3)数据可行性检测模块

数据可行性模块的主要功能是根据用户选择的发动机类型和在主要参数模块输入的主要参数,与曲轴各主要相对尺寸(与缸径D的比值)表进行对比查看主要参数模块输入的参数是否在规定的范围内。由于曲轴加工技术的进步和材料技术的发展,现在已经有很多曲轴的参数已经超出了经验参数的许可范围,例如一汽的CA488所用的曲轴。因此在用户使用本程序时,虽然有的参数不符合标准,但是当点击“启动Solid Works绘制曲轴”按钮后,仍然能够驱动Solid Works生成曲轴实体的模型,但是发生错误的可能性较大。

(4)其他参数模块

其他参数模块主要是让用户输入右端飞轮连接轴的参数和左端带轮联结轴的参数。这些参数用户可以根据自己的需要输入。

(5)数据库模块

用Microsoft Access建立各主要参数的数据库。

数据库模块隐含在主窗体中,用户可以利用“添加”、“删除”、“查询”等按钮对数据库进行操作。用户也可以利用主窗体底部的date1控件按钮浏览数据库的内容。

(6)文件管理模块

文件管理模块的主要功能是预先设定生成文件的保存位置和保存的文件名。等驱动程序完成曲轴零件实体模型的绘制后会将零件文件以预定的文件名自动的保存到指定位置。这个模块主要使用了Drive控件、Dir控件和File控件。

第5章四缸机曲轴零件三维建模系统的研究

5.1 曲轴零件三维建模的结构分析

曲轴主要由主轴颈、连杆轴颈、平衡臂及平衡块、两端动力输出轴组成。主轴颈和连杆轴颈都是简单的圆柱体可以先绘制圆再通过拉伸特征生成。平衡臂及平衡块的外形比较复杂,可以使用由多段圆弧和直线组成的封闭曲线做拉伸特征生成平衡块实体。两端的输出轴结构大致相同,可以分别使用旋转特征将事先绘制好的封闭曲线旋转成阶梯轴。

主要的实体建模过程如下:拉伸1/2长度的主轴颈圆柱——拉伸平衡块——拉伸1/2长度的连杆轴颈直径——镜像——绘制1/2长度的主轴颈——拉伸平衡块——拉伸曲柄轴颈——拉伸平衡块——拉伸主轴颈——实体镜像——旋转两端的动力输出轴。

5.2 VB与Solid Works建立通讯

用VB进行基于Solid Works的四缸机曲轴系统开发时,首先要将VB与Solid Works连接起来,这需要两个步骤[9]:

①在编写代码之前,在VB编程环境中引用Solid Works的对象库SLdWorks2010 Type Library、Solid Works 2010 Constant type library 和Solid Works Utilities 2010 Type Library[10]。如下图5.1所示。

图5.1 需要引用的对象库

②编写VB程序代码,创建Solid Works对象,启动并运行Solid Works。VB 中的Variant类型可用于OLE对象变量的声明,CreateObject函数用于创建OLE 对象。

用Visual Basic 6.0 开发的程序段前面必须包含以下代码[11]:

Dim swap As Object

Dim Part As Object

Dim boolstatus As Object

Dim longstatus As Object

Dim Annotation As Object

Dim Gtol As Object

Dim DatumTag As Object

Dim FeatureData As Object

Dim Feature As Object

Dim Component As Object

Private Sub Command1_Click()

Set swApp=Creat eObject(“SldWorks.Application”)

Set Part=swap.ActivateDoc

End Sub

创建了新的零件文档后 ,需要通过定义对象与数据 ,调用创建草图、实体的API函数来进行零件参数化建模代码的编写[12]。

Dim swApp As Object //定义应用程序对象

Dim Part As Object //定义零件对象

Dim boolstatus As Boolean //定义布尔变量

Dim longstatus As Long , longwarnings As Long //定义变量为长整型主要调用的API有:

ModelDocExtension::SelectByID2 //选择草绘平面和创建特征用到的轮廓

ModelDoc2::CreateCircle2 、ModelDoc2 ::CreateLine2、ModelDoc2::SketchRectangle

//创建圆、直线、矩形草图。

FeatureManager::FeatureExtrusion2、FeatureManager : :FeatureRevolve

//创建拉伸、旋转特征。

ModelDoc2::Parameter //零件草图标注 ,实现尺寸参数化

5.3 零件自动建模实现

首先,针对要建立的四缸机曲轴零件实体,分析其结构,区分特征的主次,然后利用SolidWorks建立四缸机曲轴零件的特征,可以使用事先录制的宏代码,但是有很多操作宏文件无法记录 ,需要编写代码调用相关API绘图函数[12]。

根据前面查表得到的参数值 ,依次绘制曲轴实体零件。在设计过程中将会用到SelectByID(选择草图、基准轴等图形对象) 、ClearSelection2 (清除选择) 、CreateCircle (绘制圆) 、CreateLine(绘制直线)、ShowNamedView2 (显示视图) 、FeatureExtrusion (拉伸特征) 、FeatureRevolveCut (旋转切除特征) 、ActivateSelect2edFeature (激活选中特征) 、FeatureFillet(倒角特征)、MirrorFeature (实体镜像特征)等方法[13]。

5.3.1 圆柱类实体拉伸

零件文件创建完成后,可以调用草图命令,特征命令,基准面选择命令等进行实体零件的绘制,下面的程序段可以完成绘制圆并且将其拉伸成一个圆柱实体零件:swApp.ActivateDoc2 "零件1", False, longstatus //激活新建的零件文件Set Part = swApp.ActiveDoc //激活绘图窗口

Dim myModelView As Object

Set myModelView = Part.ActiveView //设置可见状态

myModelView.FrameState = swWindowState_e.swWindowMaximized Part.ClearSelection2 True // 清除选择

Part.InsertSketch2 ture //开始绘制草图

Part.CreateCircle 0, 0, 0, d1, 0, 0 //安装圆心、圆上一点的坐标绘制圆Set swFeatMgr = Part.FeatureManager //调用特征管理器

boolstatus = Part.Extension.SelectByID2("草图1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0) //按照坐标选择草图,准备拉伸

Part.FeatureManager.FeatureExtrusion2 True, False, False, 0, 0, L, 0, False, False, False, False, 0, 0, False, False, False, False, 1, 1, 1, 0, 0, False

//拉伸特征命令,将以前绘制的圆拉伸成圆柱实体零件,该命令中的L为实体拉伸长度。生成的圆柱如下图5.2所示:

图5.2 轴颈(圆柱)拉伸示意图

5.3.2 平衡臂拉伸

圆柱实体绘制完成后,需要在圆柱实体的基础上生成曲轴零件平衡块和平衡臂部分,下面的程序段可以完成曲轴零件上平衡臂和平衡块部分的绘制:其大致绘制过程为:选择绘制平面——草图绘制——草图镜像——拉伸——生成平衡块实体

Dim h as dobule //定义平衡块的拉伸厚度

Part.ViewZoomtofit2 '整屏显示全图

boolstatus = Part.Extension.SelectByID2("", "FACE", 0, 0, 0.0015 + L1 / 2, False, 0, Nothing, 0) //按照三维坐标选择选择圆柱上草图绘制平面boolstatus = Part.Extension.SelectByID("前视", "PLANE", 0, 0, 0, False, 0, Nothing) //选择草图绘制的基准面

Dim skSegment As Object

Set skSegment = Part.SketchManager.CreateCenterLine(-0.1, 0#, 0#, 0.1, 0#, 0#) //绘制中心线

Set skSegment = Part.SketchManager.CreateCenterLine(0#, 0.1, 0#, 0#, -0.1, 0#) //绘制中心线

Part.SketchAddConstraints "sgFIXED" //草图固定命令,约束绘制的草图实体

Part.ClearSelection2 True

Set skSegment = Part.SketchManager.CreateArc(0#, 0#, 0#, 0#, 0.0755 * PR, 0#, -0.021******** * PR, 0.0722******* * PR, 0#, 1) //按照圆心坐标、圆上第一点坐标、圆上第二点坐标绘制圆弧

Part.SketchAddConstraints "sgFIXED" // 固定

Set skSegment = Part.SketchManager.CreateArc(0#, 0#, 0#,

-0.07094679287 * PR, -0.025******** * PR, 0#, 0#, -0.0755 * PR, 0#, 1) '绘制最大圆弧下

Part.SketchAddConstraints "sgFIXED" // 固定

Set skSegment = Part.SketchManager.CreateArc(0#, 0.045 * PR, 0#,

-0.021******** * PR, 0.0722******* * PR, 0#, -0.027******** * PR,

0.0662******* * PR, 0#, 1) //绘制中圆弧

Part.SketchAddConstraints "sgFIXED" // 固定

Part.ClearSelection2 True

Set skSegment = Part.SketchManager.CreateLine(-0.045 * PR, 0.015 * PR, 0#, -0.045 * PR, -0.01637866054 * PR, 0#) //绘制竖直短直线Part.SketchAddConstraints "sgFIXED" // 固定

Part.ClearSelection2 True

Set skSegment = Part.SketchManager.CreateTangentArc(-0.045 * PR, 0.015 * PR, 0#, -0.027807 * PR, 0.066255 * PR, 0#, 1) //绘制圆弧

Part.ClearSelection2 True

Set skSegment = Part.SketchManager.CreateLine(-0.045 * PR,

-0.01637866054 * PR, 0#, -0.07094679287 * PR, -0.025******** * PR, 0#) //绘制20度直线

Part.SketchAddConstraints "sgFIXED" //固定

Part.ClearSelection2 True

//下面的boolstatus= Part.Extension.SelectByID2命令可以跟据草图上的三维坐标选择草图实体,为下一步的草图镜像做准备

boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 8.523598276367E-05 * PR, -0.03122433774834 * PR, 0, True, 0, Nothing, 0) //选择草图镜像的中心线

boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", -0.007316088520548 * PR, 0.07378195364238 * PR, 0, True, 0, Nothing, 0)

boolstatus = Part.Extension.SelectByID2("Arc3", "SKETCHSEGMENT", -0.02489423421591 * PR, 0.0682309602649 * PR, 0, True, 0, Nothing, 0)

boolstatus = Part.Extension.SelectByID2("Arc4", "SKETCHSEGMENT", -0.03414588984505 * PR, 0.05342831125828 * PR, 0, True, 0, Nothing, 0)

boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", -0.04524787660002 * PR, -0.005319701986755 * PR, 0, True, 0, Nothing, 0)

boolstatus = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", -0.05542469779207 * PR, -0.01919718543046 * PR, 0, True, 0, Nothing, 0)

boolstatus = Part.Extension.SelectByID2("Arc2", "SKETCHSEGMENT", -0.06143827395101 * PR, -0.04371407284768 * PR, 0, True, 0, Nothing, 0)

Part.SketchMirror //调用草图镜像命令开始草图镜像,进而生成平衡块草图轮廓(镜像基准为最先选择的中心线Ceterline)

Dim myFeature As Object

Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, h, 0.01, False, False, False, False, 0, 0, False, False, False, False, True, True, True, 0, 0, False)

Part.SelectionManager.EnableContourSelection = False //按照平衡块的厚度(h)拉伸成平衡块

Part.ViewZoomtofit2 //整屏显示全图,平衡块拉伸完成

生成的平衡块实体如下图5.3所示:

图5.3 平衡块拉伸示意图

在这个阶段非常重要的是利用草图命令绘制的圆弧、直线等草图实体,在进行草图镜像后必须生成封闭的草图实体轮廓,否则不能进行拉伸。由于SolidWorks的草图实体绘制具有自动捕捉功能,当草图绘制时,新绘制的的草图坐标点可能因与邻近的草图发生捕捉,进而影响草图绘制精度,这就需要进行利用

Part.SketchAddConstraints "sgFIXED"(草图实体固定命令)对绘制的草图进行固定,以防止其因为对象捕捉引起的草图位置偏移。

5.3.3 旋转切除

曲轴实体上有几处需要进行旋切的地方,以达到平衡块的平衡性能,并且减少材料的利用。

旋切的大致过程为:新建基准面——绘制旋转切除所需要的中心线——绘制封闭的草图实体轮廓——旋转切除。

boolstatus = Part.Extension.SelectByID2("上视基准面", "PLANE", 0, 0, 0, True, 0, Nothing, 0) //开始新建基准面1 Dim myRefPlane As Object

Set myRefPlane = Part.FeatureManager.InsertRefPlane(8, 0.02 * PR, 0, 0, 0, 0)

//完成新建基准面

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

用c#进行Solidworks二次开发的简单步骤1.录制宏 2.在Solidworks里画一个圆柱,画完后点停止,并将录制结果保存为.csproj 3.点击编辑,打开刚才保存的结果(默认是用vs2005打开的) 4.在项目里添加窗体输入框等 5.修改、添加窗体代码(加粗的部分是必须的) using https://www.wendangku.net/doc/761427805.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的参数化功能有多种实现方式

SolidWorks的参数化功能有多种实现方式,本文详细介绍了利用Excel表格驱动SolidWorks模型的方法:通过Excel输入参数,利用Excel表格ActiveX控件、方便的数据计算能力,结合SolidWorks方程式及宏功能,实现对SolidWorks模型尺寸修改及更新。 参数化设计方法就是将模型中的定量信息变量化,使之成为任意调整的参数。对于变量化参数赋予不同数值,就可得到不同大小和形状的零件模型。 用CAD方法开发产品时,产品设计模型的建立速度是决定整个产品开发效率的关键。如果该设计是从概念创意开始,则产品开发初期,零件形状和尺寸有一定模糊性,要在装配验证、性能分析之后才能确定,这就希望零件模型具有易于修改的柔性;如果该设计是改型设计,则快速重用现有的设计数据,不啻为一种聪明的做法。无论哪种方式,如果能采用参数化设计,其效率和准确性将会有极大的提高。 在CAD中要实现参数化设计,参数化模型的建立是关键。参数化模型表示了零件图形的几何约束、尺寸约束和工程约束。几何约束是指几何元素之间的拓扑约束关系,如平行、垂直、相切和对称等;尺寸约束则是通过尺寸标注表示的约束,如距离尺寸、角度尺寸和半径尺寸等;工程约束是指尺寸之间的约束关系,通过定义尺寸变量及它们之间在数值上和逻辑上的关系来表示。 在参数化设计系统中,设计人员根据工程关系和几何关系来指定设计要求。要满足这些设计要求,不仅需要考虑尺寸或工程参数的初值,而且要在每次改变这些设计参数时维护这些基本关系。即将参数分为两类:其一为各种尺寸值,称为可变参数;其二为几何元素间的各种连续几何信息,称为不变参数。参数化设计的本质是在可变参数的作用下,系统能够自动维护所有的不变参数。因此,参数化模型中建立的各种约束关系,正是体现了设计人员的设计意图。 SolidWorks是典型的参数化设计软件,参数化功能非常强大,并且实现方法多种多样。笔者今天介绍一种通过Excel表格对模型参数进行驱动的方法,其特点是充分利用Excel 表格强大的公式计算、直观的参数输入、方便的数据维护功能,来实现产品的参数化、系列化设计。如图1所示Excel表格,展示的是一个压力容器的法兰参数。表中直观地将不同法兰用不同颜色体现,并对应相同颜色块的参数。该参数采用下拉列表的方式,直接选取即可,最后只需要点击右下角的“更新法兰参数”,SolidWorks中的模型便实时得到更新。

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的参数化设计 □李轩斌单红梅韩玲 【摘要】论述了SolidWorks环境中,通过产品、部件和零件三者之间参数关联,用一种基于装配约束的参数化设计方法实现部件的参数化建模,阐述了这种参数化设计方法中的关键技术,包括产品结构的划分、尺寸分析、关联设计、基于布局草图的装配体设计和方程式的添加;运用部件参数化设计方法构建SolidWorks部件库。采用这种方法,有利于产品的修改和系列化,提高设计效率。 【关键词】SolidWorks;装配约束;参数化设计;零部件库 【作者简介】李轩斌(1972 ),男,长春轨道客车股份有限公司工程师;研究方向:夹具设计与焊接数控编程 单红梅,女,吉林大学交通学院助工,博士;研究方向:车辆智能化检测 韩玲,女,吉林大学交通学院载运工具运用工程专业在读博士 一、引言 机械制造业的设计制造水平,在很大程度上反映出企业工艺技术水平和制造能力的高低,直接影响着机械产品的加工质量、工人的劳动强度、生产效率和生产成本。 为了提高设计质量和设计效率,提高企业市场竞争力,多年来,许多企业一直致力于参数化设计的研究。大量三维实体造型软件崛起,推动了设计领域的新革命,SolidWorks就是优秀的三维参数化设计软件之一。这些三维软件,不仅仅可创建三维实体模型,还可利用设计出的三维模型来进行模拟装配和静态干涉检查、机构分析、动态干涉检查、动力学分析、强度分析等,产品设计也由原先的二维平面设计向着三维化、集成化、智能化和网络化方向发展,三维CAD的开发受到了普遍关注,并取得了较快的进展。SolidWorks是完全基于Windows的三维CAD/CAE/CAM软件。它采用与UG相同的底层图形核心Parasolid,具有强大的基于特征的参数化实体建模能力,然而要使SolidWorks软件真正为我国企业带来经济效益,必须使其国产化、专业化。 采用参数化设计技术,可以大大提高产品的设计速度。在大多数工程设计中,一个产品往往是多个零件的组合。将零件参数化的思想扩展到部件参数化设计中,实现部件整体参数化设计,无疑会更大程度地提高设计效率,为企业创造经济效益。部件参数化设计的实现以各组成零件的参数化设计为基础,但又不是组成部件的各零件的参数化的简单累加。部件的参数化问题除需解决各组成零件的参数化设计以外,还必须解决参数化时的同步更新问题。所谓的同步更新,是指当进行部件的参数化设计时,对其中某一个零件进行了更改,要求能够引起与之关联的一个或者多个零件的同步更新。同步更新主要有两方面要求,一是部件参数化设计中,各零件的相对位置关系要始终保持正确,二是各零件之间有配合关系的尺寸参数始终保持正确。 二、部件参数化设计方法 本文采用了一种基于装配体的参数化设计方法,来实现部件的参数化。其基本思想是:在参数化零件的基础上,引入零件装配关系作为约束,合理地建立零件之间的装配约束关系,以确保零件之间的相对位置关系;同时建立零部件相互关联的参数之间的关系,以保证参数之间能够联动。这样就可以实现同步更新,在此基础上建立部件的装配布局图,最终实现整个部件的参数化设计。 (一)产品结构的划分。复杂的产品按照功能和企业的生产组织特点分解为一系列的部件,而每个部件可能还会进一步划分为子部件和零件,尤其在民用飞机、汽车等产品中,产品构成十分复杂,涉及到机械、电气、液压、附件(如座椅、 原理都与之不符。现在迈克尔逊-莫雷实验同样被证明是没有说服力的,看来,相对论理论是站不住脚的。由此引发的直接效果就是量子理论失去了理论基础,同样是不科学的。 那么是不是就证明了牛顿力学的绝对正确性呢?起码目前不能这样讲,因为在近代毕竟发现了经典理论不能解释的物理现象。但可以肯定的是,这些现象肯定不能由相对论理论或现有的量子理论来科学解释,需要利用全新的科学方法重新研究和解决。 由此看来,惯性系变换引发的高速粒子的动力学问题是一项十分复杂的物理学课题,目前物理学界对于该问题的认知是不准确的,也是远远不够的,因此非常有必要进行科学细致地研究。 【参考文献】 1.郭硕鸿.电动力学[M].北京:高等教育出版社(第2版),1997 2.周世勋.量子力学教程[M].北京:高等教育出版社(第1版),1979 · 94 ·

基于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帮助主题。 搜索这两个命令的用法,这样我们就在宏编辑功能的帮助下了结了我们需要的指令代码的用法。 第四步:编写程序 下面的事情就是编程的事了,笨笨的程序里面利用我们上面找到的圆柱体的建模命令来创建一个圆柱阵列,圆柱的高度按照正弦变化,圆柱的位置处在一个圆圈上。编程的思路就是利用循环语句,进行变量运算,然后将变量值付给建模的参数,让建立的圆柱模型的位置(草图圆的位置)和高度(拉伸特征的长度和方向)发生变化。别忘了保存,然后执行这个宏。宏代码和执行结果代码如下:

SOLIDWORK教程功能简介及参数化草图绘制

第1 章Solidworks设计基础 【教学提示】 SolidWork是由美国SolidWorks公司(该公司是法国Dassult System公司的子公司)于1995年推出的三维机械CAD软件,它具有基于特征、单一数据库、参数化设计及全相关性等特点。本章主要对Solidworks做个概略性的介绍,使学生对SolidWorks的基本知识有一定的了解,为以后的学习打好基础。 【教学要求】 了解SolidWorks 软件的特点 熟悉SolidWorks 工作环境 掌握在SolidWorks 工作环境中文件的打开、保存等基本操作,掌握三维建模的流程。 1.1 CAD 技术的发展及SolidWorks 概述 CAD(Computer Aided Design)就是设计者利用以计算机为主的一整套系统在产品的全生命周期内帮助设计者进行产品的概念设计、方案设计、结构设计、工程分析、模拟仿真、工程绘图、文档整理等方面的工作。CAD既是一门多学科的交叉学科,它涉及计算机学科、数学学科、信息学科、工程技术等;CAD也是一项高新技术,它对企业产品质量的提高、产品设计及制造周期的缩短、提高企业对动态多变市场的响应能力及企业竞争能力都具有重要的作用。CAD技术在各行各业都得到了广泛的推广应用。SolidWorks 正是优秀CAD软件的典型代表之一。SolidWorks 作为Windows 平台下的机械设计软件,完全融入了Windows 软件使用方便和操作简单的特点,其强大的设计功能可以满足一般机械产品的设计需要 1.1.1 CAD技术的产生与发展 20世纪60年代初,美国麻省理工学院MIT开发了名为Sketchpad的计算机交互处理系统,并描述了人机对话设计和制造的全过程,这就是CAD/CAM的雏形,形成了最初的CAD 概念:科学计算、绘图。计算机在设计过程中的应用,形成了CAD 系统。 从20世纪60年代初到70年代中期,CAD从封闭的专用系统走向开放式的商品化软件系统,主要技术特点是二维、三维线框造型,其软件系统只能表达基本的几何信息,不能有效表达几何数据间的拓扑关系;且系统需配备大型计算机系统,价格昂贵。此时期有代表性的产品是:美国通用汽车公司的DAC-1,洛克希德公司的CADAM系统。在此时期CAD开始进入应用阶段。 20世纪70年代后期,CAD系统进入发展时期。一方面CAD系统硬件价格下降;同时,飞机和汽车工业蓬勃正值发展时期,飞机和汽车制造中遇到了大量的自由曲面问题,法国达索飞机制造公司率先开发出以表面模型为特点的曲面建模方法,推出了三维曲面造型系统CATIA,该系统采用多截面视图、特征纬线的方式来近似表达自由曲面。该阶段的主要技术特点是自由曲面造型。曲面造型系统为人类带来了第一次CAD技术革命。此后一些军用工业相继开发了CAD 软件,如美国洛克希德公司的CADAM、美国通用电气公司的CADAM、美国通用电气公司的CALMA、美国波音公司的CV、美国国家航空及宇航局(NASA)支持开发的I-DEAS、美国麦道公司开发的UG等。

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示:

SOLIDWORK教程-功能简介及参数化草图绘制

第 1 章Solidworks设计基础 【教学提示】 SolidWork是由美国SolidWorks公司(该公司是法国Dassult System公司的子公司)于 1995年推出的三维机械CAD软件,它具有基于特征、单一数据库、参数化设计及全相关性等特点。本章主要对Solidworks做个概略性的介绍,使学生对SolidWorks的基本知识有一定的了解,为以后的学习打好基础。 【教学要求】 了解SolidWorks 软件的特点 熟悉SolidWorks 工作环境 掌握在SolidWorks 工作环境中文件的打开、保存等基本操作,掌握三维建模的流程。 1.1 CAD 技术的发展及SolidWorks 概述 CAD(Computer Aided Design)就是设计者利用以计算机为主的一整套系统在产品的全生命周期内帮助设计者进行产品的概念设计、方案设计、结构设计、工程分析、模拟仿真、工程绘图、文档整理等方面的工作。CAD既是一门多学科的交叉学科,它涉及计算机学科、数学学科、信息学科、工程技术等;CAD也是一项高新技术,它对企业产品质量的提高、产品设计及制造周期的缩短、提高企业对动态多变市场的响应能力及企业竞争能力都具有重要的作用。CAD技术在各行各业都得到了广泛的推广应用。SolidWorks 正是优秀CAD软件的典型代表之一。SolidWorks 作为Windows 平台下的机械设计软件,完全融入了Windows 软件使用方便和操作简单的特点,其强大的设计功能可以满足一般机械产品的设计需要 1.1.1 CAD技术的产生与发展 20世纪60年代初,美国麻省理工学院MIT开发了名为Sketchpad的计算机交互处理系统,并描述了人机对话设计和制造的全过程,这就是CAD/CAM的雏形,形成了最初的CAD 概念:科学计算、绘图。计算机在设计过程中的应用,形成了CAD 系统。 从20世纪60年代初到70年代中期,CAD从封闭的专用系统走向开放式的商品化软件系统,主要技术特点是二维、三维线框造型,其软件系统只能表达基本的几何信息,不能有效表达几何数据间的拓扑关系;且系统需配备大型计算机系统,价格昂贵。此时期有代表性的产品是:美国通用汽车公司的DAC-1,洛克希德公司的CADAM系统。在此时期CAD开始进入应用阶段。 20世纪70年代后期,CAD系统进入发展时期。一方面CAD系统硬件价格下降;同时,飞机和汽车工业蓬勃正值发展时期,飞机和汽车制造中遇到了大量的自由曲面问题,法国达索飞机制造公司率先开发出以表面模型为特点的曲面建模方法,推出了三维曲面造型系统CATIA,该系统采用多截面视图、特征纬线的方式来近似表达自由曲面。该阶段的主要技术特点是自由曲面造型。曲面造型系统为人类带来了第一次CAD技术革命。此后一些军用工业相继开发了CAD 软件,如美国洛克希德公司的CADAM、美国通用电气公司的CADAM、美国通用电气公司的CALMA、美国波音公司的CV、美国国家航空及宇航局(NASA)支持开发的I-DEAS、美国麦道公司开发的UG等。 -可编辑-

基于Solidworks的零件参数化设计

基于Solidworks的零件参数化设计摘要:论述了利用Visual C++ 6.0对Solidworks进行二次开发的基本原理和一些关键技术,开发了可以与Solidworks无缝集成的动态链接库DLL,并且介绍了一个简单的应用实例的实现。 0 引言 Solidworks是一款非常优秀的三维机械软件,其易学易用、全中文界面等特点深受广大工程技术人员喜欢。随着学习和使用Solidwork的人员越来越多,企业为了提高效率和市场竞争力,必然有快速开发新产品、形成自身产品特色的需求,而且对于一些存在着许多重复性的劳动的产品设计需要缩短产品的开发周期。因此有必要对SolidWorks进行二次开发,使其能够在输入少量变化参数的情况下迅速生成所有产品模型并装配,最终生成工程图。 SolidWorks二次开发分两种,一种是基于OLE Automation的IDispatch技术,一般常用于Visual Basic、Delphi编程语言的接口,通过IDispatch接口暴露对象的属性和方法,以便在客户程序中使用这些属性并调用它所支持的方法,此种技术只能开发EXE 形式的程序,所开发的软件不能直接加挂在SolidWorks 系统下,无法实现与SolidWorks 的集成;另一种开发方式是基于COM的,这种技术可以使用最多的SolidWorks API(Application Programming Interface,应用程序接口) 函数。实际上SolidWorks 本身就是用Visual C++编写的,所以使用Visual C++通过COM接口

开发,可以实现对SolidWorks底层的开发并且代码的执行效率高。因为本文开发的是SolidWorks DLL(Dynamic Link Library,动态链接库) 插件,故采用基于COM的开发方式。 1 SolidWorks二次开发原理 1.1 SolidWorks API中的术语 COM(Component Object Model,组件对象模型)技术是SolidWorks API的基础,COM对象是一种包含接口、属性和事件以对象形式封装的实体,它以接口的方式提供服务,这种接口是COM 对象与使用COM对象的客户程序进行通信的唯一通道。 OLE (Object Linking and Embedding,对象的链接和嵌入)可以使应用程序之间能够通过数据嵌入或链接的方式共享数据。它是SolidWorks API构造的基础,是深入理解SolidWorks API的关键。SolidWorks API是SolidWorks作为OLE自动化服务器提供的属性和方法,我们开发的插件就是使用这些接口的OLE客户。 1.2 开发工具Visual C++ 6.0 SolidWorks API是基于COM组件技术构造的,SolidWorks通过COM技术为开发人员提供了强大的二次开发接口,因此Visual C++ 6.0作为当今最流行的软件开发工具之一,是程序员的首选编程利器。它提供了强大的集成开发环境,用以方便、有效地管理、编写、编译、跟踪C++程序,大大加速了程序员的工作,提高了程序代码

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/761427805.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

SolidWorks零件设计表运用参数化设计

SolidWorks零件设计表运用参数化设计 1.首先以现有零部件为基准。例如:一个套筒,在现实使用中,套筒为铸铝成型,所以套 筒的长度在实际产品配对中,其长度L是多种多样的。示例中:默认L=10mm。 2.选择SW中插入→表格→设计表,进入界面。如下图所示:

3.默认选择自动生成,选择所需草图特征,确认后进入设计表格。如下图所示: 4.选中表格中“普通”右击选择“设置单元格格式”选择“常规”进行确认,将表格中: “普通”转换零件尺寸数值。(如同Excel表格操作一样)

5.在本示例中,我们所关心的只是套筒L长度,所以可以把表格中后面三项“套筒的内径”、 “套筒的外径”以及“旋转生成所需的中心轴”草图特征删除。同时为便于查看表格,可以对表格进行优化(根据个人习惯,无非就是单元格的插入、删除、输入而已)。如下图所示: 6.依次在表格中输入我们所需要的参数值,示例中,我们取套筒五种型号,从P01到P05, 长度依次递增10mm,(注:在输入新的L值时,我们输入的是数字但有可能会显示出文字“普通”,只需参照步骤4设置单元格格式即可调节成数值)如下图:

7.到此为止,我们设计表中的参数已设置好,只需在SW界面中,鼠标点击设计表以外的 操作区域,设计表将会自动保存。弹出如下对话框,点击确定即可! 8.回到SW界面设计树中,选择“配置”界面,如下图所示。可以清楚的看到我们刚刚在 设计表中所输入的参数值。可以把不需要的配置删除(例如:默认这个配置),保留我们所需。

9. 点击我们所做的配置,可以相应得到套筒的不同规格长度L 。如下图所示: 1)P01,L=10mm

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

相关文档
相关文档 最新文档