版权信息
省级大型综合性科技类期刊
主管部门:自治区科技厅
主办单位:自治区科学技术信息研究院 
协办单位:自治区科学技术情报学会
编辑出版:科技期刊编译室
刊社地址:呼和浩特新城西街149号本刊杂志社
邮政编码:010000
电      话:0471-2536371

E-mail  :

nmgkjzz@vip.163.com 

网站地址:www.nmgkjzz.com


往期杂志
当前位置: 首页>往期杂志>详细介绍

基于SolidWorks的编织结构自动化建模系统

时间:2016-03-03来源: 作者: 点击: 449次


宁方刚 苏春磊 徐晓霞 于伟东*

东华大学 纺织学院 产业用纺织品教育部工程研究中心 上海 201620

摘要

本文给出了一种基于SolidWorks软件,运用API二次开发方法实现编织结构自动化建模的思路和方法。文章以solidworks建立的各种编织结构为基础,借助于SolidWorks的API功能,通过录制宏、修改相关参数和界面设计等步骤,建立了编织结构的自动化建模系统,并开发了SolidWorks的菜单插件。通过系统的开发实现了编织结构的自动化建模过程,提高了编织结构设计效率。

关键词

SolidWorks API;编织结构;参数化;二次开发

Automatic modeling system for braided structures based on SolidWorks

NING Fangggang, SU Chunlei, XU Xiaoxia, YU Weidong

Engineering Research Center of Technical Textiles, Textile College, Donghua University, China 201620

Abstract: This paper presents a method of automatic modeling system for braided structures based on SolidWorks API. This system is based on different kinds of braided models which are built in SolidWorks. The SolidWorks API were employed to realize all developing process including macro record, parameters modification and the interface design. This system also includes the menu plugin tool. The development of this automatic modeling system could enhance the ability of design and improve the design efficiency.

Keyword: SolidWorks API; braided structure; parametrizations; secondary development

前言

SolidWorks是基于Windows平台的三维设计软件,它改变了传统的二维绘图的设计方式,采用特征建模、参数化驱动,可方便地设计和修改三维实体模型。利用三维实体模型可以自动生成二维工程图,可以动态模拟装配过程、进行干涉检查,还可以对重要零部件进行有限元分析和优化设计 ADDIN EN.CITE <EndNote><Cite><Author>叶修梓</Author><Year>2009</Year><RecNum>4284</RecNum><DisplayText><style face="superscript">[1]</style></DisplayText><record><rec-number>4284</rec-number><foreign-keys><key app="EN" db-id="zzz9eaap2s0x5te9rwavs9eop9evxxs5z92p" timestamp="1427105449">4284</key></foreign-keys><ref-type name="Book">6</ref-type><contributors><authors><author>叶修梓</author><author>陈超祥</author></authors><secondary-authors><author>生信实维公司</author></secondary-authors></contributors><titles><title>solidworks API二次开发</title></titles><dates><year>2009</year></dates><publisher>机械工业出版社</publisher><urls></urls></record></Cite></EndNote>[1]。尽管三维绘图软件有着诸多的优点,显著地提高了设计速度,然而在当今一些产品的设计过程中却存在着许多重复性的劳动,大大影响了产品的开发周期。其根本原因在于根据不同客户的需求这些产品的尺寸需要改变,而外形却保持一致。所以为了缩短产品开发周期、提高企业的市场竞争能力,有必要对SolidWorks进行二次开发,使其能够在输入少量变化参数的情况下迅速生成所有产品模型。

软件复用又叫软件重用,它是指在程序设计过程中为了不做重复的工作而提出的一种解决方案,这样一来,当再设计系统程序时,就不必要每次都是“从零开始”了,而是可以在现有程序代码的基础上,再次利用先前程序系统开发过程中保留的资料及各种文档、源代码、系统程序插件等,如软件需求分析、软件概要设计、程序设计规划方案等,这样一来程序设计工作者就可以将开发工作的重点集中在应用系统的特有构成成分上。

本文就是通过软件复用基本思想,利用已经完成的各种编织结构模型开发的快速、自动化建模系统,减少了包括软件需要分析、程序概要设计、源代码编写、软件系统测试等许多重复工作,这就大大提高了编织结构设计的工作效率,另一方面,通过复用高质量的已有系统成果,减少了从头开始设计系统所带来的各种各样的错误,从而提高系统程序的运行稳定度及安全性。

