当前位置:首页 >> 机械/仪表 >>

CAD软件文档信息数据的应用及提取技术研究


CAD软件文档信息数据的应用及提取技术研究
the Application and Extraction Techniques of CAD Documents Information Data
on

Research



作学学研导

‘m弘

者位科究

F 及 姓类专方均 】飞 名型业向称

2013年04月

合肥工业大学/㈣
本论文经答辩委员会全体委员审查,确认符合合肥工业大学硕 士学位论文质量要求。

答辩委员会签名:(工作单位、职称)

主席:F生军辱吉专F组

却王隶稻撼
委 员:



印≯弛久弓.

别袄吹.

船未局坳蟛
旁】钐

独创性声明
本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究 成果。据我所知,除了文中特别加以标志和致谢的地方外,论文中不包含其他人已 经发表或撰写过的研究成果.也不包含为获得

金胆王些太堂

或其他教育机构

的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已
在论文中作了明确的说明并表示谢意。

学位论文作者签字胛

签字日期.

训i年甲月 ;日

学位论文版权使用授权书
本学位论文作者完全了解

金胆王些太堂

有关保留、使用学位论文的规定,

有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借
阅。本人授权

金肥王些太堂

可以将学位论文的全部或部分论文内容编入有关数

据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 (保密的学位论文在解密后适用本授权书)

学位论文者签名:

导师躲≥2钞弓
,1
1..f

导师签名:c7饥I影汐

签字日期:矽‘.1年‘p月;El
学位论文作者毕业后去向: 工作单位: 通讯地址:

签字日期:挪年哆月5日
电话: 邮编:

CAD软件文档信息数据的应用及提取技术研究 摘 要

企业在信息化进程中,内部信息总量也在快速增加,信息的管理强度和难
度也在增强。如CAD软件的运用,使图档的保存、管理和高效利用问题同益显

现,所以对于CAD软件文档信息数据提取和管理的研究很有必要。
本课题主要针对三维CAD软件文档关键信息数据的来源、应用、提取进行

研究,以Autodesk Inventor软件为例,分析了零部件模型文档属性信息的创 建方法及流向,工程图中标题栏、明细栏、参数表中数据信息来源,资源库中 标准件的信息传递等。运用面向对象的二次开发技术,利用插件与学徒服务器 的应用程序接口访问方式,有效的解决了零部件文档特性的快速生成、标题栏 的国标化、明细栏的国标化、参数表的快速生成及标题栏、明细栏的信息提取
与管理。完善了CAD软件用户界面功能,弥补了工程图中对自由表格处理不便 的缺陷,提高了表格对象的绘制效率,同时便于为PDM管理系统提供源数据,

方便实现文档、图档的管理和物料清单的打印输出等,有利于企业信息化管理
水平的提高。

关键词:CAD软件文档;数据来源;二次开发;信息提取

the Application and Extraction Techniques of CAD Documents Information Data

Research

on

ABSTRACT
In the process of informatization,the total amount of Enterprise information is also rapidly increasing,the intensity
as

and

difficulty

of

the

information

management iS also enhanced.Such management and efficiently
necessary to research
on use

the

use

of CAD software,the conservation,
are

of documents extraction

increasingly apparent.So it is of CAD document

the

and management

information data.
In this paper,we
are

mainly

research

on

the

sources,application and

extraction which is Autodesk Inventor of parts model
sources as

important for 3 D CAD document information data.Take

example,it researches

on

the created methods and the flow drawing information data transfer of
a resource

document properties information,the

of title block/part list/parameter,information

library of standard parts.Used

obj ect—orient

technology of re-development
server

of

CAD,make

use

of the way of Add—In and apprentice

with

Apprentice

application interface.It effectively solve the problems of the fast part/component

model document

properties

generation,the

fast

of parameter generation,the

national standardization of title block/part list,the extraction and management of the title block/part list information.It also perfects CAD software
user

interface,

eliminates defects that the free-form drawing is inconvenient,improves the

efficiency

of the drawing table

obj ect.It

is easy to provide

source

data to the PDM

management system and is convenient for the printout of the bill of material,
which also facilitates the achievement of the document and drawing management. It is conducive to raising the level of the enterprise information management.

Keywords:CAD Document;Data Source;Secondary Development;Information
Extraction





岁月如梭,研究生求学生涯即将结束,站在毕业的门槛上,回首往昔,奋 斗和辛劳成为丝丝的记忆,甜美与欢笑也都尘埃落定。值此毕业论文完成之际, 向所有关心、帮助我的老师、家人、同学表示最诚挚的感谢与最美好的祝愿。
首先要感谢我的导师刘炀副教授,感谢两年半来给予我生活上的照顾,学

习与科研上的指导;特别是本论文从文献阅读到选题再到完成,几易其稿,每 一步都是在导师的指导下完成的,倾注了导师大量的心血,在此我向导师表示 深切的谢意与祝福。 感谢Autodesk公司梁晓东、Brian两位专家为我提供了丰富的参考资料, 在软件二次开发上给予我的帮助,并在某些问题上提出了很好的建议。 感谢父母在学业上对我的支持及付出的辛劳,感谢你们竭尽所能地为我提 供良好的学习环境,给予我诚朴正直的品质;感谢我的哥哥、姐姐,感谢长期 来对我的关心、鼓励,祝福你们生活幸福美满。 感谢彭俊、张先炳、庞磊、唐超、朱启林、盛敏、刘栋、张培培、牛玉荣、 程晨、熊俊西、袁嫒以及实验室的其他兄弟姐妹们在课题上以及完成论文期间 对我的帮助;感谢邵伟、陈曦、宋文峰、代锟四位师兄在我找工作期间对我的
热心帮助;感谢7#¥239室友刘儒军、徐浩,¥525室友李见、赵锦在生活上对 我关心和照顾。

最后感谢在我完成课题和论文中参考的文献作者,他们的研究工作给予我 很大的借鉴和灵感;同时感谢评审论文和答辩委员会的各位专家、老师的辛勤
劳动。

作者:顾晓彤
201 3年3月21日





第一章绪论……………………………………………..1
1.1研究背景…………………………………………….1 1.2国内外研究现状………………………………………2 1.3研究目的和意义………………………………………4
第二章

CAD软件文档关键信息数据的来源……………………….5

2.1文档属性信息………………………………………..5 2.2标题栏信息………………………………………….5 。2.3明细栏信息………………………………………….6

2。3。1普通件信息来源………………………………….6
2.3.2标准件的信息来源………………………………..7 2.4参数表信息………………………………………….7
第三章
3.1

基于二次开发技术的信息数据流向的应用………………..10 CAD二次开发技术…………………………………….10

3.1.1二次开发概述…………………….j…………..10 3.i.2对象模型………………………………………10 3.1.3访问方式………………………………………11 3.1.4 VB.NET语言……………………………………12 3.2文档特性快速生成技术…………………………………13 3.3标题栏的国标化技术…………………………………..16

3.3.I国标中的标题栏…………………………………16
3.3.2标题栏的国标化…………………………………16 3.4明细栏的国标化………………………………………20 3.4.i国标中规定的明细栏……………………………..20 3.4.2明细栏的国标化…………………………………21

3.5标准件库的重建与输出……………………..………….22
3.5.1标准件库的重建技术……………………………..22 3.5.2新建标准件库的移植输出………………………….24 3.6工程图参数表的快速建立……………………………….25 3.6.1参数表创建的一般方法…………………………..25 3.6.2基于API技术对参数表格创建………………………26 3.6.3参数表数据的填充……………………………….28
第四章

文档表格信息数据提取技术…………………………..30
IV

4.1用户需求分析………………………………………..30 4.2标题栏的信息提取技术…………………………………30 4.2.1学徒服务器技术…………………………………30 4.2.2基于对象的标题栏信息提取………………………..3l 4.2.3批量提取的解决方案……………………………..32 4.3明细栏的信息提取技术…………………………………35 4.3.1获取明细栏信息的基本方法………………………..35 4.3.2基于Excel的明细栏信息分类导出…………………..36 4.3.3基于Word的明细栏信息分类导出……………………38
第五章

文档信息与数据库的交换…………………………….42

5.1数据库技术概述………………………………………42 5.2 ADO.NET数据访问技术…………………………………42 5.3产品信息数据库的创建………………………………...44 5.3.1关系的建立…………………………………….44 5.3.2数据来源………………………………………46 5.4程序构架与用户界面设计……………………………….47 5.4.1程序构架………………………………………47 5.4.2用户界面设计与功能分析………………………….48
第六章

总结与展望……………………………………….53

6.1总结……………………………………………….53 6.2展望……………………………………………….53

参考文献………………………………………………..55 攻读硕士学位期间发表的论文………………………………..58



捅图清单

CAD的开发趋势………………………………………2 图2-1 iProperties属性对话框……………………………….5 图2-2明细栏列选择器………………………………………6 图2-3圆柱齿轮设计器界面………………………………….7 图2—4肛参数表界面……………………………………….8 图3-1 API程序设计流程…………….……………………..10 图3-2 Inventor对象模型………………………………….1 l 图3—3 Inventor对象访问方式……………………………….11 图3—4文档特性对象模型…………………………………..14
图1-1

图3—5文档特性界面……………………………………….15
GB规定的标题栏…………………………………….16 图3-7 Inventor自带标题栏…………………………………17 图3—8质量获取流程图……………………………………..17 图3-9第一角和第三角投影符号……………………………..18 图3—10比例获取流程图……………………………………19 图3-1 1文档特性和标题栏信息集成界面……………………….19 图3—12通过集成界面生成的标题栏……………………二…….20 图3—13装配图中明细栏……………………………………21 图3-14装配图续页明细栏………………………………….21 图3—15 Inventor默认明细栏………………………………..21
图3—6 图3—1

6标准件族表窗口……………………………………23

图3—17本地库访问过程……………………………………25 图3—18网络输出库访问过程………………………………..25 图3—19自定义表格对象模型………………………………..26 图3—20齿轮参数表快速生成界面…………………………….29 图4—1零部件模型属性对象两种获取方式………………………31 图4—2文件存储模型结构…………………………………..33 图4—3标题栏信息提取过程…………………………………34 图4—4明细栏信息对象模型…………………………………35 图4—5基于Excel的明细栏信息分类导出过程…………………..36 图4—6明细栏分类导出进Excel的效果图………………………37 图4-7 Excel对缘模型……………………………………..37 图4-8明细栏分类导出进word的效果图……………………….38
VI

图5-I数据库三级结构图…………………………………..42 图5—2 ADO.NET主要组件及结构图…………………………….43 图5-3标题栏与明细栏信息提取过程图………………………..46 图5-4程序界面架构……………………………………….47 图5-5标题栏信息管理界面…………………………………49 图5-6明细栏信息管理界面…………………………………50 图5-7明细栏信息编辑界面…………………………………50 图5—8明细栏信息分类查看界面……………………………..5l 图5-9单个文档明细栏全部信息打印预览界面…………………..52 图5-10单个文档明细栏标准件信息打印预览界面………………..52

VlI

插表清单
表2—1 表2—2 表2—3 表2—4 表3—1 表3-2 表3-3 表5-I 表5-2 表5-3 表5-4 表5-5 表5-6 表5-7

标题栏与零部件模型对应信息…………………………….6 明细栏列表选择器与模型特性信息关系……………………..7 齿轮缸符号与国标符号对应关系………………………….。9 蜗轮蜗杆肛表中符号与国标符号对应关系……………………9 特性集的访问标识…………………………………….14 特性集“项目’’中的部分特性标识………………………..1 5 创建表格样式………………………………………..27 二维关系表………………………………………….44 标题栏信息表………………………………………..44 明细栏信息表………………………………………..45 明细栏数据集临时信息表……………………………….45 用户登录信息表………………………………………45 项目名称信息表………………………………………46 装配图名称信息表…………………………………….46

第一章
1.1研究背景





随着信息技术的发展与应用,企业开始大量采用CAD、CAM、CAE等计算机设

计技术来提高企业的办公效率。依靠这些术,企业可以对市场需求做出积极反 应,快速推出高质量的产品。目前大多数企业已逐步从二维设计向三维设计过 度,与传统二维设计相比,基于三维数字样机的CAD技术在数据的信息量、复杂
程度、集成度和交换频率等方面都大幅增加,这种技术更简洁、直观、可靠II J。 如在工程设计中Solid works、Pro/ENGINEER、CATIA、UG、Inventor等三维CAD 软件技术,Master CAM、UG.NX等虚拟数控加工技术,ANSYS、ABAQUS等有限元 分析技术,均已得到广泛的应用。

计算机设计技术的采用,提高了企业的信息化水平,同时企业内部信息总 量也在快速增加,信息的管理强度和难度也在增强。如在企业信息化进程中, 产生了大量的电子图档,图档的保存、管理和高效利用问题也同益显现。由于
大多产品设计具有延续性,一项新产品的设计中有60%利用了以往产品的设计 成果,所以文档管理的重要性不言而喻12J。目前大多企业对于设计文档资料管

理模式还较陈旧,采用打印方式保存到资料室,设计人员也仅将电子文档保存 到自己的硬盘上。这种存储方式容易造成混乱,工作量大,查找起来困难,自
动化程度较低,而且文档安全性和保密性较差。另外物料清单信息在企业中占

有重要的地位,是采购部门购买材料、零部件的重要依据,也是财务部门核算
成本,制造部门组织生产的重要保障。然而这项信息在企业部门之间的传递和

共享自动化程度较低,多数的企业没有实现信息化,只能通过技术部门的图纸 中获得,若能将图纸明细栏中的信息统一提取存入数据库,各个部门获取物料
清单就会方便很多。

倘若没有恰当的工具来管理这些电子图档和数据信息,这些信息就被孤立 起来,企业各部门之间难于有效的进行信息交换,所以急需要一种具有统一模 式的工具来管理这些数量庞大、多样化的信息,产品数据管理系统PDM(Product
Data

Management)技术就是在这样的情况下应运而生。从20世纪80年代至今,

PDM技术的得到了迅猛地发展。它使得分布在企业各个地方、各个应用中使用的

产品数据得以高度集成、协同、共享,产品研发过程得以高度优化或重组【3】。 然而运用CAD软件进行产品设计的结果以工程图纸或者相关的技术文档显现,这
些信息不能直接为PDM所接收,耳PCAD系统无法直接把产品信息传递到后续环节,

所以在进行PDM实施前,需要把这些图样、文档等信息转换成PDM所需的输入数 据。实现CAD软件与PDM之间数据转换的关键是对CAD图纸、文档信息的提取,在 实施信息提取前要清楚CAD软件自身在建立文档过程中信息流向,并能够充分的


运用这些信息数据。CAD软件不仅能够存储整个设计过程中的图形几何数据信息, 还允许用户建立非图形信息,这些非图形信息在后续的PDM产品数据管理系统中 占有重要的作用,所以了解和提取文档信息是解决图纸管理、物料清单共享、 产品后续加工快速进展、设计协同信息化等问题的根本途径。 1。2国内外研究现状 CAD软件一般都是开源的,为用户提供了开发平台,文档信息提取的理论基 础是二次开发技术,用户可以通过对CAD软件的丌发来获取需要的文档信息数据 或实现一些个性化的需求设置。 CAD技术诞生于60年代,在80年代因PC机的应用得以迅速发展,Autodesk 公司的AutoCAD在早期因支持拷贝应用而得到广大用户的青睐。90年代初又增加
了三维绘图功能,并第一次增加了Auto
Li sp汇编语言,提供了二次开发平台;

随后出现了Vl i sp独立编程环境,用户可根据需要进行二次开发,扩充CAD的功 能【4】。总体来说CAD的开发趋势如图I-I,专一化是指具体的某个功能插件,如 图纸格式转化插件;模块化是相关类的集成化,如公差精度配合模块;商业化 以AutoCAD为例,在其基础上开发的商业软件有天河CAD、浩辰CAD等。它们均创 新性的开发出适应国内标准需要的特有功能,提供了符合国家标准的图纸和自 定义的非标准尺寸。用户可以迅速的完成标题栏、明细表、参数表等附加表格
类文件的处理。

厂—————]厂———]厂————]
商业化


I I专一化卜_一模块化卜_—叫 I.........................一1.......................-J 1...........................一
图卜1 CAD的开发趋势

90年代初三维CAD软件迅速崛起,CAD技术也从二维到三维,遍历航天航空、 汽车、船舶等行业。目前我国的90%以上的中型制造业企业已应用了二维CAD技 术,30%的中型制造业企业已使用了三维CAD、CAPP、PDM、ERP等技术15 J。三 维软件的开发从内容上来看,主要分为三维产品的参数化设计与工程图的标准
化两个大的方面:从研究成熟度上来看,Sol id Works和UG研究较多。Sol
id Works

是第一个基于Windows开发的三维CAD系统,提供二次开发接口API(应用程序接 口)函数,并提供了支持OLE和COM的开发方式,具有良好的兼容性和开发性【6J。 UG提供先进的编程工具集UG/Open以满足用户二次开发的需要,它是一系列UG 开发工具的总称,随UG一起发布,以开放性架构面向不同的软件平台提供灵活 的开发支持【71。 CAD软件文档信息提取的研究大多集中在国内,以AutoCAD为主流,三维CAD 软件的研究较少。研究的主要内容是:工程图文档标题栏和明细栏的信息提取, 并以标题栏居多。国内对于二维CAD软件工程图文档信息的提取研究的有:
西北工业大学:杨建华采用程序与图形、数据分离以及数据驱动的方法,


