SolidWorks工程图批量转DWG辅助软件开发.doc_第1页
SolidWorks工程图批量转DWG辅助软件开发.doc_第2页
SolidWorks工程图批量转DWG辅助软件开发.doc_第3页
SolidWorks工程图批量转DWG辅助软件开发.doc_第4页
SolidWorks工程图批量转DWG辅助软件开发.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SolidWorks工程图批量转DWG辅助软件开发 作者: 日期: 南 阳 理 工 学 院 本科生毕业设计(论文)学院(系): xxxx系 专 业: 机械设计制造及其自动化 学 生: xxxxx 指导教师: xxx 完成日期 2011 年 5 月南阳理工学院本科生毕业设计(论文)SolidWorks工程图批量转DWG辅助软件开发Auxiliary Software Development of Batch Converting SolidWorks Engineering drawings into DWG Files总 计:31 页插 图:30 幅南 阳 理 工 学 院 本 科 毕 业 设 计(论文)SolidWorks工程图批量转DWG辅助软件开发Auxiliary Software Development of Batch Converting SolidWorks Engineering drawings into DWG Files学 院(系): 南阳理工学院机电工程系 专 业: 机械设计制造及其自动化 学 生 姓 名: xxxx 学 号: 21107054 指 导 教 师(职称): xx 评 阅 教 师: xxxxx 完 成 日 期: 2011年5月 南阳理工学院 Nanyang Institute of TechnologySolidWorks工程图批量转DWG辅助软件开发xxxxxx摘 要SolidWorks是基于Windows平台的优秀三维机械设计软件,因其功能强大、易学易用等特点,在国内拥有越来越多的用户。但其三维图自动转换为二维工程图后仍存在一些无法解决的技术问题,如尺寸标注、明细栏格式化生成等。因此多数企业通常采用SolidWorks进行产品三维设计和模拟装配,然后将其自动生成的工程图再转换成AutoCAD格式的DWG文件,后期工作在AutoCAD内完成。目前SolidWorks各版本没有提供工程图的批量转换功能,只能由人工逐一进行转换,耗时费力。本课题利用Visual Basic 6.0为前台开发语言,结合SolidWorks的VBA二次开发技术,实现对SolidWorks工程图纸到AutoCAD格式的DWG图纸文件的批量转换。软件能够自动识别SolidWorks工程图标题栏和明细栏信息,直接生成符合企业标准的DWG图纸格式,最终完成从SolidWorks工程图到AutoCAD图纸的无缝批量转换。 关键词SolidWorks工程图;图纸转换;标题栏;明细栏Auxiliary software Development of Batch converting SolidWorks Engineering Drawings into DWG FilesMechanical Design,Manufacturing and Automation Major ZHOU Zhen-taoAbstract: SolidWorks is a kind of excellent 3D mechanical design software based on windows platform, it has more and more users in domestic because of its powerful, learnful, and useful characteristics.But after its 3D graph converting automatically into 2D engineering graphics,there are still some technical problems which are unable to solve, such as dimensions, schedule formatting generation, and so on. So most enterprise uses SolidWorks as a tool to complete product 3D design and simulation assembly, then converts its engineering drawings generated into DWG files of AutoCAD format automatically, and finishes its later work in AutoCAD. At present all of SolidWorks s versions dont provide batch conversion function, so it is only converted artificially one by one ,which needs a lot of time and efforts.This topic uses visual basic 6.0 as the development language, combining the second development technology of SolidWorks VBA to realize batch conversion from SolidWorks engineering drawings to DWG drawings files of AutoCAD format.It can identify automatically title bar and part-list messages of SolidWorks engineering drawings and generates directly DWG drawings format of enterprise standardization, finally it finishes the seamless batch conversion from Solidworks engineering drawings to AutoCAD drawings.Key words: SolidWorks Engineering Drawings;Drawings Conversion;Title Bar; Part-list目 录1课题研究背景11.1 SolidWorks系统简介11.2 SolidWorks二次开发环境22 课题研究的目的与意义33 创建企业标准化的工程图模板43.1 安装“长仿宋体”字体53.2 修改“工程图.drwdot”文件53.3 绘制工程图图纸格式模板73.4 配置图板标题栏属性变量94 配置零部件属性并生成工程图114.1 配置零部件属性124.2 生成带有属性信息的工程图124.2.1 打开工程图124.2.2 选择图纸格式134.2.3 插入级配单元架体DD零件134.3 配置自动明细栏属性134.3.1生成级配单元DD工程图144.3.2 插入自带的材料明细栏144.3.3 编辑材料明细栏145 系统的设计与实现155.1 任务分析155.2 系统开发环境介绍165.2.1 Solidworks的API函数165.2.2开发语言Visual Basic 6.0175.2.3 系统采用ADO数据库连接技术175.3 软件操作流程175.4 系统各功能模块分析185.5 软件运行环境分析265.5.1 硬件需求265.5.2 软件需求265.5.3 所需软件安装276 软件运行状况276.1系统主界面模块276.2 用户登录模块276.3 读工程图基本信息模块286.4 批量转换模块29结束语30参考文献31致谢321课题研究背景1.1 SolidWorks系统简介目前,在我国的CAD市场上比较流行的三维CAD软件有SolidWorks、MDT、UG、Pro/E SolidEdge 等。但就价位来讲SolidWorks、MDT、SolidEdge是中低档价位的产品,UG、Pro/E 、IDEAS是高中档价位的产品。SolidWorks是美国达索公司1995年11月开发出来的非常出色的三维参数化特征造型CAD软件。它是在总结和继承了大型机械CAD软件的基础上,其技术内核基于先进的Parasolid图形语言平台,在Windows环境下实现的第一个机械三维CAD软件。它全面采用非全约束的特征建模技术,其设计过程全相关性,可以在设计过程的任何阶段修改设计。同时牵动相关部分的修改。它即提供自底向上的装配方法,同时还提供自顶向下的装配方法。自顶向下的装配方法使工程师能在装配环境中参考装配体的其他零件的位置及尺寸设计新的零件,更加符合工程习惯。它具有独创性的“封装”功能,可以分块处理复杂的装配体。具有产品配置功能,为用户设计不同构性的产品。它集成了设计、分析、加工和数据管理过程,所获得的分析和加工模拟结果成为产品模型的属性,在SolidWorks的特征管理器中清晰的列出了详细的数据信息。它还可以动态模拟装配过程,进行静态干涉检查、计算质量特征,如质心、惯性矩等。它将2D造型绘图与3D造型技术融为一体,能自动生成零件尺寸、材料明细栏(BOM)、具有指引线的零部件编号等技术资料,从而简化了工程图样的生成过程。同时有中英文两种界面可以选择,其先进的特征树结构使操作更加简便和直观。具有交好的开发性接口和功能扩充性。能轻松实现各种CAD软件之间的数据转换传送1。SolidWorks 系统具有如下的特点:(1) 具有独特的特征管理员,提供的特征管理员设计历史树同具体的实体模型是实时的动态联接;(2) 具有强大的实体建模功能和直观的Windows 用户界面;(3) 支持Windows 的DDE 机制和OLE 技术;(4) 支持Internet 技术,可以共享设计数据; (5) 双向关联的尺寸驱动机制;(6) 提供了VB ,VC + + 和其他支持OLE 的开发语言接口;(7) 给基于Windows 的桌面集成赋予了新的含义。它以Windows 为平台,集成了动态仿真软件(Motionworks) 、工程分析软(CosMo- SolidWorksorks) 、数控加工软件(SurfCAM) 、以及工程数据管理软(SmarTeamWorks) 等,使它们成为SolidWorks 家族中的一员。这些软件的数据可以相互传递共享。而且SolidWorks 公司还设有网上站点,可方便用户快速了解此系统的最新发展情况,或获得最新的技术支持。l 造型功能SolidWorks 提供了新一代的造型功能,它包括了草图和实体,参数化特征造型技术。提供丰富的基本特征,并且提供用户自定义特征的功能。SolidWorks支持强大的三维参数化设计功能,可以方便地在设计的任何阶段修改零件.l 绘图功能工程绘图系统Drawing 主要用于三维模型的工程图纸绘制与输出,可同时编辑多张图纸。当设计人员建图纸文件时,可以将PART 文件上的特征历史树的总结点用鼠标点取移动到图纸文件上,图纸文件上自动生成三视图。绘制的图纸上可以自动标注尺寸信息。图纸与模型是相互关联的,当模型上的尺寸或造型变化时,图纸也相应改变。视图包括标准视图、投影视图、一般视图、局部视图以及剖面视图,是零件或装配体在图纸上的某种形式的投影。在视图上可以增加或删除符合国标的工程标注。本系统随时维护三维模型与二维绘图的一致性。注释及辅助线段、圆注释和辅助的线段、圆用于给图纸增加一些视图中未给出的信息,如加工注意点、材料选择等2。l 装配功能SolidWorks 中装配的功能是由用户指定装配体中各零件之间的装配约束关系,将零件装配成装配体。装配系统不但可以将零件装配起来,也可以读入已经装配好的装配体,作为子装配体进行装配;子装配体在装配过程中可以视为一个整体,等效于一个零件。SolidWorks 可以模拟仿真装配的全过程。1.2 SolidWorks二次开发技术SolidWorks软件功能虽然比较强大,也并非非常完美,它不可能满足每个企业的特殊要求。如标题栏、明细栏、放大图的标注、剖视图的标注、装配图的序号、标准件库等并不能完全符合国标。因此,为了适应特定企业的特殊要求,形成企业自己的特色,使SolidWorks在我国的企业中有效的发挥作用,并使常用的或是重复的任务自动化,提高效率,就必须对其进行企业标准化的的二次开发工作。为了方便用户进行二次开发,SolidWorks提供了几百个API函数,这些API是SolidWorks的OLE或COM接口.用户可以使用高级语言对其进行二次开发,建立适合用户需要的、专用的SolidWorks功能模块。SolidWorks 是一个非常开放的系统,提供了VB ,VC + + 和其他支持OLE 的开发语言接口。提供给用户必要的工具(宏语言、库函数等) 以开发个人化的应用模块,并且易于将它集成到系统中去。用VB 或VC + + 调用SolidWorks 的API 函数,可以完成零件的建造、修改;零件各特征的建立、修改、删除、压缩等各项控制;零件特征信息的提取,如特征尺寸的设置与提取,特征所在面的信息提取及各种几何和拓扑信息;零件的装配信息;零件工程图纸中的各项信息;还可在SolidWorks主菜单上增加按钮,将自己开发的应用模块嵌入到它的管理系统中3。2 课题研究的目的与意义如前所述,SolidWorks虽然拥有强大的功能,适当的价位,但是也分并非是十全十美,不可能满足特定企业的特殊要求。因此,为了适应特定企业的特殊要求,形成企业自己的特色,使SolidWorks在我国的企业中有效的发挥作用,并使常用的或是重复的任务自动化,提高效率,就必须对其进行企业标准化的二次开发工作。目前国内多数中小企业均使用SolidWorks的三维功能对产品进行设计,而因为AutoCAD有其操作简便的优点,工作效率较高,故多数企业将其三维图自动生成的工程图再转换成AutoCAD格式的DWG文件,后期工作在AutoCAD内完成。而SolidWorks各版本没有提供工程图的批量转换功能,只能由人工逐一进行转换,耗时费力,因此开发一个SolidWorks批量图纸转换的专业辅助软件,可进一步提高产品工作效率,有效利用设计人员人力资源,强化SolidWorks 的本土化程度,有着重要的实际应用价值和现实意义4。SolidWorks提供了基于OLE自动化技术的API函数,Visual Basic 6.0是一种简单易学,而且功能强大的高级编程语言,Access是一种容易使用,而且功能强大的数据库管理系统。可以使用Visual Basic 6.0为前台开发语言对其进行二次开发,SolidWorks工程图中标题栏和明细栏中的零件信息可以使用Acess来管理。使用Visual Basic 6.0为SolidWorks开发联接二维CAD的专用模块,配合Acess管理的数据,就可以开发出实现针对SolidWorks工程图的批量转换模块,从而实现对SolidWorks工程图纸到AutoCAD格式的DWG文件的批量转换,自动识别SolidWorks工程图标题栏和明细栏信息,直接生成符合企业标准的DWG图纸格式,达到SolidWorks工程图到AutoCAD图纸的无缝集成。 为了实现SolidWorks工程图纸到AutoCAD格式的DWG文件的批量转换,首先需要创建带有属性链接企业标准化图纸格式模板,设置材料明细栏属性,从而创建出带有自定义属性信息工程图模板;然后自定义零部件模型属性,从而进行SolidWorks零部件模型自动转换成工程图,把零件图、装配图模型中的相关信息转换到工程图中,然后自动提取SolidWorks工程图信息,实现SolidWorks工程图纸到AutoCAD格式的DWG文件的批量转换。它能够自动识别SolidWorks工程图标题栏和明细栏信息,直接生成符合企业标准的DWG图纸格式,最终完成SolidWorks工程图到AutoCAD图纸的无缝批量转换。 总体设计组织结构流程图如图2.1所示。图2.1 总体设计组织结构流程图3 创建企业标准化的工程图模板利用 SolidWorks 出工程图,由于软件本身没有自带符合各行各业的工程图模板,特别是企业标准化的工程图模板,这样给我们出工程图带来了不少的麻烦。而生成企业标准化的并带有自定义属性信息的工程图是实现提取零部件工程图信息、进行工程图批量DWG的重要组成部分。因此在提取工程图信息之前,需要把零件图、装配图中的相关信息转换到工程图中,形成自定义属性信息的工程图。在工程图中插入材料明细栏时,每个零件的相关属性都是要能与材料明细栏所对应的列名称进行自动链接的,目的是能够通过链接自动在明细栏对应位置写入相关属性。为此,必须在零部件建模时设置其相关属性,其中与明细栏相关的属性包括序号、名称、材料、数量、单量、总重、备注等。在读取零部件的自定义属性时,具体读取方式主要采用了选择和遍历技术,逐个遍历装配体模型中零件树的种类与个数并进行统计后写人文件。需要注意的是,装配完成之后应该把装配模型中零件树的顺序按照明细栏的最后要求进行重新排列,目的是能够保证写入文件时记录的数据是按照明细栏的顺序排列的,减少排列出错的可能性。在生成带有自定义属性信息的工程图过程中,采用先根据企业的需求建立带有属性链接的图纸格式模板和明细栏模板,从而实现工程图中标题栏的自动填充和材料明细栏信息的自动添加。由于材料明细栏是在新的装配体零部件更名完成后进行这一系列的操作,因此就不会出现明细栏无法识别的情况,最后就可以生成带有自定义属性信息的工程图,为提取标题栏、材料明细栏信息奠定基础5。为此,必须首先创建一个企业标准化的工程图模板,为生成带有属性链接的工程图提供方便。3.1 安装“长仿宋体”字体 由于Solidworks软件自带的字体库里没有符合企业标准的字体长仿宋体,故需下载 “长仿宋体”文件,并将其复制到 C:WindowsFonts 目录下, 它会自动安装。3.2 修改“工程图.drwdot”文件启动 Solidworks,打开Solidworks软件自带的“工程图.drwdot”模板.在Solidworks选项对话框进行一系列的预设置,使之符合企业绘图标准6。(1)单击“文档属性”,在“总绘图标准”项选择“GB”,在其基础上进行其他选的修改,如图3.1所示。图3.1 设置总绘图标准窗口(2)选择“注解”、 “尺寸”、 “表格”、 “视图标号”选项,按照图示操作步骤将“字体”设为“长仿宋体”,“字体样式”设为“常规”,“高度”中的“单位”设为“3.50mm”,“间距”设为“0mm” 。如图3.2操作步骤所示。图3.2 设置注解格式框(3)选择“尺寸”选项“直径”、“半径”选项里的“文本位置”,将其设置在中间选择“出详图”选项,按照下图操作顺序设置为符合企业的相关要求,如图3.3操作步骤所示。图3.3 设置出详图格式框(4)选择“线粗”选项,“细实线”设为“0.18mm”,“粗实线”设为“0.35mm” (5)选择“单位”选项,选择“自定义选项”,设置为“毫米、公斤、秒”单位制(6)单击菜单栏里“系统选项”,选择“显示类型”选项,设置为符合企业的相关要求,如图3.4操作步骤所示。图3.4 设置显示类型格式框(7)将修改后的符合企业要求的绘图总标准保存到外部,命名为“QB-总标准.sldstd”,这样方便以后直接从外部文件装载,减少工作量,如图3.5操作步骤所示。图3.5 保存总绘图标准至此, “工程图.drwdot”文件图纸模板修改完毕, 点击菜单栏“保存”后退出。3.3 绘制工程图图纸格式模板下面仅以A3 图纸格式为例说明其绘制方法2 。u 自定义图纸大小打开Solidworks菜单栏中“文件”中的“新建”,新建一工程图,然后在“图纸格式/大小”对话框里,选择自定义图纸大小,宽度设为420mm,高度设为297mm,如图3.6操作步骤所示。图3.6 自定义图纸大小u 编辑图纸格式在图纸任意空白处单击鼠标右键,选“编辑图纸格式”,显示图纸格式绘制界面。利用草绘工具首先一个矩形,对矩形的左下角的点定义参数坐标为:X0Y0,右上角的点定义参数坐标为:X420Y297,这样图纸模板的外框就绘制出来了。然后再绘制一个矩形,对矩形左下角的点定义参数坐标为:X25Y10,对右上角的点定义参数坐标为X415Y287,这样图纸模板的内框就绘制出来了。接下来绘制模板的标题栏,按照企业要求绘制出如下所示的标题栏,如图3.7所示。图3.7 A3企业标准图纸格式u 添加标题栏文字绘制成标题栏后,用工具栏“注释”里的“注解”工具向标题栏中添加文字,如图3.8标题栏所示。图3.8 A3企业标准标题栏3.4 配置图板标题栏属性变量首先,我们需要明白这样一个概念:工程图中的属性变量。属性变量就是SolidWorks中3D模型与工程图之间的一个“纽带”,使得工程图中不仅是各视图与原模型关联,各种文字及表格也是与原模型相关联的,这个属性变量是跟随工程图中所引入的模型的属性变化的。而这也是目前的3D软件的终极目标:所有的设计信息及技术表达全部包含在一个3D图中,而2D的工程图仅仅是辅助,甚至可以不要,仅在需要纸质图纸交流的时候方便、自动的生成。在目前的版本中,SolidWorks自身模板中的属性变量并不一定是我们需要的,所以要自己定义一些属性变量。在SolidWorks中,不论零件、装配、还是工程图都具有各自的属性名称,只要我们在图板中定义好自己常用的内容,然后工程图中与零件对应,就可以实现标题栏的自动填写2。下面以“公司名称”为例说明配置属性变量的方法:双击“公司名称”,出现如图3.9所示。图3.9 配置标题栏属性变量然后选择“链接到属性”,出现如下界面,按照图3.10中所示步骤进行操作。图3.10 链接到属性对话框操作结束后出现如图3.11所示。图3.11 公司名称属性链接按上述步骤,将标题栏内的其他所需部分都进行属性链接,结果如图3.12所示。图3.12 标题栏所需部分属性链接单击鼠标右键,选择“编辑格式”,退出编辑状态,这样一个符合企业标准完整的工程图图纸格式模板就完成了,呈现如图3.12界面。保存图纸格式模板,命名为“QB-A3横向”,以便以后可以随时调用。图3.12 QB-A3横向工程图纸模板4 配置零部件属性并生成工程图创建完整工程图的组织结构图如图4.1所示7。图4.1 工程图组织结构图4.1 配置零部件属性以零件“级配单元架体DD”为例,介绍操作步骤:打开“级配单元架体DD”部件,选择主菜单中的“文件”“属性”命令,弹出“摘要信息”对话框,如图所示,单击“自定义”选项卡,进行如下操作:l 单击“属性名称”列下的文本框,显示“属性名称”下拉列表,选择“图样名称”。l 单击“类型”列下的文本框,显示“类型”下拉列表,选择“文字”。l 单击“数字/文字表达”列下的文本框,输入“级配单元架体DD”,代表所插入模型的零件名称是“级配单元架体DD”。按照这种操作步骤,完成“自定义”的各个信息,结果如图4.2所示。图4.2 设置摘要信息单击“确定”按钮,完成自定义模型文件的属性,这样做才能在工程图中插入模型时,使图纸格式上的各链接属性能再模型文件中找到对应的属性。4.2 生成带有属性信息的工程图以零件“级配单元架体DD”为例,介绍操作步骤。4.2.1 打开工程图单击“标准”工具栏中的“新建”按钮,弹出“新建solidworks文件”对话框。单击“工程图”按钮,再单击“确定”按钮。4.2.2 选择图纸格式在弹出“图纸格式/大小”对话框中单击“浏览”按钮,再在弹出的“打开”对话框中浏览到命名为“QB-A3横向”图纸格式文件,单击“确定”按钮。4.2.3 插入级配单元架体DD零件在“查看调色板”里,浏览以选取“级配单元架体DD”零件,在“模型视图”Property Manager中设定如下参数 “单个视图”:点选该单选按钮 在“方向”参数设定区域选择“前视图” “自动开始投影视图”:点选该单选按钮 “使用图纸比例”:点选该单选按钮,默认为1:10 自动投影俯视图和左视图,并插入轴测图单击按钮,结果如图所示,可以看到级配单元架体DD零件的图样名称、图样代号、材料等相关信息自动显示在标题栏中。如图4.3所示。图4.3级配单元架体DD工程图4.3 配置自动明细栏属性一个装配(*.sldasm)中包含这个装配的所有零件和相关装配关系,每个零件所定义的“属性变量”就会随着这个零件插入装配体的同时也会引入装配中。当使用这个装配生成工程图后,这些数据同样跟随进入工程图。那么当在这个零件所在的装配的工程图中插入“材料明细栏”时,各个零件的相关信息就会自动出现在自动明细栏中。以零件“级配单元DD”为例,介绍操作步骤。4.3.1生成级配单元DD工程图自动生成级配单元DD工程图,如图4.4所示。图4.4 级配单元DD工程图4.3.2 插入自带的材料明细栏单击工具栏中“插入”“表格”“材料明细栏”,显示如图4.5所示。图4.5 软件自带的材料明细栏很显然,它并不符合企业标准化的材料明细栏,因此必须对其进行一系列的设置,使之格式符合企业标准。4.3.3 编辑材料明细栏1) 编辑表格标题位置 单击整个材料明细栏,弹出“表格编辑框”,单击“表格标题在上”图标, 这样表格标题自动转移在下面。2) 编辑表格各个列属性选中表格的第一列,弹出“表格编辑框”,单击“列属性”图标,使其“自定义属性”为“图样序号”,这样这个列中自动便生成各个零件的图样序号,并更改“图样序号”文字为“序号”。以此方法编辑各个列的“自定义属性”依次为图样序号、图样名称、数量、材料、单重、总重、备注,多余的列删除。3) 编辑整个表格的行高度和列宽选中要编辑的行,单击鼠标右键,选中“格式化”“行高度”,弹出“行高度”设置框,设置为8cm;选中要编辑的列,单击鼠标右键,选中“格式化”“列度”,弹出“列宽”设置框,设置各个列宽。4) 编辑表格内文字选中要编辑的文字,弹出表格编辑框,对文字的字体、大小等进行设置这样就生成了企业标准化的材料明细栏,如图4.5所示。图4.5 级配单元DD材料明细栏选中整个表格,单击右键,选择“另存为”,命名为“QB-明细栏.sldbomtbt”,以便今后可以随时调用。5 系统的设计与实现5.1 任务分析SolidWorks是基于Windows平台的优秀三维机械设计软件,因其功能强大、易学易用等特点,在国内拥有越来越多的用户。但其三维图自动转换为二维工程图后仍存在一些无法解决的技术操作问题,如尺寸标注、明细栏格式化生成等。因此多数企业均采用SolidWorks进行三维设计,然后将其自动生成的工程图再转换成AutoCAD格式的DWG文件,后期工作在AutoCAD内完成。目前SolidWorks各版本没有提供工程图的批量转换功能,只能由人工逐一进行转换,耗时费力。因此开发一个SolidWorks批量图纸转换的专业辅助软件,可进一步提高产品设计效率,有着重要的实际应用价值和现实意义。 然而SolidWorks提供了基于OLE自动化技术的API函数,Visual Basic 6.0是一种简单易学,而且功能强大的高级编程语言,Access是一种容易使用,而且功能强大的数据库管理系统。因此可以使用Visual Basic 6.0为前台开发语言对其进行二次开发,SolidWorks工程图中标题栏和明细栏中的零件信息可以使用Acess来管理。使用Visual Basic 6.0为SolidWorks开发联接二维CAD的专用模块,配合Acess管理的数据,就可以开发出实现针对SolidWorks工程图的批量转换模块,从而实现对SolidWorks工程图纸到AutoCAD格式的DWG文件的批量转换,自动识别SolidWorks工程图标题栏和明细栏信息,直接生成符合企业标准的DWG图纸格式,达到SolidWorks工程图到AutoCAD图纸的无缝转换。 5.2 系统开发环境介绍5.2.1 Solidworks的API函数编制标题栏、材料明细栏所需要的信息全部存储于Solidworks三维图及相关的工程图中,如果利用开发工具能够调用Solidworks的API函数,直接调用相关的信息就能够获得Solidworks明细栏全部原始信息。Solidworks本身也为用户进行二次开发提供全方位的接口函数。为了方便用户进行二次开发,Solidworks提供了几百个API(Application Program Interfce,应用程序接口)函数,这些API函数是Solidworks的OLE(Object Linking and Embedding,对象的嵌入与链接)或COM(Component Object Model,组件对象模型)接口。接口是一个COM的术语,它包含了Solidworks中使用到的类。Solidworks是使用面向对象技术设计的。在Solidworks之下是表示软件各个方面的对象模型。为了将API暴露给使用其他编程语言的开发者,COM编程允许Solidworks将实际的Solidworks对象的函数功能暴露给外部世界。COM编程已经超出了本书的涵盖范围,但是读者应该理解API是由一组接口组成的,这些接口被组织为接口对象模型(interface object model)。一般来说将接口看作一个对象(object),这些词语意思相同8。Solidworks支持OLE标准,完全实现了OLE自动化。作为一个OLE服务器,Solidworks提供了大量的OLE对象,以及这些对象所拥有的方法、属性和事件,用户通过在应用程序中对这些OLE对象及其方法和属性的操作,可以在自己开发的应用软件中实现诸如生成直线、构造实体、检查曲面表面参数等几乎所有的Solidworks软件的功能。用户可以使用VBVBAVCDelpin等高级语言对Solidworks进行二次开发,建立适合用户需要的,专用的Solidworks功能模块。5.2.2开发语言Visual Basic 6.0Visual Basic是Microsoft公司于1991年推出的一个强大的Windows应用程序开发工具,短短几年时间,就成为Windows流行的编程语言。从开发个人或小组使用的小程序,到大企业应用系统,甚至通过Internet的遍及全球分布式应用程序,都可在Visual Basic提供的工具中各取所需。Visual Basic是一种面向对象的程序设计语言,采用控件为主题的事件驱动模型程序设计方法,大大减轻了程序员开发Windows应用程序的效率,使程序员把精力投入到系统应用中,而不是陷入Windows烦琐的处理机制和函数名称中9。和Visual C+ 这样的主流语言相比,Visual Basic具有不可取代的简单易用性和真正的“所见即所得”特征。曾见过一个比喻,把Visual Basic比喻为砖,Visual C+比喻为泥,用泥当然可能盖出更漂亮的房子,但得先把泥制作成砖。Visual Basic最大的特点就是简单。使用它来开发软件,开发周期短,代码效率高,故本课题采用Visual Basic 6.0作为SolidWorks的二次开发语言。5.2.3 系统采用ADO数据库连接技术 ADO(Active Data Object,活动数据对象)是一种基于COM(组件对象模型)的自动化接口(Idispatch)技术,是一个与编程语言无关的COM组件系统。并以OLE DB(对象联接和镶入的数据库)为基础,经过OLE DB精心包装后的数据库访问技术,是数据访问对象DAO、远程数据对象RDO和开放数据库互联ODBC三种方式的扩展,利用它可以快速地创建数据应用程序。ADO数据对象(ActiveX Data Object)是Visual Basic的数据访问接口,它解决了应用程序对数据源的访问,修改功能。AD0定义了对象模型,即访问和更新数据源所必需的活动顺序,对象模型概括了ADO的全部功能。对象拥有“方法”,以执行对数据进行的操作;对象拥有“属性”,以指示数据的某些特性和控制某些方法的行为;与对象关联的是“事件”,它是某些操作已经发生或者将要发生的通知。ADO的目标是访问,编辑和更新数据源,而对象模型体现了为完成该目标所必需的系列动作的顺序10。5.3 软件操作流程软件操作流程图如图5.1所示。图5.1 软件操作流程图进入本软件后首先需要输入正确的用户名和密码,登录成功后,才能进入系统操作主界面。然后单击主界面上的“读图”按钮图标,系统将自动打开SolidWorks软件,读取需要转换的所有工程图信息,提取其标题栏和明细栏信息,将其记录在数据库。再单击主界面上的“批量转换”按钮图标,就可以实现工程图的批量转换,将转换的DWG图自动保存在工程图相同的文件下12。5.4 系统各功能模块分析根据“Solidworks工程图批量转DWG软件”生成系统的任务分析及目标设计,设计好数据库系统,然后开发应用程序可以考虑的窗体的系统,每一个窗体实现不同的功能,可以设计下面的几个模块11。系统的功能模块结构图如图5.2所示。图5.2 系统的功能模块结构图 用户登录模块:要求用户输入正确的用户名称和密码,才能进入系统,如图5.3所示。图5.3 系统用户登录模块 修改密码模块:用户可以根据自己的需要对自己的密码进行修改,如图5.4所示。图5.4 系统修改密码模块 读工程图基本信息模块:工程图信息主要包括标题栏和明细栏信息。单击系统主界面中的“读图”按钮图标,进入读工程图基本信息模块。首先需要浏览出需要转换的所有工程图,然后单击“读取信息”按钮图标,系统自动打开Solidworks软件,开始读取工程图的基本信息,自动提取工程图的标题栏和明细栏信息,如图5.4所示。图5.4 系统读工程图基本信息模块附“读取信息”程序:Private Sub Cmd_ReadBOMToK3BOM_Click()On Error GoTo Err_Cmd_Start_ClickDim i As IntegerDim rs As New ADODB.RecordsetDim sql As StringIf Me.List1.ListCount 1 Then MsgBox 请首先选择要提取的Solidworks工程图。, vbOKOnly, 操作提示: Exit SubIf Not ConSolidWorks Then Exit SubSet swModel = swApp.ActiveDocConn.Execute Delete From 标题栏信息表Conn.Execute Delete From 明细栏信息表Me.List1.Enabled = FalseMe.ProBar.Max = Me.List1.ListCountMe.ProBar.Min = 0Me.ProBar.Value = 0Me.ProBar.Visible = TrueMe.Label2.Visible = TrueFor i = 0 To Me.List1.ListCount - 1 Me.Label2.Caption = 正在提取: & Me.List1.Text Me.ProBar.Value = i Me.List1.ListIndex = i GetCurrDRWBOM Me.List1.TextNextMe.ProBar.Visible = FalseMe.Label2.Visible = FalseMsgBox 批量提取图纸BOM完成。Me.List1.Enabled = TrueExit SubErr_Cmd_Start_Click: MsgBox Err.Description Me.List1.Enabled = TrueEnd Sub调用的“GetCurrDRWBOM”子程序:Public Function GetCurrDRWBOM(FileName As String) As BooleanOn Error GoTo Err_GetCurrDRWBOMDim BTL As BTLInfoDim sql As StringDim rs As New ADODB.RecordsetDim HaveMXL As Boolean Dim swDraw As SldWorks.DrawingDoc Dim swSheet As SldWorks.Sheet Dim swFeat As SldWorks.Feature Dim swBomFeat As SldWorks.BomFeature Dim sPathName As String Dim nNumSheet As Long Dim nRetval As Long Dim i As Long Dim bIsFirstSheet As Boolean Dim bRet As Boolean Dim CurrBOMNum As LongIf Not OpenSolidWorkFile(FileName) Then Exit Function Set swDraw = swModelGetCurrDRWBOM = FalseHaveMXL = False获取当前工程图自定义 属性 信息-BTL.TCode = Trim(swModel.CustomInfo(图样代号)去掉最后可能存在 的 回车 换行符If AscW(Right(BTL.TCode, 2) = 13 Then BTL.TCode = Left(BTL.TCode, Len(BTL.TCode) - 2)End IfBTL.TName = swModel.CustomInfo(图样名称)If AscW(Right(BTL.TName, 2) = 13 Then BTL.TName = Left(BTL.TName, Len(BTL.TName) - 2)End IfBTL.TDesigner = swModel.CustomInfo(设计)If AscW(Right(BTL.TDesigner, 2) = 13 Then BTL.TDesigner = Left(BTL.TDesigner, Len(BTL.TDesigner) - 2)End IfBTL.TMaterial = swModel.CustomInfo(材料)If AscW(Right(BTL.TMaterial, 2) = 13 Then BTL.TMaterial = Left(BTL.TMaterial, Len(BTL.TMaterial) - 2)End IfBTL.TNum = swModel.CustomInfo(数量)If AscW(Right(BTL.TNum, 2) = 13 Then BTL.TNum = Left(BTL.TNum, Len(BTL.TNum) - 2)End IfBTL.TWeight = swModel.CustomInfo(重量)If AscW(Right(BTL.TWeight, 2) = 13 Then BTL.TWeight = Left(BTL.TWeight, Len(BTL.TWeight) - 2)End IfBTL.TScale = swModel.CustomInfo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论