1 SolidWorks二次开发的基本原理

对SolidWorks进行二次开发主要通过软件内嵌的API接口,该接口提供了大量OLE对象以及这些对象所拥有的方法和属性,如 REF _Ref414907470 \h 1所示。用户借助高级编程语言作为平台,在设计友好操作界面的同时,通过在程序中调用API对象访问和操作SolidWorks,可以实现SolidWorks建模的几乎所有可能,从而建立适合用户需要的、专用的SolidWorks功能模块。这些专用模块既可通过生成DLL文件作为插件挂接在SolidWorks的菜单下,也可置于用户开发的工具条中,或者独立于SolidWorks之外使用 ADDIN EN.CITE  ADDIN EN.CITE.DATA [2, 3]

2开发的基本思路及界面设计

2.1 开发工具的选择

在 SolidWorks二次开发中,参数化设计的基本方法主要有两种:一种是尺寸驱动法,通过打开已有的模型,利用标注的尺寸来驱动模型的外形,根据用户给定的参数修改尺寸,以生成所需模型。另一种是程序驱动法,直接通过编程来实现模型的建立。这种方式要求操作人员能够熟练地掌握SolidWorks API对象 ADDIN EN.CITE <EndNote><Cite><Author>李晓光</Author><Year>2012</Year><RecNum>4288</RecNum><DisplayText><style face="superscript">[4]</style></DisplayText><record><rec-number>4288</rec-number><foreign-keys><key app="EN" db-id="zzz9eaap2s0x5te9rwavs9eop9evxxs5z92p" timestamp="1427117341">4288</key></foreign-keys><ref-type name="Journal Article">17</ref-type><contributors><authors><author>李晓光</author><author>张链</author></authors></contributors><auth-address>沈阳工业大学辽阳校区;辽阳石油化纤工程有限公司;</auth-address><titles><title>基于Visual BasicSolidworks二次开发</title><secondary-title>电大理工</secondary-title></titles><periodical><full-title>电大理工</full-title></periodical><pages>38-40</pages><number>03</number><keywords><keyword>Solidworks</keyword><keyword>二次开发</keyword><keyword>参数化设计</keyword></keywords><dates><year>2012</year></dates><isbn>1003-3319</isbn><call-num>21-1126/G4</call-num><urls></urls><remote-database-provider>Cnki</remote-database-provider></record></Cite></EndNote>[4]。相对来说,尺寸驱动法的程序编写较为简单,只需掌握简单的几个SolidWorksAPI函数,程序的编写与模型的复杂程度并没有任何关系。但是,对于建模的要求相对较高 ADDIN EN.CITE <EndNote><Cite><Author>徐国权</Author><Year>2007</Year><RecNum>4290</RecNum><DisplayText><style face="superscript">[5]</style></DisplayText><record><rec-number>4290</rec-number><foreign-keys><key app="EN" db-id="zzz9eaap2s0x5te9rwavs9eop9evxxs5z92p" timestamp="1427117341">4290</key></foreign-keys><ref-type name="Journal Article">17</ref-type><contributors><authors><author>徐国权</author><author>黄志超</author></authors></contributors><auth-address>华东交通大学职业技术学院,华东交通大学职业技术学院 南昌330013,南昌330013</auth-address><titles><title>基于SolidWorks的参数化设计二次开发研究</title><secondary-title>机械设计与研究</secondary-title></titles><periodical><full-title>机械设计与研究</full-title></periodical><pages>68-70+87</pages><number>01</number><keywords><keyword>SolidWorks</keyword><keyword>参数化</keyword><keyword>二次开发</keyword></keywords><dates><year>2007</year></dates><isbn>1006-2343</isbn><call-num>31-1382/TH</call-num><urls></urls><remote-database-provider>Cnki</remote-database-provider></record></Cite></EndNote>[5]。 而程序驱动法的程序编写量较大,因为整个建模过程都需要用代码来实现,需要明确好建模顺序以减少程序编写量。当然,在编写程序代码过程中可依靠SolidWorks 中的宏录制功能来辅助完成 ADDIN EN.CITE  ADDIN EN.CITE.DATA [4, 6]