运用数据库技术及面向对缘的编程方法建立了一个针对AutoCAD图形设计软件 的明细表自动生成及其信息管理系统哺j。王欣介绍了基于Act i veX
Automat ion

的自动化技术,从DWG文件中自动提取标题栏和明细栏管理信息的方法,并给出 了关键技术的源程序,在此技术上开发出的软件包在实践中得到了较好的应用
【9】


浙江大学代:胡敏分析了工程图样中标题栏、明细表及部件汇总表的形式 和内容,归纳了工程图中表格数据的特点,提出了用自由表格的矩阵表示法, 有效地解决工程图中自由表格的结构提取问题,同时介绍了从表格获取零部件 信息的方法【1 01。谭建荣通过分析标题栏信息表的构成特点,提出了基于单元概 念的描述方法,在此基础上采用基表来表达同类信息表的格式,并建立基表与数 据库之间的映射关系,通过单元识别和格式识别,实现标题栏信息的自动提取和
入库【111。

四川大学:张良栋,王杰提出了在AutoCAD图中通过Block命令建立一个带有 属性的块来实现对明细栏信息提取的方法,并实现产品结构树(BOM)的自动建 立,同时给出了一个具体实例来验证文中所提出方法的J下确性Il
21。

大连理工大学:李贤兵详细分析了DWG文件格式和标题栏的结构特征,通过 直接读取DWG文件,自动解读工程图纸中的文字信息,将标题栏区域的工程信息
提取出来,存储至UAccess数据库【l引。 上海交通大学:侯颖,何援军介绍了采用OpenDWG A1liante提供的第三方 工具集OpenDWG Toolkit,不依赖AutoCAD平台及其开发工具,实现了DWG文件标

题栏和明细表中工程信息的提取,并对提取过程的算法进行了分析Il引。 合肥工业大学:董玉德、刘孙通过分析DWG格式工程图纸中表格结构的特点,
提出了离线式自动提取表格信息的方法,并给出了系统的工作原理、体系结构

和工作流程,详细介绍了各功能模块和关键技术ll

51。

华中科技大学:龚雄、朱林、赵建军等通过分析工程图中标题栏和明细栏 的形式,从宏观布局和微观结构出发归纳了表格的位形特征,提出了基于单元 格和特征点的图纸数据自动提取策略,详细介绍了算法思想和实施步骤【I
61。

江苏科技大学:苗帅、王卫东采用VBA结合ActiveX Automation对AutoCAD
标题栏内的信息进行提取,确保提取信息的准确率,最后采用ADO技术把提取的 信息录入到数据库中117J。 江南大学:王滨滨、陈进针对制造信息化过程中,企业只能从固定格式的

标题栏和明细表中提取信息的不足,通过分析标题栏、明细表在工程图样中的
结构特征和数据存储特点,利用不同语义的数据在拓扑结构相同的表格中分布 相似的特性,从数据库中检索与目标数据表格有相同拓扑关系的记录,并按记

录中各语义数据的分御情况来提取目标数据表的信息,从而有效地解决了任意
格式的数据表中零部件信息的提取问题113l。


对于三维软件产生的文档信息提取主要有,清华大学:杨流辉、张和明采 取基于COM组件的方式对CATIA软件系统相关对象访问,实现了产品信息的提取, 具有结构清晰和互操作性强的优点,并且以轿车虚拟产品开发系统为应用背景, 为该系统提供了快速有效的产品信息访问119]。南京航空航天大学:胡敏、廖文 和通过分析了明细表信息的数据结构,利用CATIA原有的自动标号功能和参数化 功能,对用户输入的零件标号进行排序和信息项的自动提取,在此基础上进行
修改和校对,自动生成符合标准的明细表,并在三维CAD平台CATIA上,利用CAA 开发工具实现明细表自动处理系统,使得用户所需要的工作减小到最低程度12 01。

综上目前国内对于CAD信息数据提取的研究从采用的方法上来看主要有两 种:①局域分割模块化法,即把整个表分割成多个子表,通过一定算法,对其
搜索分析,进而提取信息,这种方法较复杂,运行效率也很低,要求研究人员

有很好的数学功底;②面向对象提取方法,是通过对相应对象的属性和方法的
访问来实现信息的提取,这种层次结构的对象模型更有利于编程人员的理解,

且不易遗漏信息,操作也较容易。从研究对象上来看大多集中在AuLoCAD工程图 标题栏、明细栏信息提取,针对三维CAD软件内部信息数据的来源、流向、提取
等研究较少,如UG、Pro/ENGINEER、Inventor等转换的工程图格式文件中信息 提取还没有相应的文献。

1.3研究目的和意义
本课题目的是基于Autodesk Inventor软件,研究三维CAD软件文档中关键

的信息数据,如文档属性信息、标题栏信息、明细栏信息;同时研究了这些信 息数据之间的关系,并充分利用这些信息数据,完成工程图中的表格类文件如 标题栏、明细栏、参数表格等的二次开发,进而使其快速生成符合国家标准化 的图表;另外对于工程图表格类文件中的重要信息进行提取和存储,便于建立 工程图档管理系统。意义是:第一、完善Inventor用户界面功能,可以方便快 捷的填写零部件文档属性信息;对于工程图不符合国标的缺陷部分进行弥补, 利用文档信息数据之间的传递关系实现标题栏的国标化、明细栏的国标化、参
数表的快速生成,提高工程图的出图效率,使设计者从繁琐乏味的劳动中解脱。

第二、对Inventor产生的*ipt零件文件,*iam装配文件属性信息进行批量提取,
并对IDW文件标题栏、明细栏的信息提取,为PDM管理系统提供源数据,方便实

现文档、图档的管理和物料清单的打印输出等,便于企业信息化管理水平的提
高。



[二二二二二二] 医垦墅匦二二二] F五五面■一…… 酉r画}馘l:壅匣::燃】
moxing

