|
目前很多企业使用各种软件系统,以实现计算机网络信息链的先进管理。但如何在这些产品设计(CAD)、工艺设计(CAPP)与产品数据管理(PDM)、企业资源计划(ERP)等软件平台之间实现信息集成,一直是核心问题。' g! a! x: }0 I9 B1 t' V
目前很多企业使用各种软件系统,以实现产品设计、工艺设计、生产计划、加工制造、供应管理、销售管理和质量管理等环节的计算机网络信息链的先进管理。但是如何在这些产品设计(CAD)、工艺设计(CAPP)与产品数据管理(PDM)、企业资源计划(ERP)等软件平台之间实现信息集成,一直是企业构建全面信息化管理系统所关心的核心问题。* n* K& V, z6 ^" [! O' Y. o: z
1 a0 t! F6 E# Y0 N9 v, \9 ^
1 Auto CAD开发技术基础
! C+ N5 h |! [- \2 V: ]! i# N+ F5 X' |# E( [- v9 h9 u
许多制造企业使用了Auto CAD作为辅助设计的主导软件,如何进一步发挥Auto CAD的功能,建立与数据库之间的数据传递关系,使之与产品设计有关的数据信息能为PDM系统方便、快捷、准确地获得,是Auto CAD系统高级开发的重要任务。 S; N" w# k2 ?" B
& n0 Z+ R7 K" C1 }" c. {- L 1.1 Auto CAD编程接口$ B- |8 V: z* `8 E" R/ f4 P
, |% N8 r; Z( S6 U: _0 ]( E6 ^
Auto CAD提供了应用程序编程接口(API),开发人员可用此接口控制图形和数据库。所使用的接口类型由应用程序的需要决定。
i8 { l1 q( E( G# i5 g/ _1 o" r; M7 D* `3 m R9 |
1)ActiveX Automation:是Microsoft基于部件对象模型(COM)体系结构开发的一项技术。可以用来自定义Auto CAD,与其他应用程序共享图形数据并自动完成任务。
. t' D( k1 [0 @. w8 {( C
' q& J7 z1 l# y 2)Auto CAD VBA:是一个基于对象的编程环境,能提供丰富的开发功能。VBA和VB(Visual Basic 6)的主要区别在于:VBA与Auto CAD在同一进程空间运行,提供具有Auto CAD智能的、快速的编程环境。
, T# U/ m" j$ x9 `
6 x4 L. z4 b/ t5 ?& P, Y 3)Auto LISP和Visual LISP:是基于功能强大的LISP的编程语言。由于Auto CAD内置了LISP解释器,可以在命令行中输入Auto LISP代码,或从外部文件中加载Auto LISP代码。VISual LISP(VLISP)是为加速Auto LISP程序开发而设计的软件工具。
p# F! K+ p- A7 d$ ^4 L b
# j$ ^" N% h/ M) m' S 在Auto CAD中使用ActiveX接口具有下列两个优点:(1)可以在多种编程环境中编程访问Auto CAD图形。在ActiveX Automation出现之前,开发者只能用Auto LISP或C++接口访问Auto CAD图形。(2)更易于与其他Windows应用程序(例如Microsoft Excel和Microsoft Word)共享数据。( B5 t9 u6 c: j# Y( j1 U* Z6 h
% I$ r* {+ P3 G: ?7 F8 s* Z7 F 1.2 用Auto CAD VBA开发程序
2 @# {' O$ b2 n
1 J/ O- C. L; w" G6 r1 Z% t) n" X VBA通过Auto CAD、ActiveX Automation接口向Auto CAD发送信息。Auto CAD VBA允许Visual Bas.ic环境与Auto CAD同时运行,并通过ActiveX Auto—mation接口提供对Auto CAD的编程控制。这样就把Auto CAD、ActiveX Automation和VBA紧密连结在一起,提供一个非常强大的接口。它不仅能控制AutoCAD对象,也能向其他应用程序发送数据或从中提取数据。
+ D; \7 \% k, U5 n9 I% ^, d" Z" k7 ^% C1 k' `: W+ g5 x( y# [
把VBA集成到Auto CAD,为自定义Auto CAD提供了一种易于使用的可视化T具。例如,用户可以创建一个应用程序,用于自动提取属性信息,把结果直接插入Excel电子数据表或其他数据库中,可执行所需的任意数据转换。) X$ t r2 x" |
+ Z! ], X. |' O
事实上Auto CAD具有非常完善的二次开发功能,它提供了应用程序编程接口(API),多种应用程序可通过该接口控制图形和数据库,并可从用作Auto.mation 控制程序的任何应用程序中创建和操纵AutoCAD对象。Automation使编制跨应用程序执行的宏成为现实。" E9 ]! x @1 k0 \' R' M
" _+ L6 K0 M( ]# Q1 a+ W 1.3 产品零/部件编码的设计
+ _ e& @8 |9 M. A( k( x/ b
' F7 U5 g; P( q7 L- H7 n 实现对产品及零/部件信息准确、方便识别的编码处理,是实现CAD与PDM信息集成的基础。产品零件编码设计原则应使编码有利于PDM生成产品的各种BOM,便于CAPP等系统继承设计数据,引导生产计划和生产制造。+ Y( A$ O0 [% f/ ?) v) M" ^/ U2 y% C
7 g- d/ }) {3 M; |& x( D 因此,零/部件编码既要考虑便于工程人员理解和使用,符合规范,又要充分、准确地描述PDM所要求的信息。对要求反映产品结构逻辑关系的,应该采用树式结构,它反映产品的逻辑隶属关系,可以自动集成CAD与PDM产品信息的零/部件编码。而对于生成各种物料清单(BOM)的影部件编码,则应结合成组技术,采用分类编码方式。代码的结构一般采用链式与树式的混合结构。
1 q/ J- M" v/ T" x5 {7 Y
) x( d" o8 K* x6 M Z9 p7 G 在CAD与PDM信息集成的系统中,要求产品影部件编码既要有反映产品逻辑结构的信息,又要有反映零部件特征的信息。这样的产品编码位数较多,而不同的用途仅需要编码的部分位数信息。为方便使用,可以将零/部件编码拆分成两个编码项,一项是零/部件逻辑关系编码,即代号编码,另一项是零/部件几何物理特性编码,即特征编码。代号编码采用树式结构(分级结构),而特征编码采用链式与树式的混合结构。无论是代号编码还是特征编码,都应采用分段编码的方式。同一零/部件两种编码是一对一的关联。不同的企业应该根据自身的实际需要来制定产品编码规则,也可以借鉴国内外通用的编码标准资料,并结合成组技术(GT)来完成产品设计编码。
& e0 X0 b- z8 r+ q5 t
! K4 i) I; ^0 t8 c 1.4 图形和数据库信息交换" b8 {- u' E; D( n0 C
4 a' P1 B7 N, T: J: L3 _+ m
Auto CAD图形与数据库之间数据交换是实现Auto CAD与PDM系统信息集成的前提。Auto CAD图形与数据库之间的数据交换可以有两种形式:一种是属性链接方式;一种是新数据链接方式,即建立链接样板。对于Auto CAD与PDM系统的集成要求而言,实现设计图样中诸如标题栏、明细栏等有关数据自动传递至Auto CAD系统之外的数据库系统之中,尽量不再需要人为地二次建立数据库和输入数据。鉴于上述原因,采用属性链接方式更为灵活便利,符合工程设计人员的要求。
% V9 K, F6 N! q" I* k/ `- V/ B- [4 f7 I% N: p& I0 K
1)Auto CAD与数据库链接:Auto CAD内嵌VBA开发环境,通过编程操作Automation对象,实现对Auto CAD的操作,VBA工程中的宏(macro)与Auto CAD其他操作在同一进程中完成对图形的操作。与此同时VBA可以与VB一样跨应用程序操作数据库系统,通过配置DB Engine数据库引擎(Jet),实现数据库链接操作。# x0 a0 U( W3 e5 D$ Z; ?1 g' n
; U% {- g4 d6 n) i! Q( i- g
2)属性定义与提取:创建标题栏、明细栏图形块(BLOCK),将零/部件代号、编码、名称和材料等信息设定为相应图块的属性值。属性定义和属性提取均由VBA程序创建,过程如下:
9 K- w% z7 H! w: [# j
9 X' z( n3 {/ M (1)属性定义:完成属性图形块创建,包含标题栏、明细栏所有信息的属性设定。
1 H; Z! w2 s8 @1 p9 ?
' Z0 Q4 }/ K* a2 }. [$ a0 i7 C; [ (2)标题栏、明细栏信息添加:实现属性图块调用,属性值添加,图块插入等操作。" `9 Q4 `7 ~4 k" r; Y% d# Q. h
# e) u0 F! {+ }) Y8 S% G
(3)数据库操作:自动创建数据库文件,建立数据表、数据字段,并在新记录添加过程中对数据库、表以及对应记录进行判别和反馈,防止记录重复和遗漏。# x7 F+ H7 g* a* ~/ m
) D" p) z+ f, |7 ] G
(4)属性提取:取出命名图块的各项属性值,添加至数据库,成为数据表中的对应记录。 |
|