本文采用的是第一种方法,即基于尺寸驱动的参数化建模,通过录制宏,修改宏,建立用户界面等建立应用程序和菜单插件。

2.2 系统总体规划

根据系统的特点及目标,本系统主要由编织类型选择模块(主界面)、常规编织结构模块、多股并排便捷结构模块、不规则编织结构模块以及非圆柱形编织结构模块。所有这些模块可以两种方式访问,一种是通过应用程序,另一种是通过菜单工具。如 REF _Ref414907650 \h 2所示。

 SEQ \* ARABIC 2 系统总体结构规划

 

2.3编织结构的参数化

在零件的参数化设计中应该合理确定零件的参数,并根据设计意图正确地建立零件参数化三维模型,通过对SolidWorks®的二次开发,建立完备的参数化零件库。

尺寸驱动法对SolidWorks®进行二次开发实现参数化设计,首先必须建立一个SolidWorks®零件模板作为相似零件参数化设计的基础,如果零件结构完全相同,只是尺寸上存在差异,则可以按任何一种规格的零件建立零件模板;如果是相似零件,在组成零件的特征构成和尺寸规格方面存在差异,则应该选择最复杂的零件建立零件模板,并通过SolidWorks®的隐藏和压缩的建模功能实现相似零件的建模 ADDIN EN.CITE  ADDIN EN.CITE.DATA [4, 7]

参数作为设计对象信息的描述,其内涵是非常广泛的,对于一个产品的而言,参数可以是零件的基本结构参数,如尺寸、公差等也可以是装配信息,如装配基准、装配尺寸等。

对于编织结构而言,结构参数和装配体参数化如 REF _Ref438826245 \h 表 3- 1所示

 

 SEQ \* ARABIC 1 编织结构的参数化

参数

符号

编织结构直径

Db

屈曲幅度

A

螺距

P

股线直径

ds

交织次数

N

股线结构类型

S/T

股线根数

Ns

偏转角度

Theta

交织方式

D/R/H

阵列次数

Np

并排股线数

Nm

 

在零件的设计参数确定以后,就可以在此基础之上建立零件的参数化特征模型,并在模型中生成与参数相对应的尺寸。系统自动将这些尺寸作为设计变量,根据国家标准或设计计算的结果给这些尺寸赋值,通过尺寸驱动设计修改,实现零件参数化设计。

2.4系统界面设计

根据系统总体规划,该系统包括基本的四种编织结构,因此可以通过主界面对编织结构完成选择,主界面如 REF _Ref414907669 \h 3所示。

 

 SEQ \* ARABIC 3 系统界面


在主界面上包括四种编织结构选择,包括常规编织结构模块、多股并排编织结构模块、不规则编织结构模块以及非圆柱形编织结构模块。

(1)常规编织结构模块

编织结构根据构成单元的类型不同,可以分为两种编织结构,一种是股线编织结构,一种是绳带编织结构。交织方式包括1-1,2-2,3-3三种方式。编织结构参数设置主要包括编织结构直径、屈曲幅度、一周交织次数和螺距,如 REF _Ref414907734 \h 4所示。这些参数基本上包含了编织结构所涉及的主要参数。通过这些参数的修改和重设,可以完成相同编织类型不同参数的建模。

(2)多股并排编织结构。多股并排编织结构是指同时有多股股线并排参与交织的编织结构。在该类编织结构中交织规律与常规编织结构相同,但是由于多股并排,同向相邻股线之间以及异向股线之间存在相互作用,其建模的方法与常规编织结构不同,因此,将其单独列为一类。在该类编织结构的参数设计方面主要涉及编织结构的直径、屈曲幅度、一周交织次数、螺距以及并排股线数5个指标,如 REF _Ref414907828 \h 5所示。

(3)不规则编织结构。不规则编织结构主要是指交织结构与常规编织结构不同的编织结构,主要包括1-2,1-3,2-3三类,如 REF _Ref414907857 \h 6所示。目前,该三类编织结构很少使用,而且不容易通过设备生产。但是在某些情况下可以用来生产不同外观的编织结构。因此,在该系统开发过程中也考虑到了该种情况。其参数主要涉及编织结构单元的选择、交织方式的选择和相关参数的设置三个方面,如 REF _Ref414907857 \h 6所示。