es属性对话框 i Propert 程图文档。这些文档的属性信息,可以使用软件自带的i Inventor中常用的文档类型有木ipt/*iam/*idw,分别指零件、装配件、工 2.1文档属性信息 CAD软件文档关键信息数据的来源 第二章 5 JI。电信息I】『以通过对心的零部件模型属巾l!信息关联得到,对应火系如卜.农2—1: 每个椎夕己格信息的米源进行定化。通过oJ零部件的文档属性信息对比发现,这 时M、巾核人、审核时l"J、最最、比例等信息。编辑标题栏l}l廿冗格文本,对 .I:程图标题栏-{,信息包含图样名称、图样代号、单位名称、设计人、设计 所以还彳J.彳、=少信息需要人为的添加和修改。 一螳1日家标准和行、Ik标准,要想利用一个软件的自身功能完全解决是不可能的, 信息理应全部来源于棚对应的零部件文档,但jI:程图中有大量的人为规定,如 任意删除。工程图是零部件模型的表达者。既然作为表达者,那么工程图中的 影和参数引用,所以工程图中的轮廓线,并非是AutoCAD)那样的图线,它不能被 的:l:程图不是简单的“三维转换为二维”,而是三维模型在二维图纸平面上的投 nventor中 形几何信息是三维模型按照平行jF投影规则得到的结果。需要注意I 不同类型文档数据关联最紧密的是零部件文档和工程图文档,工程图中图 2.2标题栏信息 iProperties属性对话梃 图2-1 sheji%iaveag 数据信息是接下来设计过程中的源数据,是其它相关联文档信息的直接来源。 性”,“惯性特性”等信息。零件设计完成后,需要给文档输入属性信息,这些 文档加入相关联的其它属性信息;“物理特性"中包含实体的“材料”,“常规特 态”标签中包含“审核人”、“审核同期"等信息;“自定义”的标签中还可以给 息;“项目”包含着“零件代号”、“描述”、“设计人”、“创建日期"等信息;“状 件特性或者工程图特性的信息设置。如“概要”中包含“标题”、“单位”等信 “项目”、“状态”、“自定义”、“保存”、“物理特性”,这些标签中包含着对零部 进行查看和设置,如图2—1所示。对话框的菜单中有几个标签如“常规”、“概要"、

6 的数值足II俐j细栏本身运算得…,其它则}lJ模型特性的数抛信息得到。 足明细栏l|1各项X,J-I,xL的数据来源,模型特性中“一”代表“序号”、“数最”tf, 从列选择器一}l不难看ilj,明细栏|I|的信息来源二J:零部件模型的文档属性。袭2—2 J:不符合要求的名称柏:“样式和标准编辑器”界而中“默认列设置"l|l修改。 JlJ的特性”列添加,对jj:“标题”、“.-n件”、“总计”通过新建特性添加,埘 ,,J 不卜d。。町通过该页1ifii对特性添加和删除,如对于“零件代号”通过Z。:侧“选择 fj、标准、名称、数量、材料、注释,这些特性与明细栏中规定信息选项有所 栏样式”中的“列选择器”查看,如图2-2是列选择器中默认的一些特性,如项 普通件是指明细栏中的非标准件信息,每列数据的来源可通过“编辑明细 图2-2明细栏岁U选择器 图明细栏中信息包含序号、代号、名称、数量、材料、单件、总计、备注。 在“标注’’选项卡中“表格”中单击“明细栏”,建立一个默认的明细栏。工程 工程图的明细栏需要用户先创建,在工程图中任意建立一个装配视图文件, 2.3.1普通件信息来源 2.3明细栏信息 比例 自定义 重最 物理特性一材料 材料 状态一审核日期 审核日期 状态一审核人 审核人 项目一零件代号 图样代号 项目一创建日期 设计时间 项目一设计人 设计人 项目一描述 图样名称 概要一单位 单位名称 零部件模型属性信息 :I:程图标题栏信息 表2—1标题栏与零部件模型对应信息

7 图2—3圆托齿轮设计器界丽 杆零部件牛成器。以正荫轮为例,设计器界而如图2—3。 在Inventor的设计器中提供了圆柱齿轮零部件、锥齿轮零部件及蜗轮蜗 有提供这些数据,用户所需要的数据都存在,但分散在不同的地方。 种机制,通过工程图不能直接得到这些数据。但并不是说Inventor本身就没 型,参数表中的数值结果也应如此;然而Inventor本身并没有为用户建立这 由于工程图仅是零部件的表达者,其中的数据要尽可能的来源于零部件模 2.4参数表信息 数据信息是明细栏所需要的,所以只要把这三项数据信息引入到明细栏即可。 名等数据信息。在这个族表中“规格尺寸”,“文件名”,“材料”,“代号”中的 包括其公称直径、公称长度、螺纹长度、螺距、尺寸规格、材料、代号、文件 库中的标准件。对于同一型号的标准件所有信息都蕴藏在族表中,如对于螺栓 明细栏中大多情况下会存在标准件,标准件的信息来源是Inventor资源 2.3.2标准件的信息来源 注释 备注 质量 总计【新建】 总计 质餐 单件【新建】 单件 材料 数量 概要一标题 标题【新建】 名称 项目一零件代号 零件代号 代号 序号 模型特性 列选择器 明细表 表2—2明细栏列表选择器与模型特性信息关系

Propert 设计成功。需要注意材料列表中的材料只能在设计加速器中使用,不会与 后输入使用寿命,点击“计算”即可,若在结果区域没有出现红色数据则表示 荷的设置)以及材料,用户可以根据Inventor提供的材料库来选择材料,然 计算方法,即根据什么标准来计算,如ISO标准;其次设置两齿轮的工况(载 界面中“计算"选项卡可以对圆柱齿轮进行强度计算,在计算前要先选择 5)“齿轮1”、“齿轮2”指定插入齿轮的方法、齿轮放置的方式及齿轮的参数。 数,例如“,tI心距”、“螺旋角”等。 4)“预览”显示圆柱齿轮尺寸的示意图,其他文本框都是计算齿轮所需要的参 3)“变位系数向导”表示指定计算齿变位系数的方法。 如选择齿数则是通过输入其他参数来计算齿数。 “中心距”、“总啮合校正”、“模数”,选择哪项,哪项就是要计算的结果。例 2)“设计向导”表示选择几何图元计算的类型,包括“模数和齿数”、“齿数”、 1)“常用”表示此区域定义圆柱齿轮的基本参数。 J: 界面中“设计’’选项卡参数的意义如下【21 e i 固 l嗣标符吁对心起来,如农2—3。 的符吁要印I 刁<需要的,所以要从?|l选择~‘部分必要的参数导出,在这m火键足要把厶表tI? 从图lll行jIj参数的符11}彳、=符合I目家标准,,3外许多参数足jl:程图参数表rfl l!警{2-4厶参数友界嘶 件模型的信息数据,可将这些信息引入到工程图的参数表中。 入“管理”菜单厶参数表,可以看到多个模型参数如图2-4,这些参数均是零 需要的所有参数值。以圆柱直齿轮为例,在装配模型中打开单个齿轮零件,进 和它自身配合的齿轮;此方法建立的模型参数是完整的,具有工程图中参数表 通过上述对齿轮加速器的操作,设计完成后,默认是一个装配组合,包含 s属性对话框中的材料相关联,要返回零件环境中重新设置。

表2—3齿轮厶符号与国标符号对应关系 厶符号 国标符号 名称
da b b

da_dw dw

da da da

da d

da_z2 z2

da_z


da_aw




面宽

工作节径

外径

节径

配对齿数

齿数

中心距

对于工程图参数表中需要的参数有法向模数、齿数、齿形角、齿顶高系数、
螺旋角、螺旋方向、径向变位系数、齿厚、精度等级、齿轮副中心距与极限偏

差、配对齿轮图号、配对齿轮齿数、公差组、检验项目代号、公差值等。在这 些参数值中有的直接引用零件模型中的数值,有的需要根据已知数值计算得到, 也有的需要自己添加。如:根据a=m(z】+z2)/2计算出模数,根据S=Ⅱm/2计
算出齿厚。

利用类似的方法也可对蜗轮蜗杆的参数进行调用,打开装配模型中的单个 蜗轮或者蜗杆,fx参数表中也有多个参数,部分参数与国标符号的对应关系如
表2-4;也有一些基本参数fx参数表却没有,如模数、齿形角、齿顶高系数、

导程角、法向齿厚、螺旋方向、精度等级等。对于这些没有的参数可以用已知 参数值进行推导或者直接添加的方式。如:根据m=Pz/n幸z1),求模数;根 据a=(q+zz)m/2,求出蜗杆直径系数q:根据tany=Zl/q,求出导程角;根据 Sn=1/(21rmcosY),求出法向齿厚122J。
表2—4蜗轮蜗杆厶表中符号与国标符号对应关系 厶符号 国标符号 名称
da
Z1 z

da_px Pl

da_z2 z2

da_d d

da da dn

da_aw


蜗杆头数

导程

配对齿数

:1卜径

外径

中心距

调用参数的方法是首先将fx参数表中“导出参数"一列全选,再点击“导
出参数",这些用户参数全部被导进零件iProperties属性对话框“自定义"

文本中,然后就可以在工程图中对模型属性中的自定义数据值进行调用,数据 的传递得到了实现。在工程图中对模型属性的引用,属于不同类型文档信息的
传递。



第三章
3.1

基于二次开发技术的信息数据流向的应用

CAD二次开发技术 第二章分析了零部件文档属性信息、标题栏信息、明细栏信息、参数表信

3.1.1二次开发概述 息的数据来源,零部件模型和工程图文档之间的数据流向。就CAD自身而言, 用户若要高效的完成这些信息的创建还是比较麻烦的,如文档属性信息的创建 不够直观、标题栏和明细栏中数据在关联的过程存在断裂的情况、建立和获取 参数表中的数据还较繁琐、标题栏与明细栏中还有诸多不符合国家标准化的情 况,针对这些问题需要运用二次开发技术解决。
Inventor的二次开发是基于COM的ActiveX Automation自动化技术,遵

循语言无关性,由一个应用程序通过外显的对象来操纵另一个应用程序,实现 数据共享,提高数据输入的准确性12 31。整个过程由客户端程序和服务器程序 组成,操纵和控制程序的被称为客户端,被操纵或者被控制的程序称为服务器, 被操纵的对象是ActiveX对象。客户端程序包含了一系列的暴露对象,只要服 务器程序提供一定的接口,它就可以使任何对象实现自动化。利用VB.NET控 制Inventor就是将TVB.NET作为客户程序,把Inventor作为服务器程序。
API(Appl
icat ion Programming

Interface)全称应用程序接口,是一种功

能。它把一个应用程序中的对象暴漏出来,供其他的应用程序使用,流程如图 3一l。Inventor是一个通用CAD系统,不是针对某个公司或某些特定产品的设 计,它适用于多个行业。然而不同的行业,不同的部门会有不同的或者特定的 使用需求,这就要求Inventor具有一些特色的功能,用户可以根据Inventor 提供的API开发一些满足个人需求的功能。如可以用Inventor API写一个程 序来满足特定专业设计需求的自定义功能,进而完成一些交互操作的自动化。 另外API还允许第三方应用程序与Inventor集成在一起,如PDM产品就可以 通过API和Inventor通信。

广———]广——————_]广—————]

I程序员卜一叫应刚程序API卜_叫
L.............J L.................—..._J

应用程序

L——-———--——————————_J



图3—1 API程序设计流程

3。1.2对象模型 自动化API是面向对象的,可以用对象的方法和属性来查询和编辑它们, 并且对象是Inventor ActiveX接口的主要构件,每一个显露的对象均代表一 个Inventor组件,对于Inventor接口中有许多不同类型的对象。模型图主要 包含界面部分、零件文档部分、装配文档部分、制图文档部分,如图3-2是简 化的Inventor API对象继承关系图。
10

图3-2 Inventor对象模魁

对象按照分层结构来组织,上图显示了对象上级和下级之间的继承关系, 并描述了怎样遍历它才能找到一个特定的对象。继承关系的关键是应用程序
Appl icat

ion对象,它总位于对象继承的顶端,通过它用户可以访问任何其它

的对象或任何对象指定的特性或方法。如通过获取Application的访问权限,
就可以访问到文档对象集Documents,然后就可访问到零部件文档和工程图文

档,进而对其文档特性集PropertySets的访问。 另一个重要概念就是集合对象,它们是一组相关对象的集合。集合对象最
少应该支持Count和Item属性,其中Count代表了集合中对象的数量,Item

返回此集合中的一个特定对象。多数集合对象支持各自的Add方法,用来创建 新对象。如DocumentS对象是一个集合对象,Count属性返回当前打开的文档 数目,可以用Item属性访问任何一个文档,另外支持Add方法添加一个新文 档,利用对象模型图、对象浏览器、VBA调试器可以更好的理解对象模型。
3.1.3访问方式

在Inventor中可以有很多不同的方式来访问对象,如VBA、Add-Ins(插
件)、Standalone EXE(独立的EXE)、Apprentice Server(学徒服务器)【241。 如图3—3所示:
插件EXE

独立的EXE


Inventor


虑J}{程序
VBA

l删:c。LL)I I

Inventor系统 图3-3



学徒服务器



Inventor对象访问方式

VBA的方式,它是访问和使用Inventor最便捷的开发工具,它简单、易 用,随着产品发行,不需单独购买;还可以把程序嵌入到文件中,从而使程序
1l

和数据绑定在一起;另外运行在Inventor相同的处理空间,效率很高。 Add-In插件的方式,如图3—3可以选择生成DLL或者EXE,区别是DLL

是运行在Inventor相同的处理空间内,EXE运行在单独的处理空间中。实际 运用的插件基本都是DLL,这样可以提高运行效率,至于EXE的好处是调试方 便。插件的优势是:1)随着Inventor自动加载,并且可以实现无缝集成;2)
可以创建新的命令和按钮,界面容易被用户接受1251。

独立的EXE方式,它和Inventor联系在一起,是运行在自己处理空问中 的一种应用程序。典型的使用情况是:需要使用到Inventor,但有自己的界
面并且不需要用户在Inventor中做交互操作。这种运行在Inventor之外的处 理方式,会有一些效率上的损失。 学徒服务器(Apprentice Server)的方式,从本质上说它是Inventor

的一个子集,没有用户界面,运行在使用它的应用程序的处理空间内。它包含 Inventor中大部分的对象,提供了对几何特征、装配结构、边界映像以及文 件属性的访问。与学徒服务器交互的唯一方式通过它的API,它给在Inventor
之外的运行应用程序提供了访问Inventor文件的能力。对于文档信息的访问,

学徒服务器比较好用,比起在Inventor内部操作具有高的多的效率。
3.1.4

VB.NET语言

VB.NET是基于微软.NET Framework框架之上的面向对象的中间解释性语 言,可以看作是Visual Basic在.NET Framework平台上的升级版本,增强了 对面向对象的支持,集成与Vi
sual

Studio平台中1261。Vi

sual

Studio平台是
Studio 2010,

目前最流行的Windows平台应用程序开发环境,本课题用Visual

它的集成开发环境界面被重新设计和组织,更加简明;它同时带来了.NET
Framework、Microsoft Visual Studio 2010

CTP(Community

Technology

Preview~CTP),并且支持开发面向Windows 7的应用程序:除了Microsoft

SQL

Server,它还支持IBM DB2和Oracle数据12 7。。VB.NET语言具有更好的错误处

理技术,有丰富的.NET类库;定义和初始化在一行代码里;而且简单易用, 功能相对较强大,是非计算机专业人员开发的首要选择。用.NET获取
Appl

ication,一般有两种方法;一种是通过外部程序调用,另外一种是通过
1)外部程序调用。通过System.Runtime.InteropServices.Marshal.

插件的方式。
GetActiveObject和System.Activator.CreateInstance方法两个语句调用, GetActiveObject是获得被激活的Inventor对象,CreateInstance是创建一

个Inventor文件,它们的前提是先引用Inventor对象f2引。调用程序实例过 程如下:

12

Dtm InvApplication

125



InⅣ,entor.Application=Nothing

n9‘获褥一个被激透的文档
Invappltcatlon=o'stem.nmtirne.Intcropservlces.marshal,getacttveobject(7"Ir“,entor.Appllcation’=)
Catch a
as

I虹累没奇被激话.剑建一个辆的吣咖∞文{掌
D砌tnventorapptype as rype=system.O'pe.gem'pefromprogM(‘'Inventor.Application’=) lnvapplication=system.acttvator.createinstance(Inventorapptyp喀)
Invapplicattortv豇lbla=true

exception

Endtry

Catch豇as

exception

End鲫

2)插件的方式。插件除了上面提到自动加载和创建菜单两种优势,另外 还具有更好的处理事件能力;可以有自己的安装程序,无需手动修改或配置用 户机器。运用DLL传递,代码更安全;对事物(transactions)和(transcript ing) 有更好的支持1291。插件注册和卸载方法可以通过.bat文件实现,32位和64
位的方法稍有区别,具体方法如下: 注册32位bat文件:
@echo off

PA跚

Cj l珏孙DD瞅女^缸阳跑廖朋!n

n册旧∞睹1v2.D.507271RegAsm.“P/codebase筋?I学_名尜宄积

注册64位bat文件:
@echo off

Cjt阮四D网协伽硷劈地n陬眦w刎删1儿口.加刀71阮厦矾倒/cD出妇嬲独础 以跚
D}脚D玮Sl 2l犯m孢理.NET洞rameworkiv2.O.507271RegAsm.exe
@echo硝
J缸nreglster耪:斧名名宄dll

卸载32位bat文件:

PAUSE

卸载64位bat文件:

@echo形

C:,WINDOlV黜llcrosoft.NEDn锄豫譬。成钓、v2.8.50727妇吕盘孰豇窖An忧gist嚣插俘名弓彝-d/l

黝跚

3.2文档特性快速生成技术 在零部件的设计过程中,文档特性是不容忽视的一个方面,能够实现文档 特性的快速生成有着重要的意义。
1)终端用户界面的方式

对于文档特性的生成,可以通过终端用户

界面和API两种方式访问,利用API的方式可实现其快速生成,分别阐述如下:

对于文档特性,Inventor自身提供了i Properti es对话框的访问方式, 通过属性对话框找到标签然后填写相应的信息如图2—1所示,每个标签中包含 的信息较多,但有许多是设计者不需要填写的,这种方式查找起来较麻烦,他 们需要很清楚知道每个标签中包含的子信息,会影响到工作效率。若能够把常
用的特性集成在同一个界面,便会实现快速操作。
13

2)API的访问方式

对于Inventor文档特性的快速生成是基于文档特性对象而解决,对象模 型如图3-4,反映了文档特性中不同对象之间的关联性,对象能够实现自上而 下继承的关键是获得应用程序(Application)。获取Application访问权,可 得到API中的任何其他的对象。图中Documents表示不同类型文档的集,如零 件文档、装配文档、工程图文档等;Documents表示一个单独的文档,对于每 一个文档,都可以进入和它相关联的属性。每个文档都有一个“特性集集合" (PropertySets),通过它可以遍历和访问所有“特性集”(PropertySet)特性集 包含对应的“特性"集合,提供对于它所拥有的“特性"的访问;Property 一个具体的特性,它是名和值的匹配。 用API访问文档特性,主要是针对特性集和特性两个对象模块。Inventor 文档特性中有三个标准特性集和一个自定义特性集。对于特性集对应 iProperties对话框标签中“概要、项目、状态",具体的访问标识如表3—1[30]:
表3-1特性集的访问标识 显示名 内部唯一号 {F29F85EO一4FF9—1068- 概要 AB91—0800282783D9) 项目
9E93—0060803C Informat ion Design Tracking— I

唯一名
nven tor



Summary——

k而丽

{32853FOF一3444一l 1D1- 1CA6)

Propert ies Inventor User——

fD5CDD505—2E9C—10 IB- 自定义
Defined

图3-4文档特性对象模型

9397—0800282CF9AE}
Properties

标准特性集可通过“内部唯一号”或者“唯一名"访问,一般不采用显示 名,因为对于不同语言版本显示名不同。VB.NET代码如下:
Dtm m—.doc As Inventor.Document Dfm Indestgn As propertyset

Indesign=m_doc.prop哪,¥cts.Item ct内部碓一号l准一名”)

对于自定义的特性集,创建方法如下:
m_ctoc.ProperO.,Sets.Add Drame彳s s伊Ing,[IntemaLvame])

l其中N强键穗ni|moiNQ撇必须是难一t蛋黜访通瞬会冲突
对于特性,它是特性集中的子信息,如其中一个特性集“项目”包含的“零

件代号"、“描述"、“设计人"、“批准人"等都为特性,它们也有相应的标识。 特性集“项目”中的部分“特性"标识如表3-2[30J:

14

[囵[皿 材料:陋匣[二 -件代号:匮曼叠耍[二二]
kPartNumberDes P 5 n Track Description 29 kDescriptionDesign—— Number e g kEngrApprovedDes igner Des 41 kDeSignerDeSign—. u oPartn.value=j'Part-001 OPartn=Indestgn.ItemByPropld Dim By Approved TrackingProperties 12 Engr i Next In As ctorenLMaterial Each For 一’’ k____-—--_√ 1S s n— art gPropert


唯一名 唯一编号 权举值 表3-2特性集“项口”中的部分特性标识 需 1赋谴方式为t tH投举值{唯一编号H) Number’,剪营 OPen=Indesign.Item('Tart OParm岱property 特性,VB.NET代码如下: 通过唯一名、唯一编号和权举值三种方式来访问特性,如访问“零件代号” e 档特性界面,去除了ipropert PropertySet.Delete或者Property.Delete。图3—5是根据个人需要定制的文 ete方法删除,即 型,其中object或array除外。自定义特性通过Del 特性集中添加属性,Name和PropId在该特性集中必须唯一,值可以是Yariant 允许在新建特性集或者缺省自定义的特性集中添加特性,但不允许向标准 Prop【哪'Set,Add(PropValue,脚ame],[PropId]) 对于文本特性对话框中不存在的特性通过自定义的方式创建,方法如下: Me.CombomaterialBoxl.Items.Add(currenLl,taterial.,Vame) odoc2.Martials Im'entor.Material 件文档中常用的材料添加到列表框中,供快速选择调用。VB.NET代码如下: 图 田样名称:I!i[::二二二:::]簟位:巨型壁j!i鹱 张:f型匮二二]张日期:f蓐叵量童习 设计人:厘夔塑[二]设计日期:莲垂至至亘三囹 可实现快速操作。 s对话框中不需要文档特性,此界面较简洁, 3-5文档特性界而 要注意一点,“材料”特性的获取不同于其它特性。对于材料特性,可把零

3.3标题栏的国标化技术 3.3.1国标中的标题栏
GB/T 10609.1-2008是标题栏的新标准,是对GB/T10609.1-1989《技术制

图一标题栏》的修订。本次修订主要是根据我国制造业产品的进出口贸易和技
术交流的需要增加了有关条款,并针对在标准文字和编辑上发现的一些问题等,

对原标准的内容改后编制而成。主要修改的内容有:修改与增加了“范围”和 “规范性引用文件”的内容;增加了“投影符号"标注的方法、概念和位置;
另外还就标准中的相关内容作了文字上的修改。

新规定中标题栏一般由更改区、签字区、其他区、名称及代号区组成,也 可按实际需要增加或减少。更改区一般由更改标记、处数、分区、更改文件号、 签名和XX年XX月XX日组成;签字区一般由设计、审核、工艺、标准化、批 准、签名和XX年XX月XX日组成:其他区一般由材料标记、阶段标记、重量、 比例和共XX张第XX张及投影符号等组成;名称及代号区一般由单位名称、
图样名称、图样代号和存储代号等组成,图3-6为GB/T 10609.卜2008标题栏 的格式13¨。
I∞
一Io—lt. 协 棒 蠊 弭


‘H一露记, ‘●椅名t'
12

4x■‘‘一旧
k记
投计 虹^ 努H 量?穗立tt‘j 簋幺 C蔓靠' q‘.月.门



'■■T,'1●●,

I 一

‘薹幺)

‘年,Iti' ..I摩他

‘年月Ii,

曩段缸C

童重

化■

审槛

l U坠
芷疆
12 l‘
I,

‘一抒代垮’ ‘投■柯哆’

1=艺
I,

Jt蠢曩豢
12 l●



图3—6

GB规定的标题栏

3.3.2标题栏的国标化
工程图标题栏中的信息来源于文档属性,所以对于Inventor标题栏的国

标化可以基于文档特性对象来解决,其对象模型如图3—4。工程图仅是设计模 型的表达者,所以工程图标题栏的数据来源应该是零部件的原始数据。但在不
同文档特性数据关联的过程中,Inventor 2010默认的标题栏GBl本身还存在

一些问题如图3-7:①重量的填写不需要写单位;②“投影符号”与“图样 代号”应区别开;③没有张数统计,如“共张
现自动填写。(与GB/T10609.卜2008比较得出)

第页”;④对于“工艺",

Inventor本身就没有提供数据结构;⑤标题栏中主视图的“比例”,还不能实

16

<单位>

标记

甜髓

分匠

更改文件号 标擅化

笸名

年.月.E

设计

阶曩标记

纛-Cl嘧) 一(1)~

}喇
((5)’

<名称>

审按

I I I
=,



no垃螂。

(饕


图3—7

r(3)、
\-———,—,一/

、~C2),7

<零等代号>

Inventor自带标题栏

解决以上问题的关键技术如下: 1)重量的处理

对于工程图标题栏中重量可通过编辑“标题栏",引用“物理特性一模型",
然后选择特性“质量",将其引用到标题栏对应位置,但是这种通过Inventor 本身数据关联引入的质量带有单位kg,不符合国标要求,需要对其处理。思 路是将零部件文档中质量特性引用到工程图文档特性中,即要实现不同文档之
间的特性传递。质量获取流程如图3—8:

图3-8质鼍获取流程图

部分程序语句如下:
For Each ode匿c in
odoc3


l把渊瞰D稻cripto珏

m_doc.Relented_

odesc.ReferencedDocument

5trtext3=odoc3.ComponcntDcfinitimtMassPro
perttes.,弛ass

lnvcustom=m_doc.ProperQ,Sct¥.Item(t'Inventor User

D嘎伽t融no畔12s”)。Am(s—taxt3,H重量”)

上述流程图中,对于自定义中已存在“质量"特性删除的原因是:防止材

料在二次修改重新加载时出现冲突,所以每次要先清除已存在自定义“质量” 特性,这样可使材料能随着Add—In界面的选择而实时变化。通过m—doc。Referen—
cedDocumentDescriptors可以获得当前激活文档的一些内部特性描述,再通过
17

,,噼.ProperO,Seu.Item("Im,emor沏D咖谢Prop酬tes’ 痧臼一 一臼固一
es可以有效的解决。比例获取流程图如图3一l i 访问propert nventor的设计数据存在断裂情况,在此通过API 填写和关联的功能,这说明I 辑视图唧卢进行设置,但目前Inventor没有提供与标题栏中比例相关的选择、 出比例。对于主视图或者其它视图的比例,可以通过选择一个视图右键一“编 的比例,而不是所有视图的比例。与主视图比例不同的视图,按要求单独标记 会有不同的比例。但对于被激活工程图文档标题栏中的比例标记则是指主视图 按设计者表达的需要,一个工程图可能会有多个视图,而这些视图还可能 4)比例的处理 自定义的方式实现: 另外对于标题栏中没有的信息如“当前张数”、“总张数”、“工艺”等通过 3)张数和工艺的处理 J第二角投影符号 图3—9第一角jFl b)第三角 a)第一角 式为:m—doc.SketchedSymbolDefinitions.Item(”略图符号名称”) 分别建立第一角和第三角图样,并对应命名为“第一角"和“第三角”。获得方 入标题栏特定的位置。过程是:首先在工程图略图符号中定义两个略图符号, 图3—9【311。在这里是通过API调用工程图略图符号方式,实现了投影符号自动填 且规定采用第一角画法时可省略标注,第三角时要标注,两种投影识别符号如 对于标题栏,新标准在原有的“零件代号”一栏中加入“投影符号"栏, 2)投影符号的处理 题栏中可获得满足标准的质量值。 量”一栏引用的类型为“工程图一自定义",特性中为自定义的“质量”,这样标 自定义的特性“质量"中,对其赋值,然后编辑工程图中的“标题栏”,使“质 获得工程图中零部件不带单位的质量值,符合要求。将这个数值添加到工程图 tion.MassProties.Mass语句。由MasS 相关联的特性质量,用ComponentDefinj I{eferencedDocument可以找到和当前激活文档相关联的特性,在这蜓主要找到 18 0:

曩里 禹I 圆上兰勰 黧矗~虱羽 到一

S:l 1 l l转换为 转换为I 取比例值 N l i I 0609.1—2008的要求,也证明AP 题,此标题栏满足(;Ij/Tl 2,解决上述“点问 n集成界面牛成的工程图标题栏如下图3一l 通过Add—I =1、=同类型文档之问的相互通信。 通过ReferencedDocumentDescriptorS和ReferencedDocument两个对象,使 动建立和修改,实现了零部件与工程图文档之问的特性传递。具体实现方式是 外在工程图文档条件下建立或者修改特性,同时零部件相关联的特性也将会自 建立零部件文档特性时,同时工程图的相关联的特性也会自动建立和修改:另 两个模块的集成,需解决不同类型文档特性的相互关联,即在界面修改和 1文档特性和标题栏信息集成界面 图3一l 下就可实现。 个界面如图3—11,这样文档特性的快速生成和标题栏的国标化在同一个界面 把零部件文档特性和工程图中标题栏信息进行集成,使这两个模块集成到同一 独的Add—In插件就可以实现标题栏的国标化。但为了使应用程序更简洁实用, 根据上述提供的解决方案,利用API的访问方式,在工程图中加载一个单 图3—10比例获取流程图 比例特性值l 标题栏弓用l 19 jJ:悱及快捷方便的优辨。 :N cale对象获l ;j:『问文档特性的可

含肥I:业人学 钢台金
h-’
tR 01.

t.、tnj

尊}

¨

fI

拉杆
阶段h.记

Ⅱ?I

“证~

∞谨I●

h一吨

手虢(Ic口)

It倒

自H

}^

加12I、,

l l l
:们:I’

0.010

3:1

part 001

?!

Ll{,l‰

JE S

Ijf

淝1瓤

一日囟一

图3—12通过集成界面生成的标题栏

3.4明细栏的国标化
3.4.1国标中规定的明细栏

明细栏作为工程图的重要组成部分,它用于反映各零部件之间相互关系及
属性信息。目前Ca/T


0609.2-2009是明细栏的最新标准,用于代替Ca/T

10609.2—1989。新标准适用于装配图中所采用的明细栏,规定了其基本要求、 内容、尺寸与格式,其他带有装配性质的技术图样或技术文件也可参照采用,
新标准规定如下:

明细栏配置:一般配置在装配图中标题栏上方,按由下而上顺序填写:当 延伸位置不够时,可仅靠在标题栏右边自下而上延续;当装配图中不能在标题
栏的上方配置明细栏时,可作为装配图的续页,按A4幅面单独给出,其顺序

应是由上而下延伸:但应在明细栏的下方配置标题栏;当有两张或两张以上同 一图样代号的装配图,而又需要配置在装配图标题栏的上方时,明细栏应放在
第一张装配图上D引。 线型和字体:明细栏中字体应符合GB/T14691中要求,字体的大小用字号 表示13引。数字和字母可写成斜体或直体,一般采用斜体。线型应按GB/T 和GB/T 4457.4Z中规定的粗实线和细实线的要求绘制1341。 内容填写规定:明细栏一般由序号、代号、名称、数量、材料、质量(单
17450

件、总计)、分区、备注等组成,也可按实际需要增加或减少。其中序号是指 填写图样中相应组成部分的序号;代号指图样代号或者标准编号;名称指相应
组成部分的名称,必要时也可写出其型式与尺寸;分区在必要时按照有关规定

将分区代号填写在备注栏中;备注指填写该项的附加说明或其他有关内容。
尺寸与格式:装配图中明细栏各部分的尺寸与格式见图3-13:明细栏作 为装配图的续页单独给出时,各部分的尺寸与格式见图3-14[32】。

20




‘口

‘‘



38



12

28

序 号









数 量





、I




簟件

总计

重蕾

备注

(标题栏)

图3—13装配图中明细栏

图3—14装配图续页明细栏

3.4.2明细栏的国标化 明细栏中的信息来源是设计模型属性和标准件库两个部分,按照 Inventor默认的设置,工程装配图自动生成的明细栏往往不符合我们国家的
国标要求。而其零件库的各项属性值也不全部符合中国国家标准,如图3-15。


GB厂r
35?1988 GB_厂r

螺蛉GB 3S M12
45





低峻锕 低凝锶 铡?}会 L£祭硌拽
+{¨ ;t伟



蜂埘GB玎lZ29
M12



1229-2∞6
2 I J伽ll

I泊rt 002
I,卉籼16

l I 数翻

hm

轧铱

事f1 f℃U

Ulj棚r

图3—15 Inventor默认明细栏

从上图可以看出Inventor

20l 0自动产生的明细栏与GB/T比较本身还存

在一些问题:①表头中多一行“明细栏”,且所包含的列项目与标准不符合; ②各行各列的尺寸不符合;③对于“名称"一列没有显示出来:④对于从资源
库中插入的标准件的代号写法不符合要求。 解决以上问题的关键技术如下: 1)明细栏表头样式:

除GB中规定的方式外,企业中还常运用自己的格式。格式的制定可通过 右键点击“编辑明细栏样式”,进入列表选择器中添加对应的属性;若不能满
21

足还可以通过编辑工程图中的标题栏,按照一定的尺寸设计要求紧接着标题栏 的上方绘制,然后在相应的位置插入相应的文本。
2)明细表每一列的内容定制:

明细栏中内容定制要通过“列选择器"实现,在“可用的特性"标签中选 择需要的特性,若没有利用“新建特性"新建,然后对于名称不符合的在默认 列设置的中修改,还可以修改每一列的宽度,对于添加或者更变其它的列表头
可以用类似的方法。 3)标准件代号解决方案:

对于“代号”这一栏,引用的是零件代号中的数据,具体指图样代号或者 标准编号,对于引入标准件的编号的处理还存在一定的问题。标准件是把“标 准”和“规格"分栏写出,对于这样的格式Inventor不能自动完成。对于标

准件在明细栏中代号栏中出现,这些信息来源于标准件零件文件的“特性"一 “项目"一“零件代号”栏目中,这项信息在标准件中默认存在。如标准螺栓
零件在文档属性中“零件代号"中默认填写的是“螺栓GB/T 29.卜1988一M3x 1 2",
实际需要是把螺栓、GB/T 29.1-1988和M3x12这三个项目分开填入。所以直 接引用的标准件不能满足后续要求,而且Inventor明细栏的代号栏总长度很

难把握,难以与标题栏匹配 通常的解决方法是在提取标准件对话框中,选择“作为定义"进行输出, 实质是把库中的模型原始结构按照新建零件的模式插入到装配环境中,这样所 有特性都可编辑修改了。拿到修改权限以后就可以在零件属性中填入合适的内 容,如上面一个例子可以在概要的标题中填写“螺栓",在项目的零件代号中
填写“GB/T 29.1-1988”,在概要的注释中填写“M3x12",这样零件属性数据

就流向了明细栏,显现在明细栏中名称、代号、注释三个对应的位置。这种方 法对于装配件中含有少量的标准件适应,当标准件的量较大时,每个标准件都
要打开修改,而且每次工程图中出现标准件时都需要重复进行这样的处理,工

作量相当大。所以为了从根本上解决这个问题,提出了标准件库的重建方法。 3.5标准件库的重建与输出
3.5.1标准件库的重建技术

资源中心是指标准化的模型库和数据库,提供了按条件快速检索、提取 标准模型及修改标准库和发布自定义库的功能,也包括库单元在使用中的设计 关联。实际上,库的内容不仅仅限于标准零件或者用户定义的标准零件,还应
当包括“标准机构”、“标准设计规则"等内容,不同的CAD软件完善程度也不 一样。对于软件设计的核心内容是:设计构思的表达、设计数据的关联以及设

计决策的支持。库不但要包含这三方面的内容,还要有很好的单元数量、选择 机制和管理能力,所以库的作用和技术含量对于整个软件的作用非常重要135l。
22

P3 对于族表中的信息Inventor默认只有“代号”、“材料”两列分别与零件属性 6,由第二章分析 同一型号的标准件所有信息都蕴藏在族表中,如图3-1 2)标准件库的个性化设置 jis—GB。 Feature和Inventor Inventor 心”,在“配置库"中将不需要的非中国国家标准库文件关闭掉,只留下 件的大小。其方法是在打开资源编辑器填充自己的库之前,进入“配置资源中 许多国家的标准。如果生成只含有中国国标的零件的话,可以大大的减小库文 文件量很大而且生成过程非常漫长,这是因为Inventor标准件库包含了其它 需要注意的是:若直接将“类别视图”中的零部件库全部复制到新建库中, Libraries。 这些类别结构分别复制到一一MY 束、管件和管材、结构型材、紧固件、特征、轴用零件等项,在弹出框中,将 “编辑器”,并在左侧树文件中分别选择“类别视图”下的:钣金、电缆和线 其次填充新建库文件。点击“工具”选项卡,在“资源中心”选项上点击 击确定,这样一个空库文件就建立起来了。 es,点 brari Li New 再点击“创建库”,可以输入自己的库名,在这里输入MY 打丌“项目”对话框,点击“配置资源中心”,可以弹出“配置库”对话框, nventor的开始首页中点击“快速入门’’菜单, 首先建立一个空库文件。I 1)建立可读写标准件库 留每次对库中零件的修改的结果)。过程如下: 除、改变数值等)、移植性(即可以放到不同机器上使用)、保留性(同时可保 的个性化标准件库。此个性化标准件库具有可修改性(对库文件可以增加、删 尺寸规格自动填入明细栏中名称、代号、备注的对应位置,需要建立一套自己 为满足自动生成国家标准明细栏的要求,能够将标准件的名称、标准代号、 e i 2 I 16标准什族农窗l 图3 988为例,阐述其连接过程。 29.1一l 连接,以六角头螺栓GB/T 在数据断裂。可利用Inventor自身提供的特性引用机制对断裂数据进行重新 ropert s“项目”中的“零件代号"和“物理属性”对应,其它信息都存

在资源中心编辑器中的类别视图浏览窗口,选择紧固件一螺栓一六角头,找 到对应编号的螺栓,右键点击“族表",就打开了GB/T 29.1-1988这个标准号 的所有六角头螺栓信息。族表的左上方有一行菜单(如左上矩形框部分),分 别指通过电子表格编辑、排序、添加行、删除行、添加列、删除列、列特性、 文件命名、键列、材料指南。通过这些菜单就可以对族表数据进行编辑,右边 的下拉菜单可以筛选列表数据。选择“仅iProperties列”,表格中显示四列,
分别为尺寸规格、文件名、材料、代号。虽然表中列选项为iProperties列, 但还是存在两点问题:1)文件名和代号两列的命名方式不符合要求;2)默认

情况只有代号一列的数据和零件的iProperties连接。 解决方案:若直接把文件名列中的数据都改为“螺栓”,会弹出“在成员 中发现重复的文件名,请确保文件名对于每个成员都是唯一"的错误提示信息, 这是因为系统默认设置“文件名"列为主键,其它列为非主键。此时点击左上 角的“通过电子表格编辑”菜单,可以利用Excel表格的强大数据编辑能力对 各个列修改。在Excel表格中,对于代号列,每行都修改为GB 29.1,点击保 存后返回族表中,发现“文件名”列的数据也跟随变化,也被改为GB
29.1,

由此可知族列表中的“文件名"列和“代号”列是关联的,所以修改代号列也 不合适。所以最终的解决方案是在Excel表格中增加“零件名称"和“零件代 号"两列,且“零件名称’’每行都填写“螺栓’’,“零件代号"每行都写GB
29.1,

注意不能有空行,点击保存返回族表。然后选择“零件代号"一列,点击“列
特性",在其对话框中“映射到Inventor特性"的列表中选择“项目一零件代

号";同样对于“零件名称”一列对应选择“Inventor-概要信息一标题",对于 “规格尺寸"一列对应选择“Inventor一概要信息一注释",设置完以后,点击 族表右下方的“应用"即可完成族表的重新发布。数据的流向是从族表到零部 件的iProperties再到明细表,中间不能存在断裂情况。
3)新建库的使用

新标准件库设置完以后,重新进入项目管理卡,在“配置库"对话框星, 将其它库前的对号去掉,点击“确定"后,就可以使用自己的库。以后再插入 标准件的时候,程序就在这个库里面寻找标准件,新建立的库文件的位置:
C:\Documents
Content and

Settings\All Users\Application Data\Autodesk\Inventor2010\

Center\Libraries。

3.5.2新建标准件库的移植输出

对于新建立的标准件库,输出形式有两种:本地形式和网络形式,分别称
为本地标准库和网络标准库。分别介绍如下: 1)本地库的输出 首先在非系统盘上规划个性化Inventor文件目录和库文件目录,如
24

Inventor Libraries

Standard

My为根目录,其下分别有两个子文件夹Inventor
Standard JIS—GB。Inventor Libraries 2is—GB

JIS—GB和Inventor

文件夹用来放置自己建立的可读写标准件库文件,(将上一步已经建立好的,
含有标准件的可读写库文件拷贝过来)。Inventor
standard

JIS—GB文件夹为
Files文件

将来的工作文件夹,它包含有3个主要文件夹,Content

Center

夹用来放置设计过程中由库中提取的标准零件实体文件,project文件夹用来
放置新建立的工程文件,Templates文件夹用来放置各种Inventor类型文件 的模板,它可以由Inventor安装时默认而生成的公用目录中:直接拷贝过来。 (公用目录为C:\Program
Files\Autodesk\Inventor 20 l 0\Templates)

其次配置应用程序选项,打开“应用程序选项"的“文件"选项卡,按照 对话框配置各个选择项,指定模版文件、项目文件和资源中心文件提取出来之
后所放置的文件目录。然后打开“资源中心",指定自建的标准件库文件的位

置,最好将这些设置导出形成一个配置文件。点击对话框下部的“导出(X)…" 将配置文件导出,可给导出文件重命名(如:应用程序选项.xml);旁边的“导 入(i)…”是其逆过程,尤其在配置选项被改变或者更换计算机后更加方便。 其访问流程如图3—17所示:

设计需求 l I1...........................................一I..........................................................一1.....................................一 用户自定义卜鳖叫 资源中心本地机 图3-17本地库访问过程



2)网络输出方式

在通常默认安装的情况下,使用的库是本机上的标准库,但是资源中心比 较大,大概在1.5G左右;若采用网络的访问的方式,就不需要在本机上安装
标准件库,节省资源空间,还可以实现库的共享。对于网络输出,资源中心库 安装在公共服务器上,用户端通过数据管理服务访问公共服务器,调用库标准 件,这样省去了在本机上安装资源管理中心,同时还还可以很多客户端同时访

问服务器,只要提高一台服务器的性能配置,而不必去升级很多客户端的配置。
其访问流程如图3一18所示:

图3—18网络输出库访问过程

3.6工程图参数表的快速建立 3.6.1参数表创建的一般方法 参数表是零件的设计、加工和检验的重要依据,如齿轮参数表、蜗轮蜗杆 参数表、链轮参数表、V型带轮参数表等在相应的零部件工程图中不可或缺。

参数表的生成一般包括三个部分:表格绘制、参数值的获取、位置控制。通常
2S

的方法有三种:

1)用工程图的草图功能,画出需要的参数表格,然后在其中填入相应的 文本描述和参数值。 2)做成“略图符号’’。往往采取把所用到的参数表格都做成缩略图的形 式,定制在“工程图模板”中,使用时把需用到的某张参数表“复制一粘贴" 过来。 3)利用Excel与Inventor,在Excel中建立主要参数的参数表,Inventor
工程图中导入。

利用上述方法创建参数表,是件比较繁琐的事情。在第二章中分析了参数 表数据的来源,但是存在数据断裂的情况。若能利用Inventor API的方法来 建立参数表格的数据连接,便可很好的解决绘制参数表难的问题。为此,应用 程序的要求有:①能够自动生成符合国标要求或者行业需求的参数表格;②表 格中的参数值要符合标准:③表格中的大部分参数值直接来源于实体模型:④ 能满足用户多种操作需求,界面友好。其中需要解决的两个重点问题是:满足 要求的参数表格绘制与参数表格数据来源。 3.6.2基于API技术对参数表格创建 利用API对参数表格的绘制通常有两种方式;
1)自定义表格的方式:

在Inventor工程图中有明细表、标题栏、注释表等,同时用户也可制作 自定义表格,在工程图用户界面“标注"菜单中“表格面板"选择“常规"图 标中可以进行表格的设置。为了便于规定表格样式的自动绘制和数据的自动写 入,这里重点研究了API的自动绘制方式。利用API的前提是要找到对象模型, 图3-19为自定义表格对象模型13 61。
DrawingDoeument
Sheets



Sheet



Custom Tables卜一Custom Table

Cell

H Row卜_—一Rows
Column卜一Columns

图3—19自定义表格对象模趔

通过Application顶层对象进入工程图对象DrawingDocument中,然后根 据继承关系获得相应的表格对象权限。Sheets指工作表格集,Sheet指单个表 格类对象,通过Sheet对象可以进入自定义表格、明细表、标题栏等工程图中 的相关表格对象;Custom Tables是表格类对象中的自定义表格集合,Custom
26

Table是指单个自定义表格,对于一个表格是由行和列组成,所以对于Custom Table对象中存在Rows与Columns两个对象集,在对象集的下延是单一的Row 和Column对象,Cell是每行中的单元格,它是整个表格对象模型的最底层, 获得基层对象后便可进行表格的创建。自定义表格关键要指出行和列的数量, 举一个如表3-3的事例来说明创建表格的方法,API的调用过程如下:
表3-3创建表格样式 零件代号
Part Part 01 02

零件材料 铸铁 铝

(1)首先要存在一个激活的工程图文档,引用工程图中激活的工作表对象。
D拥oDrawDoc As InventorDrawtngDocument
oDrawDoc=ThtxAppltcatton.Act“'eDocument Dlm oSheet As Im7emor.Sh能t

oSheet=oDra"棒'Doc。么cf^谗57l耐 (2)其次分别对列标题和行数的设置,通过数组的方式表示,oTitles(0 表示定义两元素代表两列,存储列的标题;oContents2(0 已建立,所以要填写的单元格内容为2x2=4个。
Dim oTttle匹(O To 1)As S拄讯g To To

1)

3)表示定义4

个元素,存储表中每个单元格的内容,上述表格中共3行2列,首行作为标题

oTltles(O)=“零律代号”

oTltles(1)=”筝律俐”
Dim oContents2(O To 3)As String

oCo.tents2CO)="r口t_01”

oComem2a)=“铸镁H
ocome地;2住)=I"part_02”

oContents2(3)=“管”

(3)列宽度的设置,共两列,定义两个元素,然后对元素赋值。
Dim oColumnWMths(O To i》An Double oColumnWldt}ts Co)=2.8 oColumnWMths t 1)=2.8

(4)行、列个数及内容确定以后,要进行表的创建。
D砌oCustomTahie As Inventor.CustomTabte
oCustomTabte=oSheet.CustomTables.Add(‘”;ThixApplicatlon.rranacnt6eometry.一

Crc坦tePotm2d(40,so).2.2。oTttlas,oContents,oColumnWMths)

(5)还可对表格样式进行设置,包括文本在表格中的位置,表格线框的粗线、 颜色,表格标题的显示等。
oCustomTable.Columns.Item口).ValueHortzontaIJusttflcatton=Inventor.
HortzontalTexMltgnmentEnum.kAltgnTaxtCentar Dim oFormat As Inventor.TableFormat

oFormat=oSheet.CustomTobies.CreataTableFormat
oFormat.InstdeLlneWeight=0.07 oFormat.OutstdcLtneWetght=0.07 oCustomTable.OverrldeFormat=oFormat
oCustomTable.ShowTnte=VaZse
27

对于这种利用Custom Tables自定义表格的优势有:代码简单、程序易编 写、插入后的表格易于编辑等;缺点是:在同一张表中只能插入固定列的表格, 如不能同时出现既有三列又有两列的混合表格情况,对于这种不同混合的表格 可以通过多个表格拼接实现。 2)利用草图API绘制方式 对于草图绘制可以通过用户界面操作或者API操作,它们的不同处有:① 用API没有几何约束的感应和自动添加,即所有的事情都必须明确的定义,自 动感应是基于命令的关联和用户的具体操作过程,API方法不可能具备这种能 力。②用API可以得到数据的底层信息。API可以暴露草图的底层细节,这些 细节在交互操作中看不到。例如当交互画两条草图线时,点击鼠标两次定义第 一条线的两个点,然后再次点击来定义第二条线,结果得到了具有一个端点重 合约束的两条线,而实际的结果是已经生成了三个草图点、两条线和一个重合 约束137】,所以利用API创建草图的关键是指定草图点和重合约束。 通过上述比较,创建符合国标的参数表格,利用草图API方式较繁琐,交 互界面操作较简单易行。并且利用草图创建的参数表格单元格的长度和宽度都
是固定的,修改不方便,灵活性不如Custom
Tables。

3.6.3参数表数据的填充

调用参数的方法首先将厶参数表中“导出参数”--歹JJ全选,然后进行导出, 这些用户参数全部被导进零件iProperties“自定义"文本中,然后就可以在 工程图中对模型属性中的自定义数据值进行调用,数据的传递得到了实现。在 工程图中对模型属性的引用,属于不同类型文档信息的传递,要先通过 m—doc.ReferencedDocumentDescriptors获得当前激活文档的一些内部特性 描述,再通过ReferencedDocument找到和当前激活文档相关联的特性,在这 里主要找到相关联的自定义特性,以下是获得模型数值的简短程序代码(注: m—doc为当前激活的文档,odoc为和当前激活文档相关联的文档).
Dlm As Inventor.DocumentDescriptor For Each oreffiledescl In mJoc.ReferencedDocumentDescrtptors Dim odoc彳s Inventor.Document Dim mO,4s String

o,eml蚍c

odoc=oreffiled巧c1.Referer虻edDocument odoc.ProperO,Bats.Item(’'Im,'entor User Defined Prop酬tes’=).Item(’0甄彬=).Value
Next

用上述方式可以把零部件模型属性中的参数值传递到工程图中的表格中, 对于其它的不能够引用的数据可以手动添加,通过这种方式建立的齿轮参数表 快捷方式界面如图3-20。

28

霾至于
z ? - a

圈 圆 团 匪塑圊 r 列的位置、排序等编辑。 所以对创建后的参数表的编辑也异常的方便,只要双击即可对其中的内容,行 Table对象建立的参数表, 工程图中绘制齿轮的参数表,由于利用的Custom 整行的位置;列表中的数据设置完毕以后,点击“插入参数表”即自动可以在 可以修改内容,还可添加新的行内容,另外可使用“uP”、“Down”按钮上下调 参数”列表对话框中,对于列表中的数据可以右键进行编辑,如可以删除整行, 件模型中的数据信息,在名称一栏中选择需要的参数添加到右侧的“表格所需 圆柱齿轮参数表界面说明,点击“提取模型数据”,左侧列表中会显示零 圈圈 [] 匣] 巨慰鞘] 旺翌圈 嚣鼢
z5 回齿教da 内部代号标准代号数值囊I 名称 23 d 57 z2 dLz2 } ∞ o~“ 回 j 团梗数 0 p 回螺旋角 。:l t 1 h.. 回齿顶商j乏擞hpI ㈡J 2 o ct C*I 回顶隙累数 … B hp 口齿顶毫累敷h砸 旦 3 0 o C.2 口顶隙累数 径 l 修改内窖 螺地一 免 一 ~ 一辅.=.d 一准 一代 一号 29 图3—20齿轮参数表快速生成界面 螺辑: 1.勉。。薹:琵。i墓j!鬟i ~婚_口口口 I 0 ∞ ;;| I 配套齿敷 中心距 压力角 7I 阿约F'覃’’’’啡 一垡堤!堕堡…d.e:d—f一…一些一…一

第四章文档表格信息数据提取技术

4.1用户需求分析 随着计算机技术和数据库技术的发展,大部分企业逐步走向数字化管理时
代,纷纷建立起适合自身的产品数据管理系统。企业在追求提高工作效率和自

动化管理水平时,对文档的有效管理必不可少,对物料清单的获取也不可或缺。 在设计文档中,零部件模型是虚拟产品开发中信息集成的核心,这些信息 最终会在工程图中得到表达和显现,有效的工程图纸一般包括图形数据信息和 非图形数据信息。图形数据信息是指具体的几何信息和标注信息,为仿真、数
据模拟和加工工艺提供数据源;非图形数据信息主要集中在工程图一些表格和 文本注释中,为PDM系统提供数据源。

在企业管理自动化进程中,BOM表是计算机识别物料的基础依据,是编制
计划的依据;是配套和领料的依据,根据它进行加工过程的跟踪;也是采购和 外协的依据,根据它进行成本的计算,可以作为报价参考,进行物料追溯。BOM

表的这些用途是用户所需要的,所以对明细栏信息的提取占有重要的地位。另 外快速准确地提取标题栏的信息并录入数据库,是解决图纸信息管理问题的关
键,也是用户迫切需求的。

4.2标题栏的信息提取技术 早期工程图中标题栏的文字信息采用手工抄写的方式整理,效率低,而且 易出错。本文要解决是标题栏信息的批量自动提取与入库,即在不启动 Inventor系统的情况下,从工程图文档中直接提取标题栏信息,并对信息准
确性与完整性校验,最终对提取后的数据进行二次处理,存入数据库,并利用 数据库系统对标题栏信息进行管理,进而为后期对图纸文件的统一管理做铺垫。 本文以Inventor为平台,针对三维软件提出了一种基于对象模型的信息提取 的方法,该方法对于非图形自由表格数据信息的提取简单易行,准确率高。

4.2.1学徒服务器技术 学徒服务器技术是不启动Inventor系统而获得API对象模型继承关系的

技术关键,在不打开文档可以直接读取Inventor零部件的信息;若使用
Inventor

API来做同样的事情,需要首先启动Inventor,用Inventor

API

打开想要的文档,然后再利用Inventor API查询所需的信息,这样会导致不 必要的时间花费,在两个处理空间中调用API会导致运行效能的极大损失,这 些问题在学徒服务器中的得到了解决。 学徒服务器相当于没有用户界面的小版本的Inventor,只能用API获得
30

它的功能。其实质是一个Acti veX部件,运行在使用它的客户应用程序的相同 处理空间内,程序自身小、运行效率高【3 8】;另外学徒服务器提供对几何特征、 装配件结构、文件引用、BOM表、文档打印、渲染样式和文档属性的访问,其 中文件引用、文档打印、文档属性与BOM表是可读写的,其它是只读的。

学徒服务器与Inventor的主要区别在于应用程序和文档对象:学徒服务 器中的顶层应用对象是ApprenticeServerComponent,与Inventor的应用程
序对象Appl i cation相比,仅支持有限的API;学徒服务器没有文档对象集合, 本身形如单文档界面,用Open方法一次只能打开一个文档,而Inventor
API

可以同时打开多个文档。Inventor的文档对象有PartDocument、
AssemblyDocument、DrawingDocument和PresentationDocument;学徒服务器

有ApprenticeServerDocumnet与ApprenticeServerDrawingDocumnet两个文
档对象,其中Apprent iceServerDrawi ngDocumnet代表图形文档,Apprentice—

ServerDocumnet对象代表零件、装配件和演示文档等所有的文档类型。即使 学徒服务器与Inventor的应用程序和文档对象有许多不同,一旦获得了这些 顶层对象,那么对底层对象的处理几乎是一模一样的。综上所述,利用学徒服 务器技术可以很好的解决在不打开Inventor系统的情况下快速对信息提取。 4.2.2基于对象的标题栏信息提取 线段和字符串是标题栏的基本构成元素,其中字符串中的文本数据是标题 栏的主要信息。标题栏中的文本分成两类,一类是标题栏信息的表头,如重量 和比例等;另外一类指具体的内容,如重量和比例中对应的2kg、l:2。由于 对一个企业标题栏的格式一般是固定的几项内容,所以提取信息只要提取具体 的内容的即可,说明性的表头可作为数据库表中的列标题。 标题栏信息主要来源于零部件模型属性,所以可通过提取零部件模型属性
信息来代替直接提取标题栏中的信息,可以使程序更简化,运行速度也更快。

在标题栏的国标化章节中已经阐述了如何利用Inventor API对零件模型信息 的获取过程,在这里主要是谈谈如何利用学徒服务器批量提取信息。

l I

Appll catlon

I l


ApprentiCeServerComponent


DocumeN

ApprenliceServexDocument


Prop e tySets



Prope啊S et
I Prop erty

鲻4-1零部什模型属性对蒙鼹种获墩方式

31

图4-1对象模型中有左右两个分支,分别代表的是Inventor API与学徒
服务器关于文档属性的对象模型层次关系【3 61。获得学徒服务器顶层应用程序 对象的关键是首先创建一个新的ApprenticeServerComponent对象,学徒服务

器就会随着应用程序被加载;然后可以通过对象的属性和方法访问其功能;接 下来是要打开一个Inventor文档,可以利用ApprenticeServerComponent对 象的Open方法;最后将打开的文档赋值到文档对象中,实现对文档中具体信 息的操作。以获得零件模型中“单位名称”的信息为例程序如下:
t蔹铝掌捷鼹务器顶层对象
Dim apprentice As New Inventor.AppmnticeServerComponent

’翻甬学捷鼹务器钉开文挫对象
Dim apprenttceDoc彳s Inventor.ApprentlceSen:'erDocument

apprenticeDoc=apprentice.OpenCFtlename)

’获得零件横型孛H单位名称”信息鹊值
D妇summary As

鼬明恻2 apprenttceDoc.ProperO'Sas.Item(’'Inve删or
Dim companyProp么5 Inventor.property

l删e斑or.H删Sel
companyProp.Value

Summary

Information")

companyProp=summao,PropSet.Item(’"Comtxzny")
Dim company Value As String

companyValue



在标题栏中需要提取的基本信息有单位名称、图样代号、图样名称、设计
人、设计日期,附属信息有文件路径、文件大小等。标题栏的基本信息分别对 应零件模型iPropert i es对话框中的单位、零件代号、标题、设计人、创建日

期。对应零部件属性对象模型中的对象分别为Company、Part
Designer、Creat ion

Number、Ti t1

e、

Time。上述程序以“单位名称"为例,将零件模型中的

信息值赋给companyValue自定义对象,说明了如何提取零件模型中的基本信

息。由于零件模型属性信息可以作为标题栏中信息的来源,所以标题栏中的基
本信息就可以通过提取零件模型中的信息来替代。

4.2.3批量提取的解决方案

批量提取是指同时对多个文档进行提取,可以显著地提高效率。在实际工 程设计过程中,一个产品往往是由多个部件组成,而一个部件又是由多个零件 组成。设计的命名规则一般是建立一个总的文件夹,并以产品项目代号命名。 这个总的文件夹里可以含有多个部件文件夹组成或同时含有单个零件文档,而 部件中可能又含有多个部件或者单个零件文档。如何同时将整个产品文件夹下 所有零部件文档标题栏信息批量提取,并且使每个文件仅被访问一次是面临的
主要问题,这晕用遍历递进的算法解决。 在Windows系统中,文件的存储模式符合树模型结构。在文件系统中结构 方式分为文件和文件央,最外层文件央可以看作根结点,下一层的文件是叶子

结点,文件央是分支结点;分支节点的下一层还会存在叶子结点和分支结点。 其结构如图4—2,a为最外层文件央,c/e/g/i/k为子文件,其它代表文件,
32

文件系统在结构上显然存在递归【3引。

图4-2文件存储模型结构

遍历文件夹之前,首要选择目标文件夹,作为第一个结点。随后进入循环 处理过程,在循环的过程中会判定是文件还是文件夹;若是文件则直接调用相 应的函数进行信息提取,若为子文件夹则以子文件夹作为参数递进,然后调用 相应的遍历子文件夹的函数过程。当前结点遍历结束后,则寻找下一个结点,
若存在,继续循环处理过程,否则遍历结束【401。

这样就可以实现对一个产品项目文件夹中所有工程文件的访问,进而实现 信息的提取。在整个遍历过程需要建立两个过程函数:一个是
Properti

es(fi lename),负责对单个文档文件信息提取:另外一个是

AddDirectory(strPath),负责子文件夹结点的遍历。以下分别为这两个函数
过程的主要程序片段。 1)Properties(filename)函数:
Pylvate Function

Properttestl秒'Val Filenama As String)As Boolean 、获褥学徒鼹务器殒层对蒙 t秘用学徒鼹务器钉开文档对象
Don apprenticaDoc As Inventor.ApprenttceServerDocum6ml

Df卅re_Apprentice=。恸r Inventor.ApprenticeServerComponent
apprenticeDoc=re_Apprentice,Ope,CFtt,挖am,)

t簸得零律横型牵“零彳孛代号H锫惠豹值
Dim Designing As Inventor.ProperO,Set

Designing=apprenticeDoc.ProperO'Sets.Item(’'Design Tradang th,operttes。,
Dim partnumbcr As Im,'entor.Property

partnumbar=summao,PropSct.Item(‘'Part Number’,
End Functwn

2)AddDi rectory(strPath)函数:,

33

尸ubltc Sub

D弧strO

As

AddDtrector)’a秘,vaz strPath As Str/ng) String=Directory。GetDtrectortes(strPath)t蔹搐文徉夹串的结点文件夹

For l=0 To

5tr。GetUpperBound(O)÷薮铝一个文件夹中结点文件夹个数

t蔽铝手文佯夹串★.Ipt类壁文俘 For Each filename In s)'stem.10.Directo川.&tFtles(str(O,“?.觏t) Properttes们lename)t簸褥子文谗夹中文谗
Next

t获褥子文件夹中’。tam类型文律 For Each filename In

聊9p酬洒mien删 Next
dddDtrectory(str(t))
Nextf EndSub

5),stem.10.Directory.Ge,tFtles(str(1),”..蜘?

在标题栏信息提取过程中,重要的一点是要获得产品的项目名称,并将项 目名称单独存入数据库的项目表中。通常情况下当一个项目设计完成以后,要 把所有的零部件文档放入一个总的文件夹,并且这个文件夹要以项目名称命名, 所以只要获得这个总文件夹的名称然后存入数据库即可。其过程为首先选择产 品项目总文件央,然后获取产品项目名称,最后存入数据库项目表中即可。对 于标题栏信息提取的过程为:选择产品项目总文件夹;对总文件夹中包含内容 进行判定,分辨出工程文档和子文件夹;对于工程文档利用Properties 0函 数直接提取信息;对于子文件要经过AddDirectory()函数处理,可以分辨出 子文件中的工程文档和子文件;然后再循环处理,直到把所有的工程文档信息
提取完整,整个流程如图4—3:

图4—3标题栏信息提取过程

文件夹中信息的批量处理大多使用遍历算法,其实质是算法要深入到子文 件央的最后一级。开始进入最外级文件央,在访问了该级文件央中的所有文件 结点之后,再进入下一级子文件夹中查找结点和访问文件,如此逐级递进,直
至最后一级文件央中的文件结点访问完毕为止。这种算法精确,不会遗漏文件, 效率也很高。

34

4.3明细栏的信息提取技术 4.3.1获取明细栏信息的基本方法

明细栏信息提取不同于标题栏,标题栏的信息提取主要为后续工程图在数
据库中的存储和检索使用,在整个项目图纸信息提取没有严格的时间期限,最 终只要提取入库就可以。而明细栏的信息提取主要用于物料清单,大多在零部

件及材料的购买、成本预算、项目的进程中就需要实时提取。在此采用的方法
是基于Inventor API对象模型的方式,而非学徒服务器的方式。原因是学徒

服务器主要运用在多个文档的批量提取过程中,而且批量提取的信息直接进入 数据库中,对于想实时打印明细表的技术人员则不方便;而且对于一个工程项 目含有明细表的装配部件占的比率较少;另外学徒服务器暂时还不支持对明细 栏的访问;所以完全可以在建好的工程图界面中加载一个Add-In插件,实时
可以将明细栏的信息提取出来。

明细栏中信息分布在自由表格内部,分为表格标题与零部件文本数据两个 部分;提取出的数据要能够按照工程图明细表中顺序排列,且不能出现错乱。
而且采用基于Inventor API对象的提取方法,可快速精确的实现对表中信息

进行提取,对应的对象模型如图4-4所示13引。
基于Inventor API的访问方式,首先要获取最项层Application对象, 其次由于明细表存在于工程图中,所以要获得Documents文档对象中工程图文

档对象DrawingDocument,从而访问Sheet表格对象。在Sheet表格对象中存
在多种对象如Custom Table自定义表格对象、Hole Tables孔标注表格对象、

草图表格对象、注释表格对象、PartList明细栏表格对象等,所以在工程图
中获得被激活的PartLi st明细栏表格对象是关键。对于一个表格由列对象和 行对象组成,PartsListRow与PartsListColumn分别是明细表的行对象和列

对象,也是表格的基层对象,是表格的赋值与信息提取的关键。

图4—4明细栏信息对象模烈

3S

基本程序语句如下:

、糖埘碱叫最顷凄对奢I
Public Z tnventorAppltcatlon As InventorAppltcatlon Df聊oDrmvDoc As Inventor.DrmctngDocument

、蔹铝被激话的I程母文档对象 oDrmcDoc。£inventorAppltcation.ActtveDocument

、薮铝tnventordy.1ff认的第一个酸缀拦对慧
Don oPartList As

Inventor.PartsL豇f

oPartLtst 2 oDrmt,Doc.ActtveSheet.PartsLtsts.Itean(1)

、蔹福黢绍栏中表格的标题
oPartLtst.PartsLtstColumns Itemfiliritl8 oPartLtst PartsListColumns.Ite吁n(2).Tln|

l对每一好进行处理
For Each partListRowl As Inventor.PartsLtstRow In m lmrtLLst.PartsLisrRow's

t获褥某一行第一张的锆息 partLtstRowl.Item(1).Value



4.3.2基于Excel的明细栏信息分类导出 获取明细栏信息之后,接下来要对信息进行导出,对于明细栏信息的导出 形式,需求不同,方案也不同。明细栏中的信息以表格的形式存在,对于表格 的处理显然利用Excel较方便。Inventor本身提供了这种功能机制,在工程 图中右键单击明细栏,选择“导出(X)…",Inventor会将明细栏默认导出到 Excel文档中,也可选择其他的格式,如Microsoft
Access

2000(宰.mdb)、文

本(,Ic.txt),(宰.dbf)等。但物料清单中往往需要把标准件(螺钉、螺栓、轴承 等)、外购件(向其它单位购买)和自制件(企业自身制造)分开归类,这样 便于物料的购买、成本核算等。利用Inventor自带的导出功能,只能实现整 个明细栏按照工程图中的顺序导出;若想实现分类导出,需要在Excel文档中 对整个明细表中的信息进行手工选择分类,对于零部件较多的项目,工作量大,
也容易出错,本节利用Inventor API技术很好的解决了明细栏信息导出自动

分类问题。基本的思路如下流程图4—5所示:

图4-5基T-Excel的明细栏信息分类导山过程

流程图中“信息分类提取"的依据是明细栏中“代号"命名规则,对于标 准件在国内以GB开头命名,外购件、自制件没有固定的代号,为了方便于信 息的提取与管理,企业可以对外购件、自制件的命名方式做出规定,如要求外
36

__啊开始曩九盟西南_一公式救赫审固襁田负艄往 圜l目.'?抖?l芎工_惟曩1.Mkro蚶t 这样明细栏中的信息就被以三类分别添加到同一Excel表中,效果如图4—6。 为UT则添加到自制件相邻的行中,标准件、外购件、自制件分别用空行隔开, GB则存入Excel表格标准件棚邻的行中,若为HF存入外购件相邻的行中,若 墩时就可以对明细栏每行“代号”对应数据左侧的两个字符进行判定,若为 购件命名时在fj{『统一加上IlI:,自制件命名时在名称前统一一加上uT。在信息提 ~一/僦::Z.-一j℃一一‘6 i=。… 一日【‘/哪8h) jn…■ c i Appl Excel Excel对象模玳 图4—7 API。 调用方法如同Invenl.or 文档中,这就要求对Excel文档API的调用有一定了解,对象模型如图4—7…I, 明细栏中己分类信息要通过调用Excel对象模型才能被自动加入到Excel 图4-6明细栏分类导出进Excel的效果图 I丽a龃lOOq‘#卜…,讲一一④二 L 1 S引J}】。l?ange对级足F.xce 埘仟何‘I:作表的访问都i叮通过Global Worksheel.对缘是一个宿.1i项,可jiij-3二创建T作表实例:Sheet,1、Sheel.2, 信息,是最顶层对象;Workbook对象表示Excel应用程序内的单个工作簿; 行的应用程序、应用于该实例的选项以及在该实例中打丌的当前用户的对象的 013代表整个Excel应用程序,它公丌了大量有关正在运 I j l 以。卜.足以GB标准件为例将明细表中信息与Exce 范Ⅲ之前,必须将它表示为Range对缘,并处理该对象的方法和属性f41‘4 1内的任何表格 选定范闱,甚至足多个:’I●作表l}】的,‘约【.坼元格;在处理Exce 。个单元格,包含。个或多个l丫L元格块的.湃元格 的对象,可表示‘行、一列、 at.i |l最常J}J :作表交换的部分程序:
. H G F E D C B A V 二{序号 -i‘ ^1 口。口嗣露 团驮 口回铝 Exc毒I 总 材幸_i【“革件 ‘数量 代号 G 7 j c 9 110xTO 0.33 6低炭橱0.05 六角爆栓 5780 GB/T 3{8 10 0.02 6低擞锕0 垫圈 7244-87 低 6 螺母 5176 0 小齿轮装配 盯一003 7—3 鲁注 革件 材料 数量 名称 8:序号 量j 110x1.25 H 5 .8…1 0.51 通气器 HF_002 ,:6 0.Ol U 12 备注 总计 草件 材料 数量 名称 代号 }1l:序号 .19 0.07 l 下箱体 3 .6_001 .6 Ⅱ 2 2 传动轴装配 1 上盖 UT_004 .1“4 2.41 t Irr一003定距环 10 15 1.65 默 4 靖盏 16,11们r-005 }多种?}多种÷ % 一 10 l璺。 量Z一! }多种}}多种{ ‘ — r 啊 f1’, V/ ,睇簟L. 21。 37 I T 3 8 B/T .51 .41 JI F一001游标尺 T一002 们 嶷锕0.Ol I一广再溺1 计~一蓄注 认0.01 认0.07 认


。调黜矾最矮凄对象 t樽明镪栏中第一、蓑二硼的标题瀑踟弧elI住表中 _糯_^娜胡§阔雠1"1船 1—…I、州’7叫I
rVb=excelApp.Workbooks。Addo o Worksheet Excel .,oWs Excel.Workbook D咖oVfro C) excelApp M U m_partL,st.PartsLtstRows In Inventor.PartsLjstRow partListRowl Each For Integer=j As rowIndex Dim I作表孛 膊#Excet I对明缀拦中每一行进行翔馘,若为标准传黜锆息 partLtst.PamLtatColumm.ttem(2).12tle oWs.Cells.Default(1,2J.Value=ra partList:PartsListColumns.Item(1).11tle oWs.Cells.Default(1.Jj.Value=1'71 D聪=oWb.r弼or缸heets(1) ;使甩幕一个I作表 3考窖建新豹z作薄 竣 ’ 小齿轮 鲁洼一 总计, 单件一 效■一 名棣, 代号, 晴路用■ M10x1.25p 低炭橱p 螺母一 栓., ¨10x70.’ 佃诌}嗣一 六膏螺 f眭嶷橱一 垫圈p 一2} 鲁注d 总计一 单件p 材料, 皴■p _占称, —}号。 绸嗡甩? _o 由回墨 靖叠蔓匿.j“?:疑毒j_vifr㈨ftwor。I 国8l‘j_'-口i’ 格、外购件表格、自制件表格,表格之间用空行隔开,运行效果如图4-8。 word文档的方式,而是在同一个word文档中建立三个表格,分别为标准件表 文档中,并同样能够实现信息的分类。对信息分类时并没有采取分别建立三个 可将图片插入到Word表格中,所以想到将带缩略图的明细栏中信息导进word 1表,但它并不支持向单个表格中插入图片。经过研究发现, 先会考虑到Exce 导出的明细栏信息中含有缩略图。由于Excel对表格数据的强大处理能力,首 为了更好的服务于企业内部的其它部门或者项目会议的需要,有时会要求 4.3.3基于Word的明细栏信息分类导出 zVext End联 ’菘啦某行第二歹}j内容 D骶.Cells._Default(rowlndex,矽.Value=partZlstRowl,Item(1).Value 。泳趣某籽幕一翻内吝 rowIndex。rowIndex+j n强1翔嵌若为标砖佯 VisualBasic.Lgft(partListRowl.Item(2).Value,2)=’'GBH ¨ 游标尺一 o—I —…。l r… 侍动轴 ■■ 默认, 下帽体?, 鲁洼., 总计.t 簟件一 村料, 数量?一 名称√ 代号一 序号一 埔膀腑?, 默认p 沮气靠一 38 图4-8明细栏分类导…进word的效果刚 icrosoft IIE-'
O.51p 003p ¨F ,p 6176p 0.070 6B,T O.j,d 6“ Gl叫t'l" 100 O.020 GB 5 H O.01p O.Old 10 OOl■ HF 、 V 一I 。4●Ipt 2.41, 2,410 2, 3.6p 1p OOlp UT 1p O.07?’ 002t" F 0=J。


Excel.Application=龇Excel.Application e。 cII。 e. oWs.Cells._Default(rowlndex,2).Value=m括暖洲1.I \ ‘…"……t— 萨, ◆.

基于Word文档的信息提取的过程同Excel,都是Inventor明细栏信息与
Offi

ce的数据交换。在这个过程要处理好两个问题,其一是缩略图的提取:

其二如何怎样利用API向Word中插入表格与数据。零部件的缩略图可以通过 其属性iProperties获得,它包含在文档概要属性中,获得基本程序如下:
Dirn doc As Inventor.Document doc=ThtsAppltcattomActtveDocument

’文档文档摄妥羼挂
Dim summao'Info As Inventor.ProperO,Set

summarylnfo=doc.尸№邵哟,I&蠡.Item(’7nventor Summary Informatton’, ‘访阀文档鳙略蕊对象 Dim thumbProp As Inventor.ProperO, thumbProp=summarylnfo.Item(’'Thumbnatl") ’鼓捂缡硌零值
Dim thumbnad As

Inventor.IPict必eDtsp

thumbnail=thumbProp.Value

上述程序代码能实现对零部件缩略图或者工程图自身的缩略图信息提取, 不能实现对明细栏栏中每行零部件的提取,这是因为明细栏中各行中的缩略图 信息分别存在于零部件自身文档属性中。要想从工程图明细栏中直接提取各个
零部件文档缩略图信息,需要ReferencedRows对象来实现不同类型文档之间 的信息传递。
f对磷缀栏每行进行链理
For Each partLtstRow As

Inventor.PamL[stRow In

mA,artLtst.PartsLtstRmvs

t在BoM表中拽勋和零行关联的零韶律

D砌drawBomRow As Invemor.DrawtngBOMRow dmwBomRow=partLlstRow.ReferenceaRows.Item(1) l在BoⅪ表中菽褥棱定义台}}零龆谗文挡
Dim refDoc As Invemor.Document

,epoc=drawBomRow.BO.溉ow.ComponentDefinitlom.Item(1).Document
’获褥零都镡文挡缩咯恩
Dun thumbNailPtcD£印As stdole.1PictureDtsp

thumbNaRPtcDtsp=refDoc.Thumbnail ’憋缡略恩转换为强砖 D瀚thumbNaillmage As¥'stem.Drm';'tng.Image Naxt

2一

Microsoft VlsualBasic.ca呻刎曲口印.VB6.1PLctvyeOispTolmage(thumbNailPtcDlsp) 提取信息后利用Word API技术将缩略图信息和明细栏中的信息精确的加

入到Word表格中,利用API向Word中插入表格与数据的关键是进入Word对
象模型中主类Application类和Document类,Application类位于对象模型

的最顶层,提供整个应用程序的包装;Document类表示文档的合集,分为 Documents和Document对象,分别代表Word当前打开的所有文档的集合以及
单篇文档,获得当前激活的文档用Act i veDocument对象表示。另外还有一些 用到的重要对象如下:

Range对象:代表文档中的一个连续范围,由一个起始字符位置和一个终
止字符位置定义,也可以出其他对象(如Paragraph、Bookmark、Cel 1等)的 起点和终点定义。Selection对象:代表窗口中被选定的内容或突出显示的区
39

域,若文档中没有选定内容,则代表插入点。Paragraphs/Paragrap对象:代 表选定内容、范围或文档内的段落集合和单个段落,常用于字体、对齐方式等 格式设置。Tables/Table、Rows/Row、Columns/Column、Cells/Cell对象: 分别代表了表格、行、列、单元格,均有对象集合和单个对象两种形式,是表 格操作中最常用的对象【43.441。提取的过程同Excel,在这里不详细阐述。基本 程序过程如下:
(1)Word的API访问与表格的建立:
3调用W时d最硬詹砖豫
Dim wordApp As WordAppltcation=New WordApplication t) D加1 wordDoc AS Object wordDoc:wordApp.Appllcatfon。Documents。Add

1刨建、崎钾d文挡

;莅word中创建表格.鼗先确定手亍数和尹毽数
Don partZjstTable As Object

D咖wDM醌嬲即As Object=wordApp.sel矗ctiotzRange
DOn m3'Range As Obj钟t

partListTablg=wordDoc.Tables。A越雠。吃R姒鼯t


vtsibleRowCount÷1.m partLut.PartrLtst m Count 十j,.?。∞ muloC.

(2)Word表格中插入标题: ’褥硗缀拦中标题挺彀出采,tt#.A.wordigl#中 D砌lAs Integer
For i=0 To
nt

D毗谯t.P呐Lbtcoiu开t燃.Count

m3'Range=pa旭tstTable.Cello。t+l}.Range
ra3'Range.End=panLtstTable.Cello。t+i).Range.End fro,Range.SelectO 矿f=0 Fhen
Else

CallwordApp。SelectlortTypeText("l绕珞琶H)1褥缡硌l瞅word表祷标蘧中
1将磷鳃栏每硼中标题提彀出来。撼久雌∞d表格中
wordApp.Selection.Typerext(m partListPartsLtstColumns.ItemO).rate) EndIf Next
Call

(3)将标准件先提取存入Word表格中: roM,Index As Integer=1 For Each p∞'1.ListRowl As Im'entor.PartsListRow"In m
Dim

partLl5t.PamLLstRows

醪Microsoft.VlsualBctstc.Left(partLtstRowl.Itemf2).Value,动一'GB”Then
’褥缆镪拦中标准谗每张敏壳容瀑挽雾瓤舛d表格孛
For f=1 To m partL豇t.PartsLtstColurans.Count

m),Range=partLtstTable.Cell(rowlndex,l+i).脚 m)'Range.End=partZtstrable.Cell(rowindex,I+矽.见z掣.End
fro,Range.SelectO

Call

wordApp.Selection.J珈忍柚≯哦E缸吠州,7.ItemO).Value)

Next

EndIf
Next

(4)建立完成标准件表格后,需要空出一行,另外再建一个外购件表格的处 理方法如下:第一个表格建立完成后,光标的默认位置在表格的最后一个单元 格中,此时需要先把光标移动到下一行,运用语句如下:
40

t樽光标罄剿文挡韵结尾.郎表格下一行 Dim missing=System.Reflection.Missir皙.阮吐l埘 D砌埘甜=Word.WdUnits.wdStory
wordApp.SetectiortEndKey(untt,missing)

(5)由于两个表格之间要空一行,所以光标应再向下移动一行,移动完后插 入段落,这样下一个外购件表格的创建位置就确定了,即和上一个表格之间有 空一行的距离,然后再运用类似标准件的提取方法就可将外购件的信息也提取 出来,对于自制件的信息提取与表格的创建同上就不再阐述。
D沏missin92=System.Reflection.MLsstng.Value

D胁2矾it2=Word.聊Units.wdLi埘
‘移动焦点锄下一抒

wordapp.SelecttortMoveDow'n(unit2,missin92) wordJpp.Selection.Typ呼ParagraphO I撬入段落

4l

第五章文档信息与数据库的交换
5.1数据库技术概述 数据库是数据集合的存储媒介,它的特点是:数据独立、数据共享、降低 数据冗余度和实现数据集中管理。本课题开发的产品信息自动汇总管理系统采
用SQL
Server

2005数据库,VB.NET作为前台开发工具,采用的是客户机与

服务器(C/S)体系结构,提高了使用和处理数据的能力。
数据库的结构从逻辑上分为内部级、概念级、外部级,如图5—1所示。外

部级是最接近于用户的级,表示各个用户对数据库的看法,又称为用户视图级;
内部级又称内部视图或者存储数据库,是整个数据库的低级层表示,是数据的

实际存储方法,是三级结构中最接近物理存储的级;概念级介于外部级和内部 级之间的中间级,它是整个组织对数据库的视图,即整个数据库的抽象表示,
又称概念视图1451。


图5—1数据厍三级结构图

数据库设计分为需求分析、概念结构设计、逻辑结构设计、数据库运行和 维护、数据库实施、物理结构设计6个阶段【461。需求分析是指准确了解与分 析用户需求,但得到数据描述都是无结构的,必须在此基础上转换为有结构的、 易于理解的精确表达。概念设计是对用户需求进行综合、归纳和抽象,形成一 个独立于具体的数据库管理系统的概念模型。由于概念结构设计独立于任何一
种数据模型,所以必须将概念结构转换为某个数据库管理系统所支持的数据模

型,这便是逻辑结构设计的任务。物理结构设计是指为逻辑数据模型选取一个
最合适应用环境的物理结构(包括存储结构和存取方法)。数据库实施是指建

立数据库,编制与调试应用程序,组织数据入库,并进行试运行。数据库运行 和维护是指对数据库系统进行评价、调整与修改。
ADO.NET数据访问技术 VB.NET提供了功能强大的数据库管理功能,能够方便、灵活地完成数据 库应用系统中涉及的诸如查询、修改和删除等各种基本操作。但VB.NET不能 直接操作数据库,必须使用数据库接口来问接地访问数据库。目前,ADO.NET 是全新的数据访问接口,是在.NET Framework上访问数据库的一组类库,它
42

5.2

利用.NET

Date Provi

der(数据提供程序)进行数据库的连接与访问,是应用
Provider和DataSet
Data

程序和数据源之间沟通的桥梁,可以对SQL Server数据库友好访问14 7。。 ADO.NET用于访问和处理数据的类库包含.NET
Data

数据集两个主要部分,其中包含的主要组件及结构关系如图5—2。.NET

Provider数据提供程序一般包括下列类:Connection,建立与特定数据源的 连接:Command,对数据源执行各种SQL命令(Select/Insert/Update/Delete),
以读取或修改数据库中的数据:DataReader,从数据源中抽取数据(只读); DataAdapter类内提供的四个Command对象来进行离线式的数据访问,其中 SelectCommand是用来将数据库中的数据读出并放到DataSet对象中,至于其 它三个命令则是用来修改DataSet中数据,并写回数据库中14¨。 DataSet(数据集)是ADO.NET离线数据访问模型中的核心对象,主要使 用时机是在内存中暂存并处理各种从数据源中所取回的数据。存放在缓存区中

的数据必须通过DataAdapter对象与数据库做数据交换,并且在DataSet内部
也允许同时存放一个或多个不同的数据表(DataTabl e)对象,数据表中的数 据在离线时也能独自完成数据的新建、修改、删除、查询等操作,而不必一直 局限在和数据库联机时才能做数据维护的工作。

图5—2 ADO.NET主要组件及结构图

ADO.NET数据库访问的一般流程如下:
(1)Connection对象的建立,即创建一个数据库连接。 (2)使用Command对象对连接后数据库发送查询、新增、修改和删除等命令。

(3)创建DataApapter对象,从数据库中取得数据。
(4)创建DataSet对象,将DataApapter对象填充到Dataset对象中。 (5)关闭数据库。 (6)在DataSet上进行所需要的操作,数据集的数据要输出到窗体或者网页 上面,设定数据显示控件的数据源为数据集。

43

5.3产品信息数据库的创建
5.3.1关系的建立

适用于数据库层的数据模型主要有层次数据模型、网络数据模型和关系数 据模型,其中关系数据模型是目前采用最广泛的一种数据模型。关系模型用二 维表格结构来表示实体及实体之间的联系,基本术语有关系、元组、属性、域、 关系模式、候选码、主键、外键。
表5-1二维关系表 属性名1 属性名2 属性名n

如表5-1是一个关系数据框架,即这张二维表就代表一个关系,表中的某 一行称为元祖,表中的列称为属性,属性的取值范围称为域;关系模式由关系 名和属性名构成,候选码是指属性或属性的组合,其值能够唯一地标识一个元 组;主键是指一个关系中可能有多个候选码,从中选一个作为主关键字;外键 是指在这个关系中不是主键,但在其它关系中是主键14
5。。

本信息管理系统总的需求是标题栏的信息提取与管理,明细栏的信息管理,
用户名管理。在此需求分析上建立的关系有:标题栏信息关系、明细栏信息关

系、项目名称信息关系、含有明细栏的装配文档名称信息关系、用户信息关系、 明细栏数据集临时信息关系表。每个关系具体信息如下表所示,为了使提取后 的信息能按顺序排列,不出现混乱的现象,每个表中均添加一个”ID”的列名,
并且以这一列作为主键,其中明细栏数据集临时信息关系表主要用于信息打印 预览时,对liSView控件中数据的临时存放。
表5—2标题栏信息表 列名
TDid TDtuyangnaⅢe TDpartnumber TDcompany TDdesigner TDdatatime TDcheck TdSize

字段类碰 数字 文本 文本 文本 文本 日期 文本 数字 文本 文本

列名说明 信息id 图样名称 图样代号 单位名称 设计人 设计时间 校核人 文档人小 项目名称 文档路径

是否允许空 否(主键) 否 否 是 是 是 是 是 否 是

projectname
TOfullfi 1ename

表5-3明细栏信息表 列名
BMid BMserial BMmark BMname BMnumber BMmaterial BMsingleton BMtotal BMremark BMfi 1ename

字段类魁 数字 数字 文本 文本 数字 文本 文本 文本 文本 文本

列名说明 信息id 序号 代号 名称 数罱 材料 单件 总计 备注 图纸名称

是否允许空 否 否 否 是 是 是 是 是 是 否

表5-4明细栏数据集临时信息表 列名
DSid DSserial DSmark DSname DSnumb
er

字段类硝 数字 数字 文本 文本 数字 文本 文本 文本 文本 文本

列名说明 信息id 序号 代号 名称 数量 材料 单件 总计 备注 图纸名称

是否允许空 否 否 否 是 是 是 是 是 是 否

DSmaterial DSsingleton DStotal DS remark DSfi 1ename

表5—5用户登录信息表 列名
id usertype
account

字段类型 数字 文本 文本 文本

列名说明 信息id 用户类型 Hj户名 密码

是否允许空 否 否 否 否

password

45

表5-6项目名称信息表 列名
Projectid projectname

字段类型 数字 文本

列名说明 信息id 项目名称

是否允许空 否 否

表5-7装配图名称信息表 列名
BMfi 1eid BMfi 1ename

字段类啦 数字 文本

列名说明 信息id 图纸名称

是否允许空 否 否

5.3.2数据来源

数据的来源是工程图纸的明细栏和标题栏,而这些数据的源头是设计工作 者通过Inventor创建零部件时输入。为了便于图纸的管理、信息的查询、物 料清单的打印等,需要对明细栏和标题栏进行信息提取。第四章采用VB.NET 语言对Inventor文档进行处理,分别阐述了明细栏和标题栏的信息提取方法; 对于提取的信息要通过ADO.NET技术,将这些数据存储在SQL Server数据库
中,便于后期的管理和调用。

图5-3标题栏与明细栏信息提取过程图 图5-3中数据库表中的信息来源于两个部分:学徒服务器与Inventor API。

利用学徒服务器实现整个项目文件下所有文件的标题栏信息提取,利用
Inventor

API实现单个激活文档的明细栏信息提取,若一张工程图中存在多

个明细栏,要先选中再提取,信息在提取的同时会通过ADO.NET技术分别存入 相对应的数据库表中。提取后的信息进入数据库表的主要程序如下:
46

l连接熟数据璋 N洲5qlCommand mystr=‘'data¥ourc2=MICROSOF-DBE2C2;initial catalog=a6rawtngceshi;一 pers豇t SeCUrity i坷b=锨12:tls嚣id=sa;password=12M56”
myconn_ConnectionString


Dim reo'str As String Dim ra)vonn As N删SqlConnection,mcmdAs

raystr

朋3l;cD删.OpenO
Dim myadp reO'adp
2 New

t创建D口蛾A蛔t四对象,/A数话障中取出数锫

As胁SqlDataAdapter

l电堪建Dal岱2l对象,将Dm酗卿洄对象填充到D口tQ溉t中

SqlDataAdapter(“'select



from殒B锖息襄1.r哪,conn)

’在D蜮上进行所需噩操作
re)row(1)=projectname
Dtm m)'cmdbuilderl=N西I

Dtm myds As New DataSet

r,o,adp.FRl(myds,”疆强锆息表'

Ⅸ黻raATowlAs DataRow=m)wls.Tables(”硬目信息表”)。NewRow

呻伍.Tables(”眉虿目蔗赢襄’:).Rows.Add(rrOrow)
mya@.谁也妇—母溅”硬日蔗戽表’'

Sqtcomma}证Buizd曰和黟喇

5.4程序构架与用户界面设计 5.4.1程序构架
应用程序的构架主要分为三个层次,用户界面层、信息处理层、基础平台

层【4引。本课题信息处理程序是针对Inventor产生的*idw工程图文档的明细栏 和标题栏进行信息的提取,同时也可以对Inventor系统产生的*Jam文件或者
*ipt文件的属性信息进行提取。用户界面层总体包括标题栏和明细栏信息管

理两大板块,其中标题栏板块又包括信息提取、检索、编辑、查看四个模块, 明细栏版块包括信息打印输出、检索、编辑、查看四个模块。信息处理层主要
包括数据的获取与数据库的建立,技术基础是学徒服务器技术、Inventor
API

技术、ADO.NET技术。若将信息看作数据流,用户界面则是数据流的最终表现
形式,信息处理层为数据流提供动力和方向,Inventor系统基础平台相当于 数据流的发源地,SQL Server数据库是数据流的最终存储地,如图5—4。
用户界面

l薹鬟I I篡萎l I薹萎I旧I
标题栏

l篓:I旧I I萎萎l旧l
明细栏

数据的获取与数据库的连接 Inventor系统 SQL Server数据库

图5-4程序界面架构
47

5.4.2用户界面设计与功能分析 用户界面是计算机系统向用户提供的综合操作环境。对于最终用户而言,

要简洁、直观、易用、高效。其包含的一些基本特征有:可直接通过控件图形 对象控制应用程序:可通过鼠标或者其他指针设备完成对系统的操纵;界面支
持用户自定义裁剪与更改:对误操作提供帮助和保护机制;完整用户界面应具

有可扩展性,便于用户二次开发【491。在应用程序中,用户界面大多通过窗体
呈现,然而窗体的设计与功能又是通过控件的添加来实现。如图5-6是标题栏

信息提取与管理的用户界面,应用到多种控件。对于应用程序中的控件通常分 为输入、容器、处理、对话框、菜单、输出几个部分,下面分别作介绍。 输入控件:TextBox控件,用于获取用户输入或显示文本:ComboBox组合 框控件,用于在下拉组合框中显示数据,可使用Items属性向列表添加项或者 获得列表中的某项。容器控件:GroupBox控件,是一种容器类控件,主要对 窗体上的控件进行逻辑分组,在其内部的控件可随GroupBox一起移动。 处理控件:Button控件,用于执行用户的点击按钮操作,单击调用C1ick 事件处理程序,双击调用DoubleClick,显示的文本通过Text属性设置。对 话框:MsgBox控件,通过对话框向用户传送信息,用户可单击按钮来决定程 序的流向。InputBox是数据输入函数,可产生一个对话框作为界面,等待用
户输入并返回输入的内容。OpenFi leDialog打开文件对话框,用户可以使用

此对话框浏览计算机上的文件央,并选择打开一个或多个文件。该对话框返回
用户在对话框中选定文件的路径和名称【4引。

菜单和工具栏:MenuStrip控件,用于实现窗体主菜单的创建,如文件、 编辑、视图、帮助等;ContextMenuStrip控件,用于实现上下文菜单,通过
属性窗口可与其它的控件关联起来。

输出控件:Lable控件,用于显示用户不能编辑的文本属性及图像,不能
接受焦点,一般用于显示描述性信息;Treevi ew控件用来显示文件和目录结 构、文档中的类层次,即显示信息的分级视图,其关键属性是Nodes和 SelectedItem。Listview控件用来显示图标和文本,可将项目组成带有或不 带有列表头的列。

通过上述的控件和关键的程序代码可以实现用户的功能需求,对于标题栏 的用户界面包括文档的信息提取、编辑、检索、查看等功能。下面就标题栏与 明细栏的信息处理界面来阐述具体的功能实现方法。 信息提取,用户可以先将需要提取标题栏信息的文档放入到一个项目文件 夹中,通过点击“选择文件路径”按钮,这时会弹出一个对话框,通过这个对
话框将本地项目文件夹添加到了Text文本框中;添加完成路径以后,在“选 择或者新建产品列表目录"文本框中,可以输入一个新的项目名称,点击“文 件上传与信息提取”按钮,就可以将攘个文件央中的文件信息都提取出来,并
48

ew控件巾; i iew控件rfl,同时相应项目名称会添加到左边的Treev Stv 娃示在Li 49 fli提供了装配图文档明细栏信息的夼看、编辑、检索和打印输_fI{等功能。界lfI『 提取,4、=适川1明细栏的信息提取,所以界而没彳j.提供叫细栏的信息提取功能, 应J1J1霹?!序,利JIj的是学徒服务器的访问方式,适,Irj-文档属性、标题栏的信息 tor软件之外的 riven l刃细栏的信息管理界¨ji如图5—5,本界而足独’啦J:I 图5-5标题栏信息箭理界面 件中显示整个项目的信息。 Stvi 信息查看,选择产品列表中的项目名称,点击“查看"会在Li 会打“0”o ew控件中相对应的信息行的编号列中小方格 点击“确定”按钮时,在Li 检索时,在检索词Text文本框中输入要检索的“图样名称”或者“图样代号”, 件中会显示该项目的所以文档的信息;当选择按“图样名称”或者“图样代号” ew控 stvi 对应的项目名称会以红色显示,以来区别与其他项目名称,同时Li 输入要检索的项目名称,点击“确定’’按钮,会发现左侧的产品项目列表中的 图样名称、图样代号。当按“项目名称”检索时,在检索词的Text文本框中 信息检索,在ComboBox控件中提供了三种检索方式,分别是按项目名称、 改后,界面上和数据库中的数据会同时发生相应的变化。 stview控件的某行信息进行编辑,对其进行删除和修改操作。编辑修 可对I。i 然后“右击”或者点击“编辑按钮”,可以对这个项目重命名和删除操作;也 ew控件中先选定要编辑的项目, 信息的编辑,用户可以在左侧的Treevi 的信息可添加入PDM管理系统中便于整个Inventor文档的管理。 文档的提取,也适用于术ipt零件文档,*iam装配部件文档的信息提取,提取 中会显示整个数据库中的文档信息。本界面的信息提取不但适用于木idw工程图 Server数据库中,利用“刷新”菜单,界面 些信息同时也被添加进入了SQL 也可在Treeview控件中选择项目名称,将信息添加到已存在的项目名中。这

eW控件【|I妊示就足“卡盘”装配图明细栏 控件中装配图的图样列表,“代号’’和“名称"是针对Li 别为“图样名称”、“代号”、“名称”;其中“图样名称”针对的是左侧Treevi 信息检索方法同标题栏,在ComboBox控件中也提供了三种检索方式,分 St插件对明细栏的提取,具体方法在第四章已经阐述。 中PartLi 中的历史数据来源于数据库,而数据库中的数据来源于I[1Velqtor工程图界面 -fl的“标准什”选项,这时I.i 如图5—8,先柏:图样列表|}I选择“k槛”装配图图样,然后点-li“态看”菜啦 个明细栏"、“标准件”、“[1制件”、“外购件”选项,点,fi会进行棚应的夼行。 信息查石,先选择要查看的装配图文档,点击“夼行”菜啦,会ffj现“褴 f!『】细栏信息编辑界曲i 图5—7 图5—6明细栏信息管理界面 种编辑方式,同时都会更新数据库中的信息。 会显示如图5—7的窗口,在其中输入要修改的内容,点击“确定”即可。这两 对明细栏中某一行的编辑,可以先选择要编辑的行,然后点击“编辑”菜单, 键会出现“详细信息”、“删除”和“重命名”选项,选择可进行相应的操作; 式。对装配图样名称的编辑,可以先在图样列表巾选择要修改的图样名称,右 信息编辑,界面中分别提供了对装配图样名称和明细栏具体信息的编辑方 行信息,搜索到相应的行在编号列也会打“√”,如图5—6中椭圆圈中所示。 O w控件中具体某
stv ew L S i 50 v

201 0 Studi sual 信息打印输出,主要通过Vi r{1的所有标准件的信息。 51 图5—8明细栏信息分类查看界面 窗体}:还可选择输出,格式可以为Word、pdf、Excel。 分别是“卡盘”装配图整个明细栏信息和明细栏标准件的信息打印预览图,在 添加到控件中。这样就可以实现自定义报表的输出和打印,如图5—9、5—10 ewer控件,选择“在父容器巾停靠",并把报表report 窗体中放入reportvi 应的表格中,这样包含数据信息的报表就算建立完成;最后新建一个窗体,在 report,并对报表进行样式设置,然后将数据集Dataset中的信息引入报表对 集Dataset,将需要的数据库表中的信息添加到数据集中:然后添加报表 表可以包含聚合数据、表格格式数据和多维数据。实现过程是要添加一个数据 ewer控件实现,可以向自定义应用程序中添加功能齐全的报表,报 reportvi 0中报表设计功能和

备注 总计 单件 材料 数量 名称 代号 序号 明细拦全部信息表 一,引岛日鲫嚏?l 蹦3x12x62 GB册170-2000 1 图5—9单个文档明细栏全部信息打印预览界面 明 墅i■I一… 矗。 备注 总计 单件 材科 数量 名称 代号 序号 J■烈一k、。j.j参。;照闫~弛一HI。{。100% 细栏标准件信息表
100% 后端盖 001 连接盘盖 3 0.58 固定盘 0.38 圆柱铺 L 18m6x60 垫环 6 0.1 0。1 挡环 002 H 7 0,4 0。2 卡盘箱体 G 8 3.9 U 9 M16x35 轴瓦 003 橡 胶筒 004 UT 10 0.65 2 0 夹板 12 M16x50 双头螺控 G日/T897—1988 11 0.27 卡头 006 17 M16x40 内六角螺钉 GB八70.1.2008 28 弹簧 GB,他089.2009 15 G2 弹簧垫圈 987 G日厂r93.1 14 默认 16 螺母 13 0.76 O 默 圆柱销 GB厂r119.1. 18 0.43 4 前端羞 007 HF 19 2000 18m6x30 粘 1 密封垫 005 Lrr 20 0,47 0.47 1 t,t M16 ^ 一 4 圆校铺 1-2000 19 GB厂r1 18m6x60 8 M1Gx35 12 1-2008 G ” M16x50 j叹头蠕拄 988 1 默 4 圆柱销 1。2000 G日厂r119 M1Gx40 内六角螺钉 1—2008 G日fr70 15 YA3x12x62 28 弹簧 G日/T2089.2009 14 G2 弹簧垫圈 GB丌93.1987 13 M16 默认 16 螺母 5 ’ ‘ V 18 18mGx30 日玎70 B厂r897.1 B丌6 0.2000 B厂r119.1. F 日,T70.1-2008 T 7 3 2 旆丹 5警丹 丌001 鳞冈 5钢 鳞目 5警冈 姥冈 认 皎 认 纸

第六章总结与展望
6.1总结 本论文分析了Inventor软件文档信息数据的来源与流向,并对文档信息

进行充分的应用,利用二次开发技术弥补了Inventor软件自身的一些不足; 同时对文档信息进行了提取,为企业的数字化管理系统提供了源数据。完成的
主要工作如下: 1)分析了CAD软件零部件模型文档属性信息的创建方法及流向,工程图

中标题栏、明细栏、参数表中数据信息来源,资源库中标准件的信息流向;充 分论证了工程图是零部件的表达者而非创建者,表格信息来源于对应的零部件 文档模型;并把表格中的每一项信息分别与模型中数据信息对应起来,对于存
在数据断裂的信息也做了说明。 2)对Autodesk Inventor二次开发技术做了研究学习,了解基于COM自

动化技术的开发模式,并对API技术做了深刻的认识,同时翻译一些国外的文
献,并与Autodesk公司梁晓东、Brian两位专家做了交流。

3)充分运用文档信息数据的来源与流向,并利用Inventor二次开发技术 解决了零部件文档属性的快速生成、标题栏中断裂数据重构与国家标准化、明
细栏中断裂数据的重构与国家标准化、参数表格的快速生成、标准件库的重建

方法与发布等问题。 4)研究了CAD软件文档数据信息提取方法,分别运用了学徒服务器技术
和Inventor API技术对工程图文档中标题栏、明细栏进行信息提取,创建产

品标题栏信息库、明细栏信息库,并建立了信息管理应用程序,可实现这些信
息数据的提取、存储、输出、编辑和打印预览等。 整个课题以Inventor软件为平台,以VB.NET、Visual
studi0

2010为开

发工具,以SQL Server2005为数据存储库,对文档信息的整个流向和运用做 了详细的分析。在一定程度上提高的工程图的出图效率,有利于完善企业的 PDM管理系统。

6.2展望

虽然对本文投入了大量的时间和精力,进行了深入的学习研究,但是受到
时问和个人能力的限制,本课题在以下几个方面还有待进一步完善: 1)本文主要对Inventor文档属性和表格类信息数据的传递分析和应用,

还未涉及到几何信息的传递和应用;在工程图中还有许多几何信息方面的事情 需要做,如部分剖视图表达方法、加强筋剖视图表达、螺纹紧固件剖视图表达、
断而图表达方法表达、轴类零件的表达方面等。
53

2)在信息提取的应用程序界面中,虽然在TreeView控件中可以生成项目 文件名称和单个装配文档文件名称树,但尚未实现装配图中装配树的生成和显
示,而这种装配树的管理将更有利于明细表的汇总。

3)最终的应用程序尚未完成基于web的产品文档信息的提取,而这种技 术将更方便异地对信息的管理。 4)在应用程序中还尚未实现对于异构CAD文档的信息提取,仅限于
Inventor的木idw文件、术ipt文件和*iam文件。

54

参考文献
[1]刘晓冰,高天一.CAD技术的发展趋势及主流软件产品.中国制造业信息化, 2003,32(1),41-45.

[2]王玫.基于工作流技术的图文档管理系统的研究与开发.四川大学,硕士学位论
文[D],2002,12—21.

[3]郑曦.PDM与三维CAD信息集成的关键技术.武汉理工大学,硕士学位论文
[D],2006,卜4. [4]夏研.基于SOL Server的AutoCAD图形数据存储及二次开发.天津大学,硕士学 位论文[D],2007,卜8.

[5]刘树林.基于三维CAD的工程图关键技术研究与实现.华中科技大学,硕士学位
论文[D],2007,13-20. [6]戚宁.基于Solid Works的液压缸数字设计[M].山东大学硕士学位论文,
2009,30—31.

[7]刘定伟,薛澄岐.UG二次开发接口技术研究[J].机械制造与自动 化,2005(1),80—83. [8]杨建华,武子防,周惠群.明细表自动生成及其信息管理系统的研究.机械科
学与技术,
2000,6,1038-1040.

[9]王欣、魏生民.基于ActiveX技术的图纸标题栏信息自动提取.计算机研究与发
展,2000,37,507—512.

[10]胡敏、姜晓红、石教英.一种有效的从CAD工程图样自动提取零部件信息的方
法及实现.计算机辅助设计与图形学学报,2000,10,777-781. [1 1]伊国栋、谭建荣、刘振字.工程图纸中标题栏单元信息提取与识别技术研究.中 国机械工程,2003,14卷1期,41-45.

[12]张良栋、王杰.CAD图中明细表信息的提取和BOM生成方法的研究.制造业信息
化,2004,26卷12期,46—49.

[13]李贤兵、张应中、罗晓芳.工程图纸标题栏信息自动提取方法的研究.计算机工
程与设计,2004,25卷11期,2005—2007.

[14]候颖、何援军、胡志刚.非AutoCAD平台的DWG文件工程信息提取技术.计算机
工程,2003,29卷ll期,180—182.

[15]董玉德,刘孙,朱长江,杜立.面向工程图纸离线式表格信息提取与识别方法 研究[J].工程图学学报.2009,1,17—25. [16]龚雄,朱林,赵建军,陈立平.利用单元格和特征点实现图纸信息的自动提取 [J].计算机辅助设计与图形学学报.2005,17(8),1883-1888.
[17]苗帅、王卫东.工程图纸标题栏的自动生成及其信息提取的方法实现[J].计算
SS

机应用与软件.201l,28(9),160—162. [18]王滨滨、陈进、宋广雷.从任意格式的标题栏和明细表中提取零部件信息的方

法[J].机械设计与制造.2006,6(9),130—132. [19]杨流辉、张和明.基于COM组件的CATIA产品信息集成技术研究与实现[J].计
算机工程与应用.2001,24,132—134,175.

[20]胡敏、廖文和、李迎光。基于CATIA的明细表信息自动提取和处理[J].电气技
术与自动化.2006,35(3),89—91,94.

[21]陈伯雄,董仁扬.Autodesk

Inventor Professional

2008机械设计实战教程[M].

北京:清华大学出版社,2007,562—575. [22]濮良贵.机械设计.第八版.北京:高等教育出版社,2010. [23]
BrianEkins. Understanding Sol id Models and the API in Autodesk

Inventor.Autodesk Universi ty 2010

learn.connect.explore,2010,卜28.

[24]陈伯雄,张朝阳.Inventor 机械工业出版社,2004. [25]BrianEkins.Taking

R6

VB(A)程序设计一技巧与范例.第一版.北京:

the Step from VBA Macros to Autodesk Inventor Add—Ins.

Autodesk University 2009

learn.connect.explore,2009,卜27.

[26]江红,余青松.VB.NET程序设计.第一版.北京:清华大学出版社,北京交通大学
出版社,2011. [27]Donis Marshall著梁春艳译.Visual
Studio

2010并行编程从入门到精通.第

一版.北京:清华大学出版社,2013.01. [28]Brian
Ekins.Upgrading Your Autodesk Inventor Add—Ins Interface.Autodesk University 2009
to

Use theNew

Ribbon User

learn.connect.——

explore,2008,卜18. [29]BrianEkins.Taking
the Step from VBA Macros to Autodesk Inventor Add—Ins.

Autodesk University 2009

learn.connect.explore,2009,卜27.
API: Exploring iProperties and

[30]

Brian Parameters

Ekins.

Inventor(R)

JR].2008,2—13.

3l 32 33 34 35 36 37

GB/T

10609.1-2008技术制图标题栏[S].

GB/T 10609.2-2009技术制图明细栏[S]. GB/W 14691-1993技术制图字体[S].

GB-T4457.4机械制图图样画法图线[S].
Autodesk Inventor User

Club—Inventor资源中心配置.
Inventor 2010 API Object Model.

欧特克软件有限公司.Autodesk 王永强,李长明.Inventor 型机械科技,2003,4,8—12.

API应用实例——常用型材截面草绘库的建立.重
API: iProperties Wi thout Inventor

[38]

Brian

Ekins.

Inventor(R)

56

(Apprentice)[R].2010.

[39]钱恒昌.利用树的遍历实现文件拷贝[J].山东煤炭科技.2006,5,28-29. [40]胡小兵,袁锐.基于VB文件控件的递归算法及其应用[J].微机发展.2004,5(14),
102—104.

[41]Excel Home著.Excel VBA实战技巧精粹.第二版.北京:人民邮电出版 社,2013.01.

[42]秦虎锋,孙伟,唐永芬.VB.NET中对Excel的二次开发[J].系统软件与软件工
程.2009,5(21),6056-6067.

[43]曹歆安.基于VBA的AutoCAD图形和Word表格的数据转换[J].测绘,2011,2(34),
80-83.

[44]刘铭.基于VBA对Word 2007二次开发应用研究[J].煤炭技术,201
247—249.

l,2(30),

[45]李春葆,曾平,赵炳秀.数据库系统开发教程一基于SQL 第一版.北京:清华大学出版社,2009. [46]刘卫国,熊拥军.数据库技术与应用:SQL 学出版社,2010. [47]蒙祖强.T-SQL技术开发实用大全:基于SQL 清华大学出版社,2010.
Server Server

Server2005+VB.NET2005.

2005.第一版.北京:清华大
2005/2008.第一版.北京:

[48]张瑞林.产品明细表自动汇总管理系统的研究与开发[M].大连理工大学硕士学
位论文,2000,30-44.

[49]元昌安.VB.NET程序设计.第一版.桂林:广西师范大学出版社,2011.

57

攻读硕士学位期问发表的论文

1。刘炀,顾晓彤,汤传玲,石鸽娅。Inventor文档特性快速生成及标题栏国标化
技术[J].图学学报,2013,4.

58

CAD软件文档信息数据的应用及提取技术研究
作者: 学位授予单位: 顾晓彤 合肥工业大学

本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y2302038.aspx


相关文章:
AutoCAD数据提取的概述
暂无评价|0人阅读|0次下载|举报文档 AutoCAD数据提取的概述_计算机软件及应用_IT...cad使用通知获取更新信息 什么是数据提取数据提取,就是指从对象中提取信息(...
CAD图纸中表格数据批量提取
CAD图纸中表格数据批量提取_计算机软件及应用_IT/计算机_专业资料。CAD下载,CAD2010,CAD软件,CAD2012,CAD,CAD软件今日推荐 78份文档 不...
CAD图纸数据快速提取提高企业效率
喜欢此文档的还喜欢 基于VBA技术实现Excel数... 3页 免费 CAD文字提取软件 ...提取功能是指将 CAD 里的表格数据提取出来,保存为 EXCEL 文件,应用于各种需要...
提取CAD图纸表格数据导出EXCEL表格技巧
暂无评价|0人阅读|0次下载|举报文档 提取CAD图纸表格数据导出EXCEL表格技巧_计算机软件及应用_IT/计算机_专业资料。CAD下载,CAD2010,CAD软件,CAD2012,CAD,CAD软件...
CAD大作业
CAD大作业_学习总结_总结/汇报_实用文档。一篇与CAD...另外, CAD 还需要 将工程数据库、 应用程序以及...CAD 技术在 理论与算法研究、硬件设备生产、支撑软件...
CAD明细表制作技巧:标准件特殊属性的提取配置
CAD 明细表制作技巧:标准件特殊属性的提取配置 CAD 软件生成的图纸明细表信息是 CAM/PDM/ERP 等系统的数据来源。 很多工程师使用中 望 CAD 机械版绘图过程中发现...
CAD数据向GIS入库数据的转换(修改过)
暂无评价|0人阅读|0次下载|举报文档 CAD数据向GIS入库数据的转换(修改过)_计算机软件及应用_IT/...对需要按中心线表示的双线要素提取中心线, 新建矢量...
当今主流CAD软件建模技术分析比较
1/2 相关文档推荐 船舶主流CAD软件间的数据... ...90 ISO STEP 的应用对 CAD 相应单元技术及系统的...参数化设计的关键是几何约束关系的提取和表达、 几何...
CAD坐标批量提取
暂无评价|0人阅读|0次下载|举报文档CAD坐标批量提取_计算机软件及应用_IT/计算机...CAD 坐标数据批量导出小工具 这个是利用 cad 二次开发编写的一个 lisp,以下是...
从CAD图形中获取工艺信息的方法
CAD 图形中提取工艺信息的方法 摘 要 本文将针对...7 第二章 表格文档的逻辑结构与数据提取算法 ......不断出现,新的软件产品不 断开始在企业得到应用。...
更多相关标签:
flexpaper文档提取 | word内嵌文档的提取 | word文档怎么提取页面 | pdf文档图片提取 | 提取word文档中的图片 | pdf文档提取页面 | word文档提取电话号码 | word文档提取图片 |