基于autocad的箱包cad系统设计与开发 大学毕业论文设计Word文件下载.docx
《基于autocad的箱包cad系统设计与开发 大学毕业论文设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于autocad的箱包cad系统设计与开发 大学毕业论文设计Word文件下载.docx(39页珍藏版)》请在冰豆网上搜索。
其广义是泛指应用于生产各类式帐篷,渔具用品,户外用品,医疗体育用品,床上用品,帽子及各种皮饰,布饰椅子和凳子的一套综合性的大型计算机辅助应用软件。
[1]
世界第一套箱包CAD是25年前以色列人研发的。
软件名叫“Optitex”其软件行业应用非常广泛。
具体到国内的箱包CAD软件有4家广州博凯,杭州时高,宁波易图,上海慧工,还有台湾的理星箱包CAD。
15年前国内服装CAD基本上是国外CAD占有90%的市场。
并且不能直接在软件上出样,只能放码,而且工具复杂难学。
而发展90年代后,中国仿佛一夜间冒出了好多家服装CAD软件,有的软件已经可以在CAD上面直接出样了,软件也比较不难学了。
但是师傅用起来还是感到不顺手,但是到04年一个叫ET的服装CAD的出现,短短几年的时间几乎占领了服装CAD市场一大半。
原因就是这套软件综合了当前各个软件的优点,简化了操作的难度,并且优化了工具使用的自动化。
让操作者感到非常好用,操作简单,并且能很快的达到操作之目的。
这也就成功了。
[4]
1.1.2研究的意义
随着科学技术的日新月异,设计概念的内涵和外延都在不断发生变化。
工业设计将信息转变为商品价值,为推动社会发展做出了巨大的贡献。
尤其是箱包设计也已经越来越受到世界各国和人们关注。
对于箱包企业和箱包设计师来说,如何生产和设计出更轻、更薄、更精致,融时尚、个人品味、时代感于一体的箱包是他们今后要共同努力的方向。
随着计算机技术、图形学和箱包技术等相关技术门类的发展,箱包CAD技术的发展总体趋于标准化、智能化、集成化、立体化、网络化和虚拟化。
如今人们对箱包的需求量越来越大,要求也越来越高,高档化、系列化、时尚化、款式更新快、品种多样化已成为箱包市场的一个特色。
传统的设计和生产方式已经难以满足市场快速多变的需求。
而已被某些工业广泛采用的CAD/CAM技术则引起了设计人员的注意。
现代的箱包设计将变得更加的自动化跟机械化,而AutoCAD在这方面起到的作用是巨大的。
1.2国内外研究现状
对于目前的箱包行业使用的箱包CAD软件来说,在功能上各有优点和缺点。
“Optitex”的兼容性很好,但是功能不专,比较复杂;
博凯实用性比较好。
但是由于是用数据库的,所以稳定性比较差,有些先天的缺陷;
时高、易图、慧工、市场占有率都很小,其软件问题就更多了;
台湾理星软件本意是为制鞋研发的,箱包只是它衍生出来的个模块,所以应用性也比较差了;
到目前为止还没有任何一家的软件能完全做到符合箱包生产所需要的功能的。
有些还是要靠手工制作才可以完成。
在使用范围上,国外软件比国内的要广泛很多了。
目前国内的箱包CAD软件都是局限与箱内和包袋类的。
如果应用到帐篷上都不是很好,“Optitex”侧是广泛应用于服装,家具,箱包等几乎所有布类,皮类制品的一个综合性的软件。
[2]
1.3设计的内容与方法
本课题研究的主要内容是设计与开发一个箱包CAD系统,掌握箱包的结构和设计过程,熟悉AutoCAD的二次开发环境,了解AutoCAD的二次开发语言和工具,掌握AutoCAD二次开发的方法和关键技术。
根据任务书的要求,本毕业设计的主要设计内容如下:
(1)分析箱包的结构、设计过程;
(2)研究箱包CAD系统功能框架、主要算法设计流程;
(3)开发箱包CAD常用工具;
(4)设计并开发一个基于AutoCAD的箱包CAD原型系统软件;
利用VBA对AutoCAD进行二次开发的技术基础,分析研究基于ActiveX技术和应用面向对象方法开发AutoCAD的有关问题,掌握AutoCAD二次开发的基本思路、主要步骤和具体方法。
第2章AutoCAD二次开发和VBA语言
2.1AutoCAD二次开发介绍
AutoCAD是Autodesk公司的系列产品,该软件从其使用和设计思路上都秉承了工程制图人员的绘图习惯,能够非常轻松地绘制出带有平面视图和三维渲染效果的工程图纸,是绘图人员的一个理想工具,随着CAD基础理论和应用技术的不断发展,对CAD系统的功能要求也越来越高。
因而AutoCAD不可能完全满足每个用户的具体而特定的要求。
设计人员希望它能从本质上减轻大量简单繁琐的工作量,使他们能集中精力于那些富有创造性的高层次思维活动中。
[8][9]
AutoCAD提供的开放式体系结构允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大程度地满足用户的特殊要求,更方便、更规范、更专业的实现设计和绘图中的应用。
AutoCAD二次开发,有很多不同层次的语言和库可供选择。
迄今为止,AutoCAD二代三代开发工具,如图2.1所示
图2.1开发语言的发展进程
首先是VisualLisp和AutoLisp。
Lisp是一门历史悠久的函数式编程语言,很多概念和C这种过程式语言不一样,据说他在人工智能等方面有广泛的应用。
CAD引入了这种语言,给他添加相应的函数库,就成了命令行使用的AutoLisp。
在此基础上再增加关于对话框和窗口界面的库,就是VisualLisp,简称VL。
VL在CAD中可以视为CAD命令的整合,是脚本语言,而且由CAD程序提供了编写环境。
因此上手相当容易,便于编写,调试也很方便。
第二大类是使用ActiveX和VB。
ActiveX是Microsoft提出的一组使用COM(ComponentObjectModel,部件对象模型)使得软件部件在网络环境中进行交互的技术集。
ACAD使用Acitvex把数据传送给ActiveX程序,程序处理后再传回ACAD。
这个过程有点像浏览器浏览动态网站。
AcitveX与具体的编程语言无关,因此理论上说可以用任何一种支持他的语言来编写,但通常大家选择VB语言。
VBA是VB的特殊形式,他将VB植入到应用程序中。
ACAD包含的VBA能够和CAD共享地址空间,而独立的VB则需要通过接口完成。
这种方法在编写上比Lisp复杂,调试也困难。
但速度快,功能更强劲。
但是在某些对速度要求相当高的运算和涉及CAD内部的应用上仍然会显得力不从心。
对于熟悉VB语言又不想学习Lisp奇怪语法的开发者来说,这是不错的选择。
[12]
第三大类就是ADSARX和ObjectARX。
ADS是AutoDesk从ACADR11开始提供的C编程环境。
它具有C的一切优点,又能操作CAD。
但他和ActiveX类似是通过管道通讯的。
ARX(AutoCADRuntimeeXtension)是在ADS基础上发展的面向对象的环境,使用C++语言。
最终ARX进化为ObjectARX,他完全面向对象,并且是以dll(动态链接库)的形式共享CAD的地址空间。
由于先前的ARX已被包含为子集,人们也就简称ObjectARX为ARX。
在CAD2006以前,只能使用C++语言和VC编译器来生成ObjectARX程序。
但目前已经可以使用VB.netC#C++等语言配合VisualS编译器来生成ARX程序了。
要选用何种语言进行二次开发,需要开发人员按照所开发系统的功能特性进行筛选来决定。
2.2VBA开发语言
2.2.1VBA开发的技术特点
VBA是微软开发出来的应用程序共享一种通用的自动化语言,它可以使常用的程序自动化,并可以创建自定义的解决方案。
VBA被集成到AutoCAD中,VBA和AutoCAD中强大的ACtiveX自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。
通过VBA,我们可以操作AutoCAD软件,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动。
下面就是VBA的主要功能:
(1)VBA提供强大的窗体创建功能,为应用程序建立对话框及其他屏幕界面。
(2)可以创建自己的工具条。
(3)可以创建功能强大的模块级宏指令,宏名实质上就是模块的过程名。
(4)提供建立类模块的功能,这对开发大型工程非常有用,因此类可以提供重用组。
(5)具备完善的数据访问和管理能力,通过ADO(ActiveXData0bjects),可以对Access数据库或其他外部数据库(像dBase,FOxPro等)实现访问和管理。
此功能比直接使用AutoCAD的数据库管理系统要方便,且功能强大。
[14]
2.2.2VBA开发的优势
(1)VBA能够使AutoCAD于其它应用程序直接共享数据,如MicrosoftOffice软件。
因为所有的VBA应用程序都可以方便的相互沟通,在设计过程中可以很容易得将AutoCAD与基于windows的应用程序联系起来。
(2)在VBA综合开发环境中,可以通过拖动图表的方法,简单而可视化的建立用户界面用户可以使用AutoCAD工具栏,也可以使用标准VBA界面工具创建新的工具栏。
(3)VBA的语言代码完全继承了VB的特征,可以说是世界上最简单的编程语言,但其功能不弱。
从数据计算,书库管理到Intemet软件开发,都可以见到VB的身影,并可通过各种在线帮助,随时得到名师真传。
(4)具有全开放式的对象模型。
AutoCAD软件中的ActiveX对象模型十分有用,它显示了每一个对象的方法和属性,用户可以按照自己的愿望编程或定制AutoCAD软件。
(5)良好的运行速度。
VBA是一个内嵌式的控制器,共享AutoCAD的内存空间,可以更好的与AutoCAD沟通。
其运行速度与ObjectiRX应用程序非常接近,比其它开发方式(如:
ADSRX,ADS和LISP)要提高许多。
无论编程技术水平如何,使用VBA编程都不会感到有很多困难。
自从带有VBA开发接口的AutoCADR14发行以来,已经有超过80万的开发者使用了这一软件,开发的应用程序将有更多机会为不断增长的用户群体服务。
[15]
2.2.3ActiveX技术
对AutoCAD的二次开发可以通过ActiveX技术来实现,利用ActiveX技术,通过编程,用户可以在自己的应用程序中方便地对另一应用程序进行操作。
自AutoCADR14后,AutoCAD都支持该技术,这样许多面向对象的语言和应用程序都可以通过该接口从AutoCAD内部或外部来操纵AutoCAD暴露的对象。
在AuotCAD中,几乎暴露了所有对象,也就是说,用户可以操作几乎所有的AutoCAD对象。
AutoCADVBA是受ActiveX技术支持的,从运作上看,VBA通过AutoCADActiveXAutomation接口将信息传送给AutoCAD,而AutoCADVBA也允许VBA环境与AutoCAD环境同时执行并通过ActiveXAutomation接口提供AutoCAD的程序。
如此,AutoCAD、ActiveXAutomation与VBA的结合方式,提供了功能极强大的接口,不仅可以操作AutoCAD的内部对象,更可以在其他的应用程序之间传送或接受数据。
2.2.4ActiveX对象的使用
AutoCAD暴露的这些对象是以层次式结构来组织的,其根部是应用程序对象,对象的继承阶层结构就称为“对象模型”。
VBA访问AutoCAD对象的原则是按照对象模型进行访问。
VBA提供了一个特殊的对象——Thisdrawing,它是AutoCADVBA的一个术语,代表当前打开的AutoCAD图形文件。
在创建实体对象之前,要确定实体将放于何处,并且要先引用这个对象。
创建实体采用AddEntity形式的方法,即“创建(Add)”+“实体名字(Entityname)”。
2.3ADO数据库连接及操作技术
2.3.1数据库系统概述
数据库系统是由计算机软、硬件资源组成的系统,它实现了有组织地、动态地存储大量关联数据,方便多用户访问。
通俗地讲,数据库系统可把日常的一些表格、卡片等的数据有组织地集合在一起,输入到计算机,然后通过计算机处理,再按一定要求输出结果。
所以,对于数据库来说,主要解决三个问题:
(1)有效地组织数据,即对数据进行合理设计,以便计算机存取;
(2)方便地将数据输入到计算机中;
(3)根据用户的要求将数据从计算机中抽取出来。
我们这里主要是解决第3个问题,任何将数据库中,满足要求的数据,抽取出来,进行设计。
2.3.2数据库种类
数据库在发展过程中诞生了层次型、网状型、关系型三种类型的数据库。
其中,关系型数据库具有更完美的内在机制,它建立在严密的关系代数基础之上,可以通过SQL标准查询语言实现对数据库的操作。
因此,自上一个世纪80年代来,关系型数据库成为了主流数据库而被广泛应用。
包括大型数据库,如Oracle,SQLServwe和桌面数据库,如Access,FoxPro都属于关系型数据库。
在VBA环境下,Access数据库是缺省数据库,Access所采用的Jet数据库引擎得到了最有效的利用,例如VBA的内部数据访问控件(Data)就是建立在Jet引擎基础上的。
因此,我选用Access数据库建立数据库。
Access数据库管理系统是MicrosoftOffice套件的重要组成部分。
Access不仅是一个数据库,而且它具有强大的数据管理功能,它可以方便地利用各种数据源,生成窗体(表单),查询,报表和应用程序等。
2.3.3数据库系统的建立
在Access数据库系统中,信息以数据库形式为文件单位储存到介质如磁盘、光盘中。
其数据库文件扩展名为MDB。
在“程序”菜单中会出现MicrosoftAccess项,单击“开始”/“程序”/“MicrosoftAccess”。
启动后会出现一个对话框,对话框中有两个组合框,选择“Access数据库向导”,单击“确定”。
接着选择“常用”中的“数据库”,单击“确定”,接着找到合适的存储地方,单击“确定”,出现一个新页面,双击“通过输入输入数据创建表格”,最后根据需要输入字段,输入完毕后,保存。
这样一个数据库就建好了。
2.3.4AutoCADADO对象
AutoCAD的dbconnect功能可以在AutoCAD环境下配置数据库,还可以直接连接到外部数据库,纸箱数据的浏览、查询和管理。
可以通过VBA与ADO(MicrosoftActiveXDataObjects)的结合使用达到与外部数据库连接的目的。
ADO是以OLEDB为基础的面向对象的应用程序接口,核心是Connection、Command和Recordset对象。
Connection对象用于建立与数据源的连接,Command对象可以在数据源中添加、删除或才更新数据、或者在表中查询数据、Recordset对象只代表记录集、在ADO对象模型中所有对数据源的操作几乎都是Recordset对象完成的。
把从数据库中检索出的数据和AutoCAD编程对象方法中的参数进行加护,就可以在AutoCAD环境下实现基于外部数据库应用的流程图件图2.2
图2.2ADO流程图
2.3.5数据库的连接和操作
首先应该连接数据库到AutoCAD,这样就可以调用数据库指令。
(1)定义工程文件路径和对象以及记录集对象:
PublicstrPath01AsString
DimadoCon01AsConnection
DimadoRs01AsRecordset
(2)必须先获得当前的工程路径:
strPath=ThisDrawing.Application.VBE.ActiveVBProject.FileName
(3)连接数据库:
SetadoCon=NewConnection
adoCon.CursorLocation=adUseClient
adoCon.Open"
Provider=Microsoft.Jet.OLEDB.4.0;
DataSource="
&
Left(strPath,Len(strPath)-14)&
"
*.mdb;
"
(4)打开记录集:
SetadoRs=NewRecordset
adoRs01.Open"
lianzhouqi"
adoCon,adOpenDynamic,adLockOptimistic
(5)将型号添加到列表框中:
RefreshList‘为刷新列表框子程序
IfadoRs.RecordCount>
0Then
adoRs.MoveLast
adoRs.MoveFirst
ExchangeData‘为根据字段名称或索引访问控件内容
EndIf
这样数据库就已经连接上,我们可以对他进行各个事件的操作。
(1)首先是刷新列表框子程序,通过下面这个子程序,在“ListBox”控件中,将列出数据库中第“01”列的所有数据。
PrivateSubRefreshList()
ListBox.Clear
DimiAsInteger
adoRs.MoveFirst
Fori=0ToadoRs.RecordCount-1
ListBox.AddItemadoRs.Fields("
01"
)
IfNotadoRs.EOFThen
adoRs.MoveNext
Nexti
EndSub
(2)通过下面这个子程序,我们可以根据字段名称或者索引均可以访问其内容,让数据库中的各列中的数据显示到对应的“TextBox”中。
PrivateSubExchangeData()
TextBox1.Text=adoRs.Fields("
02"
TextBox2.Text=adoRs.Fields("
03"
TextBox3.Text=adoRs.Fields("
04"
TextBox4.Text=adoRs.Fields("
05"
TextBox5.Text=adoRs.Fields("
06"
TextBox6.Text=adoRs.Fields("
07"
(3)通过下面这个子程序,我们可以根据字段名称或者索引确定参数值。
PrivateSubCommandButton5_Click()
X1=TextBox1.Text
X2=TextBox2.Text
X3=ListBox3.Text
X4=ListBox3.Text
X5=TextBox5.Text
X6=ListBox6.Text
EndSub
(4)最后关闭连接和记录集:
adoRs.Close
adoCon.Close
第3章箱包CAD/CAM系统的结构
箱包CAD/CAM系统分为CAD(ComputerAidedDesign,计算机辅助设计)和CAM(ComputerAidedManufacturing,计算机辅助制造)两部分体系组成。
CAD部分称做出格系统,而出格系统的功能包括常用工具、裁片对位、背包抛围、打褶、打角、专业工具、导出物料表格。
CAM部分由排料系统和输入输出两部分组成,排料系统包括自动排刀、打印导出排刀报告、手动排刀、分床排料、分色排料,输入输出包括自动切割控制和数字化仪。
整个系统的结构如图3.1。
图3.1箱包CAD/CAM系统结构
3.1箱包CAD系统的结构
箱包的CAD出格系统具有很多为箱包特别设计的工具栏,解决了普通CAD软件无法完成的很多功能,出格系统包含箱包、手袋的款式设计到实样的生产跟管理。
出格系统能是出格师傅从繁琐的手工操作中解放出来,大大提高了生产效率,缩短了生产周期,降低了生产成本。
为箱包、手袋行业的产业升级带来了革命性的突破。
出格系统能使箱包、手袋行业真正实