(4)非圆柱体编织结构。主要是指编织结构不是圆柱体的其他编织结构形式。根据结构生成方式和外观形态的不同,将其分为5类情况,如 REF _Ref414909151 \h 7所示,分别为拉伸体编织结构、旋转体编织结构、放样体编织结构以及球体和圆环编织结构的建模。每一种编织结构有独特的编织结构和建模方法。因此,在编织结构建模方面也都不尽相同。

每一种非圆柱体编织结构的参数设置包括编织结构单元类型、编织结构参数两方面的设置。

2.5 SolidWorks菜单插件

为了方便用户使用和更加适应window操作系统的操作习惯,该系统还开发了编织结构的SolidWorks菜单插件,即DLL程序,将上述不同类型的编织结构挂在SolidWorks的主菜单上,使得两个系统融为一体,使编织结构建模更加灵活和便捷。


 SEQ \* ARABIC 4插件菜单

3 编织结构自动化建模系统实现

高质量的编织结构模型库是该系统的基础。在系统开发之前,首先应该完成质量较好的编织结构库,并建立一个专门的库文件,对模型进行分类和整理,以便在后续编程过程中进行访问和调用 ADDIN EN.CITE <EndNote><Cite><Author>严竹生</Author><Year>2006</Year><RecNum>4289</RecNum><DisplayText><style face="superscript">[8]</style></DisplayText><record><rec-number>4289</rec-number><foreign-keys><key app="EN" db-id="zzz9eaap2s0x5te9rwavs9eop9evxxs5z92p" timestamp="1427117341">4289</key></foreign-keys><ref-type name="Journal Article">17</ref-type><contributors><authors><author>严竹生</author></authors></contributors><auth-address>南京化工职业技术学院机械技术系 210048</auth-address><titles><title>SolidWorks二次开发关键技术研究</title><secondary-title>中国科技信息</secondary-title></titles><periodical><full-title>中国科技信息</full-title></periodical><pages>146-148</pages><number>21</number><keywords><keyword>SolidWorks</keyword><keyword>二次开发</keyword><keyword>关键技术</keyword></keywords><dates><year>2006</year></dates><isbn>1001-8972</isbn><call-num>11-2739/N</call-num><urls></urls><remote-database-provider>Cnki</remote-database-provider></record></Cite></EndNote>[8]。本系统设计流程如 REF _Ref415647291 \h 9 所示

 SEQ \* ARABIC 5 系统流程图

系统的工作基本流程为:

(1)        与SolidWorks建立连接

(2)        打开编织结构模型库

(3)        修改变量尺寸

(4)        根据新设置尺寸重新建模

(5)        保存或另存为新模型

3.1 声明和实例化SolidWorks API

虽然Visual Basic是SolidWorks的一种开发语言,但是并非所有格式的Visual Basic程序都可以在SolidWorks环境下运行,即SolidWorks对Visual Basic程序的格式有一定的要求。因此可以通过不同的方法来运行Visual Basic应用程序,例如可以不用编译直接在SolidWorks中运行(用Basic开发的程序把后缀替换为.swp,这类程序通常是只用来调用SolidWorks API函数库)、当做一个独立的.exe文件(可执行文件)来运行以及在其它应用程序(例如Access等)中运行,等等。但是,用Visual Basic开发的程序段前面必须包含以下代码:

Dim swApp As Object

Dim Part As Object

Dim boolstatus As Boolean

Dim Annotation As Object

Dim Feature As Object

Dim FeatureData As Object

Sub main()

Dim swApp As Object     

Set swApp = CreateObject("SldWorks.Application")     

......

End Sub

这样才能在SolidWorks下进行编译执行。

3.2 VB连接SolidWorks进行参数化修改

下面是实现参数化修改的程序代码:

Dim swApp As Object

Set swApp = CreateObject("SldWorks.Application")

Swapp.visible(true) ‘连接SolidWorks并新建自动命名的零件模型文件

Dim swApp As Object

Dim nassembly As Object

Set swApp = CreateObject("SldWorks.Application")

Swapp.visible(true)

Set nassembly = swApp.Newassembly()

