青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2524|回复: 1

应用VBA实现CAD与PDM信息集成的技术方案

[复制链接]
发表于 2010-1-10 11:04 | 显示全部楼层 |阅读模式
目前很多企业使用各种软件系统,以实现计算机网络信息链的先进管理。但如何在这些产品设计(CAD)、工艺设计(CAPP)与产品数据管理(PDM)、企业资源计划(ERP)等软件平台之间实现信息集成,一直是核心问题。
7 z! v; m8 a; D. l6 u+ J& j: R  目前很多企业使用各种软件系统,以实现产品设计、工艺设计、生产计划、加工制造、供应管理、销售管理和质量管理等环节的计算机网络信息链的先进管理。但是如何在这些产品设计(CAD)、工艺设计(CAPP)与产品数据管理(PDM)、企业资源计划(ERP)等软件平台之间实现信息集成,一直是企业构建全面信息化管理系统所关心的核心问题。
$ D( p4 W6 d# u" U2 \
4 O7 z% \' V; d* t  `   1 Auto CAD开发技术基础0 K* N0 E* K* t; a# _5 L

+ m0 f! `: A4 f( {0 q  d    许多制造企业使用了Auto CAD作为辅助设计的主导软件,如何进一步发挥Auto CAD的功能,建立与数据库之间的数据传递关系,使之与产品设计有关的数据信息能为PDM系统方便、快捷、准确地获得,是Auto CAD系统高级开发的重要任务。
: ~- @4 a, b. B) ~1 Z$ ]: j4 a4 j2 H; C4 M' A* `- M% O. D" W3 q
    1.1 Auto CAD编程接口/ ]* n. M! i/ Z1 O$ v0 R6 m" C5 y
5 q  C# w) C* U' K
    Auto CAD提供了应用程序编程接口(API),开发人员可用此接口控制图形和数据库。所使用的接口类型由应用程序的需要决定。
7 d5 j- f( m7 L/ ]0 d5 f' I" G/ k, c& z) t/ v
    1)ActiveX Automation:是Microsoft基于部件对象模型(COM)体系结构开发的一项技术。可以用来自定义Auto CAD,与其他应用程序共享图形数据并自动完成任务。1 R/ y) I1 S4 ?; Z

) d$ U3 d0 b2 B- ]4 Y+ {    2)Auto CAD VBA:是一个基于对象的编程环境,能提供丰富的开发功能。VBA和VB(Visual Basic 6)的主要区别在于:VBA与Auto CAD在同一进程空间运行,提供具有Auto CAD智能的、快速的编程环境。
' y% p2 n: @1 I  K3 y' i
  ~) K) O- z1 h. Z2 s" U: M6 ?3 Z- s    3)Auto LISP和Visual LISP:是基于功能强大的LISP的编程语言。由于Auto CAD内置了LISP解释器,可以在命令行中输入Auto LISP代码,或从外部文件中加载Auto LISP代码。VISual LISP(VLISP)是为加速Auto LISP程序开发而设计的软件工具。. \# t* I+ x, P9 r* G
3 j7 W' z; R& Y1 o8 n  J
    在Auto CAD中使用ActiveX接口具有下列两个优点:(1)可以在多种编程环境中编程访问Auto CAD图形。在ActiveX Automation出现之前,开发者只能用Auto LISP或C++接口访问Auto CAD图形。(2)更易于与其他Windows应用程序(例如Microsoft Excel和Microsoft Word)共享数据。: q2 f  }5 {; A* o% P

: d- \+ N. `" K* h/ E    1.2 用Auto CAD VBA开发程序3 C. z3 _/ M" O! {" ?! u- D# w

, P) R8 H% H) h4 Z; q- F    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对象,也能向其他应用程序发送数据或从中提取数据。( I4 f, K6 `: [# R+ G0 ^! d' @- Z
& z, T( t& F  H" T# U! {
    把VBA集成到Auto CAD,为自定义Auto CAD提供了一种易于使用的可视化T具。例如,用户可以创建一个应用程序,用于自动提取属性信息,把结果直接插入Excel电子数据表或其他数据库中,可执行所需的任意数据转换。- d4 \4 U# t1 d; |  j; e2 }
( r4 w  y5 W( i! p! f& \1 B
    事实上Auto CAD具有非常完善的二次开发功能,它提供了应用程序编程接口(API),多种应用程序可通过该接口控制图形和数据库,并可从用作Auto.mation 控制程序的任何应用程序中创建和操纵AutoCAD对象。Automation使编制跨应用程序执行的宏成为现实。
$ F: \! J2 \5 C8 f1 H( k* z! z' n0 n7 |0 R6 Y+ Y' X( t
    1.3 产品零/部件编码的设计
; g- B/ t3 L( \- h6 E; B' d$ A9 R2 w) R$ ]( g9 b* u! H" }
    实现对产品及零/部件信息准确、方便识别的编码处理,是实现CAD与PDM信息集成的基础。产品零件编码设计原则应使编码有利于PDM生成产品的各种BOM,便于CAPP等系统继承设计数据,引导生产计划和生产制造。3 Z$ P; F3 N0 |0 l3 w, m3 I9 s
. Z! l* Y2 o& \% H: o- O' u3 j
    因此,零/部件编码既要考虑便于工程人员理解和使用,符合规范,又要充分、准确地描述PDM所要求的信息。对要求反映产品结构逻辑关系的,应该采用树式结构,它反映产品的逻辑隶属关系,可以自动集成CAD与PDM产品信息的零/部件编码。而对于生成各种物料清单(BOM)的影部件编码,则应结合成组技术,采用分类编码方式。代码的结构一般采用链式与树式的混合结构。9 ^6 O& U; E/ ^# ~
! h2 {/ n  B. k* Y9 N- @$ c
    在CAD与PDM信息集成的系统中,要求产品影部件编码既要有反映产品逻辑结构的信息,又要有反映零部件特征的信息。这样的产品编码位数较多,而不同的用途仅需要编码的部分位数信息。为方便使用,可以将零/部件编码拆分成两个编码项,一项是零/部件逻辑关系编码,即代号编码,另一项是零/部件几何物理特性编码,即特征编码。代号编码采用树式结构(分级结构),而特征编码采用链式与树式的混合结构。无论是代号编码还是特征编码,都应采用分段编码的方式。同一零/部件两种编码是一对一的关联。不同的企业应该根据自身的实际需要来制定产品编码规则,也可以借鉴国内外通用的编码标准资料,并结合成组技术(GT)来完成产品设计编码。1 x0 ^0 r6 `6 x2 N( J9 \
/ w) |7 j4 j5 ~! X; H
    1.4 图形和数据库信息交换
3 G) }: A9 _$ x1 {" t& c/ P3 D  O
4 ?; @+ @& \8 K    Auto CAD图形与数据库之间数据交换是实现Auto CAD与PDM系统信息集成的前提。Auto CAD图形与数据库之间的数据交换可以有两种形式:一种是属性链接方式;一种是新数据链接方式,即建立链接样板。对于Auto CAD与PDM系统的集成要求而言,实现设计图样中诸如标题栏、明细栏等有关数据自动传递至Auto CAD系统之外的数据库系统之中,尽量不再需要人为地二次建立数据库和输入数据。鉴于上述原因,采用属性链接方式更为灵活便利,符合工程设计人员的要求。
: y) C+ y$ M  e) @1 @7 L; w# r
3 m' }' }( M2 M3 s7 B7 [3 i! q! x    1)Auto CAD与数据库链接:Auto CAD内嵌VBA开发环境,通过编程操作Automation对象,实现对Auto CAD的操作,VBA工程中的宏(macro)与Auto CAD其他操作在同一进程中完成对图形的操作。与此同时VBA可以与VB一样跨应用程序操作数据库系统,通过配置DB Engine数据库引擎(Jet),实现数据库链接操作。( X5 [- u' {  ^; c! ]) H3 ^
% t" @/ b/ N2 @. F
    2)属性定义与提取:创建标题栏、明细栏图形块(BLOCK),将零/部件代号、编码、名称和材料等信息设定为相应图块的属性值。属性定义和属性提取均由VBA程序创建,过程如下:+ W2 T& M& j, J. y

9 T/ f, R5 }# a! K: a3 E    (1)属性定义:完成属性图形块创建,包含标题栏、明细栏所有信息的属性设定。
4 T- ?- Q% e4 j$ R) s1 T2 s7 B8 S: `6 ^$ M1 Y; j' ]8 N( D
    (2)标题栏、明细栏信息添加:实现属性图块调用,属性值添加,图块插入等操作。- \% t2 {. ?  W: y

0 y# m8 ~& C& ?4 X2 h9 r    (3)数据库操作:自动创建数据库文件,建立数据表、数据字段,并在新记录添加过程中对数据库、表以及对应记录进行判别和反馈,防止记录重复和遗漏。
) J1 q- W% V0 m% R; o( p& M' W$ F4 ~5 ~+ y' t
    (4)属性提取:取出命名图块的各项属性值,添加至数据库,成为数据表中的对应记录。
 楼主| 发表于 2010-1-10 11:05 | 显示全部楼层
2 产品设计图中基本设计信息数据库的创建: f( W, k. u$ d8 J& Q5 s. c! N% b
& N0 G# \1 |3 k' Q
    通过对产品及其影部件等基本设计信息的处理,能够体现m组成产品的各项基本状况。1)体现产品逻辑结构——产品结构树。一个产品及其零/部件的代号编码可以建立产品结构的树状结构的逻辑组成。它是PDM的重要内容。2)体现整个产品所有材料的组成、零/部件种类和数量,即材料清单(BOM)。3)体现设计签名、设计审批等资料信息的管理,为产品设计管理提供设计流程信息。4)体现工艺设计信息。与CAPP信息集成,为计算机辅助工艺设计提供了可直接利用的基础设计信息。
: B7 ^8 A# T+ }; I' h' ~0 H9 k5 @! z! U; F
    总之,产品基本设计信息数据库的自动建立,为PDM和CAPP提供了信息集成的基础数据库,是CAD/CAPP/PDM信息集成的重要环节。' d) i* {4 |9 J
1 e) D( b; z, v" ?8 e1 H
    2.1标题栏、明细栏詹眭图块的建立
% i, n/ A  i, ]1 {" t! F6 V! T% O, _: m. v
    1)创建图块:制作标题栏、明细栏图块可以采用交互式绘图的方式,也可以采用编程的方式实现。3 ]  u0 }9 m8 g" Z( R  L. e2 S
' g3 |$ k0 v1 |  v
    2)属性定义:标题栏图块定义的属性值有零件代号、零件名称、零件编码、材料、总量、绘图比例与图幅信息,还有用于设计批签的设计员与日期、审核员与日期、工艺审核与日期、标准化与日期和批准与日期。明细栏定义的属性值有代号、名称、材料、数量和属性。+ g- F4 J) p: o1 ~! p
0 A" Y: n& s+ X$ R) h- M3 {
    3)输出块图形文件:定义好的属性图块应作为全局块输出图形文件,并将其保存于特定的路径与文件夹。0 Z& `! h  f. J' o" l1 U
$ S( s5 \/ i) ?
    2.2产品设计图中编辑标题栏与明细栏) R4 J3 \: S" |- X1 G9 e2 h
$ S6 o5 V3 x1 v
    产品图样设计过程中要编辑标题栏、明细栏信息,这一过程就是图形文件的属性添加过程。添加属性的方法有多种多样,如何以最合适的方式进行编辑、符合工程设计人员的操作习惯等要求都是保证数据正确性必须考虑的凶素。Auto CAD VBA是面向对象的程序设计技术,可以通过运行VBA窗体模块程序,完成对标题栏与明细栏的属性添加工作。' ~2 Q/ n8 @. b0 j' ~$ D$ }: [

: X& F$ J% Z: J3 r2 z8 l9 T    2.3标题栏、明细栏信息数据提取与建库
+ d( g- R# U5 y  I* ?  H
: e0 _/ i' y8 W! t    图档中标题栏、明细栏属性的提取有两种方式,一种是在编辑标题栏、明细栏的同时,将其属性值添加到数据表的记录中,如果修改标题栏或明细表,那么程序同时修改数据表记录;另一种是标题栏、明细表编辑完成后,执行便利图档中插入的具有特定名称的图块,将属性一一取出,追加至数据库中。& C! a# E4 e5 L# J7 p4 _% U

, a$ w& V( j. v9 J    3 通过VBA应用程序实现数据交换和信息集成
4 w' S0 o( M/ j9 c0 ?9 O$ N" v" t1 o2 R" D8 c3 A
    Auto CAD VBA工程是在VBA集成开发环境(VBA IDE)下创建编辑的。VBA工程可以是内嵌VBA工程,也可以是独立的全局VBA工程。全局VBA工程具有比较多的功能,可以在Auto CAD图形中运行,也可以在工程中打开和关闭Auto CAD图形。全局工程比较容易和其他用户共享,而且可以制作共享的宏资源库,当使用VBA开发通用应用程序时,应将其保存为全局工程。全局工程不会自动加载,必须单独加载该丁程,才能执行其中的宏。
" t- @( k  l* v% E( c$ N, A4 z! C+ L! z# x8 r/ N0 U. k# d
    Auto CAD VBA工程可以采用Auto CAD界面菜单或命令(VBALOAD)方式加载,也可以采用通过编程控制方式加载。比较通用的方式是制作启动菜单文件,利用菜单控制加载各种VBA应用程序,并执行VBA工程中的宏。创建和编辑下拉菜单群组,通常可以利用Auto LISP语言编辑原Auto CAD文件,也可以采用VBA开发新的菜单群组文件,并将VBA工程中的宏在Auto CAD启动时自动运行即可。! A3 o& S6 S: M9 c) W

7 x* }8 _- o  e8 n4 |    4 结语- V( q8 V0 U8 b% ^. n7 S
) o6 C0 R5 p' U7 x
    Auto CAD VBA作为Auto CAD的二次开发工具,可以与Auto CAD图形操作同进程运行,通过ActiveXAutomation可以操纵几乎所有Auto CAD对象。同时它具有大多数的VB语言功能,可以操纵各种数据库软件,进行数据库编程操作,从而能够在Auto CAD系统中跨应用程序操作数据库,与数据库进行数据交换。同时VBA与Auto LISP程序设计语言结合运用使得开发Auto CAD与PDM集成接口变得更加便捷。这种集成Auto CAD与PDM的开发方式是实现企业信息化系统技术集成的有效模式,非常适用于中小型机械制造企业信息化系统的开发实现。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-2-19 06:54 , Processed in 0.048567 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表