End Sub’ 连接SolidWorks并新建自动命名的装配模型文件

数据传递

diameter = CDbl(txtdiameter.Text) / 1000

amplitude = CDbl(txtamplitude.Text) / 1000

twisttime = CDbl(txttwisttime.Text)

Pitch = CDbl(txtpitch.Text) / 1000

'修改屈曲幅度

part.Parameter("D1@草图2@CLK.Part").SystemValue = amplitude

part.Parameter("D1@草图2@ANTICLK.Part").SystemValue = amplitude’重新赋值

part.EditAssembly

boolstatus = part.EditRebuild3()‘重新建模

End Sub

其他参数的修改同上述程序类似,只是修改参数对应的API接口不同。只要找到对应的语句,即可完成参数的重新赋值,完成相关参数的修改。

由上述程序可见,这种参数化建模方法程序代码非常简洁,程序的设计工作量与模型的复杂程度无关,并且程序中调用的API都是与设计变量参数相关的对象,因而不需要程序员掌握所有的API对象,降低了参数化设计的难度。但该方法对零部件的建模有严格要求,必须根据设计者的思想进行建模,否则难以自动生成所需要的设计变量.

4 菜单插件的生成

在上述程序和界面的基础上根据SolidWorks API SDKSoftware Development Kit)软件开发工具包,开发与SolidWorks软件整合的插件程序。

将上述代码生成 DLL格式文件,进行菜单插件加载。主要有两种加载形式:一种是临时加入法,将系统编译生成的 *DLL文件临时插入到SolidWorks 中去。当关闭SolidWorks就随之释放出内存,再次打开时插件并不存在于菜单中。另一种是通过修改注册表的形式将系统插SolidWorks菜单中。这样,在每次运行SolidWorks时就能够自动装载零件曲线菜单插件,操作起来也会更加方便快捷。

5 总结

本文在SolidWorks环境下,通过API接口建立了编织结构的自动化建模系统,包括程序和菜单插件两个方面。该系统主要包括常规编织结构、多股并排编织结构、不规则编织结构和非圆柱形编织结构建模,在参数设置方面主要包括结构参数和编织结构单元的设置。该系统实现了编织结构自动化建模和SolidWorks的无缝连接,该系统对于结构类似编织结构可以通过直接修改参数便可生成相应的结构,大大缩短了编织结构设计周期,提升编织结构建模效率。

参考文献

 ADDIN EN.REFLIST [1]  叶修梓, 陈超祥. solidworks API二次开发 [M]. 机械工业出版社, 2009.

[2]  曾锋, 钟治初, 姚山. SolidWorks API二次开发方法与应用 [J]. 嘉应学院学报, 2011, 11): 21-5.

[3]  李向阳. SolidWorks二次开发的研究 [J]. 精密制造与自动化, 2008, 02): 37-8+53.

[4]  李晓光, 张链. 基于Visual BasicSolidworks二次开发 [J]. 电大理工, 2012, 03): 38-40.

[5]  徐国权, 黄志超. 基于SolidWorks的参数化设计二次开发研究 [J]. 机械设计与研究, 2007, 01): 68-70+87.

[6]  罗敬东. VBSolidWorks二次开发中的参数化方法 [J]. 广东水利电力职业技术学院学报, 2008, 02): 78-80.

[7]  彭龑, 李淇阳. 基于SolidWorks二次开发的自动建模技术与方法 [J]. 机械工程师, 2011, 10): 47-9.

[8]  严竹生. SolidWorks二次开发关键技术研究 [J]. 中国科技信息, 2006, 21): 146-8.

本刊创刊于1982年,是由自治区科技厅主管、自治区科技信息研究院主办,由自治区科技情报学会协办、国内外公开发行的省级综合性科技刊物,是反映内蒙古自治区科技与经济发展的窗口。杂志入选《中国期刊全文数据(CJFD)》全文收录期刊和《中国学术期刊综合评价数据(CAJCED)统计刊源期刊,《中国核心期刊(遴选)数据库》收录。本刊是公开发行的综合性科技期刊,为月刊,大16开本。本刊坚持以科技创新为目标,融科技、经济、信息、产业、市场为一体,是促进科技成果转化、推动科技进步、加强技术创新,促进经济发展的专业性期刊。