VBA自动提取CAD图纸明细表及数据库管理的研究与实践(二)-碧海
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> 其它应用


VBA自动提取CAD图纸明细表及数据库管理的研究与实践(二)

发表时间:2009/12/31 11:24:23 评论(4) 浏览(16813)  评论 | 加入收藏 | 复制
   
摘 要:笔者认为:在企业信息化建设中,依靠软件商开发和购买大型管理软件是必要的,但不是唯一的。信息系统的开发和应用切忌一味搞“大而全”、“高版本”,而应针对应用的具体对象灵活的采取不同的开发方式。需要强调的是:充分地调动和挖掘本企业信息技术人员的积极性和创造性,有效地组织他们去攻克解决企业信息化道路上的难题和开发实用型专业化软件工具显得尤其重要,这才是企业信息化建设的真正动力和技术支撑。遗憾的是这个问题也正是当前许多企业在信息技术开发工作中的不足之处。
    一切管理软件都是工具,工具不是万能的,关键还是人的创新精神和责任心。因此能否真正发挥软件的作用解决企业的实际问题,还有待于依靠企业领导、管理人员、信息技术人员的同心协力,鼎力相助。这种信息系统开发的模式也是企业特别是中小型企业信息化建设的一条可借鉴的有效途径。

正 文:

二、VBA编程自动提取CAD图纸明细表及进行数据库管理的要点

       本研究采用AutoCAD2004设计图纸明细表,Access2003数据库进行管理。系统设计可分为AutoCAD2004二次开发和数据库管理两个组成部分,使用VBA编程工具开发系统。

(一)AutoCAD2004二次开发

1.建立自定义菜单:启动CAD→工具→自定义→编辑自定义文件→当前菜单→进入ACAD记事本→编辑→查找POP11→修改→保存

自定义菜单修改内容:

***POP11

**vba应用

ID_vba应用        [&vba应用]

ID_提取图纸明细表    [->&提取图纸明细表]

ID_保存为Excel表     [&保存为Excel表]^C^C_-vbarun m_excel.dtexcel

ID_保存为Access表    [&保存为Access数据库]^C^C_-vbarun m_access.dtaccess

***POP12

注释:

***POP11----第11项

**vba应用----别名

ID_vba应用 [&vba应用]----显示"vba应用"菜单项

ID_提取图纸明细表[->&提取图纸明细表]----  ->表示有下级子菜单显示"提取图纸明细表"

ID_保存为Excel表[&保存到Excel表]^C^C_-vbarun m_excel.dtexcel

 ----显示"保存到Excel表",并运行ACAD工程中的模块m_excel中的宏(过程)dtexcel

     (打开图纸时操作菜单自动提取明细表到指定的Excel表)。

ID_保存为Access表[&保存为Access数据库]^C^C_-vbarun m_access.dtaccess

----显示"保存到Access表",并运行ACAD工程中的模块m_access中的宏(过程)dtaccess

(打开图纸时操作菜单自动提取明细表到指定的Access表)。

将编辑后的acad.dvb文件COPY到C:\Program files\autocad 2004\support\目录中。

 

2.编制VBA提取图纸明细表数据程序:

(1)提取数据到Excel表的程序要点



(2)提取数据到Access表的程序要点



(二)建立ACCESS数据库管理信息系统

       1.建立数据库MDB应用文件:为了统一、集中、有效地管理数据,便于系统调试、更新和升级,将程序和数据分别存放在两个MDB文件中,本例自动提取的CAD明细表数据存放在D:\产品数据库。

       2.设计信息管理系统:本系统在ACCESS 2003环境下应用VBA编程技术开发。设计信息管理系统时要着重考虑以下问题:

⑴明细表序号(件号)编码的设计

       明细表序号一方面反映图纸的顺序和相互关系,另一方面也是数据库管理中进行排序、分类、汇总的依据,因此序号的编码设计和处理尤为重要。在一般通常情况下图纸明细表中的序号(件号)常采用1-999……数字逐一递增的顺序编码。这种自然编码的优点是符合人的思维习惯、容易记忆、维护方便,但存在不能自动排序的缺点。

       例如:1、1.1、2、2.1、10、10.1、99、100按升序排列,其结果是:

1、1.1、10、10.1、100、2、2.1、99

       这是因为在计算机内上述数字是按ASCII值排序的。

       这种不定长的编码方式给计算机查询、排序、分类、汇总等操作和制作报表带来很大麻烦,往往需要用手工的办法人为的加以调整,十分不便,工作效率也很低。因此系统采用了新的编码方法,即三位定长编码。

       图纸明细表序号(件号)采用三位编码逐级递增的方式

       例如:装配图   001…002…010…099…100…999              一级序号

       组部件图 001001…002001…101001…101099            二级序号

       零件图   001001001…002001001…101099001           三级序号

       上述编码在实际操作中并无需记忆,只需在原来序号上加零即可。

       实践证明这种定长逐级递增的编码方式对提取明细表的数据进行排序、分类、汇总操作和制作报表时带来极大的方便,不但大幅度提高系统自动化的能力,而且为应用数据库技术打下良好坚实的基础。通过程序可将图纸明细表中的三位编码自动转换还原成报表上习惯常用的编码。例如:装配图        001…002…010…099…100…999

       转换为        1…2…10…99…100…999

       组部件图      001001…002001…101001…101099  

       转换为        1-1…2-1…101-1…101-99

       零件图        001001001…002001001…101099001 

       转换为        1-1-1…2-1-1…101-99-1

⑵自动修改数据库表结构

       从AUTOCAD图纸明细表提取的数据保存在数据库表中只是解决了数据库数据源的问题,系统要完成数据逻辑的自动处理和满足功能模块运行、实现系统目标的需要还必须增加一些辅助字段,用以提高数据库管理信息系统的自动化程度。因此系统设计时要解决自动修改数据库表结构增加字段的技术性问题。

       例如:本系统需要在数据库表中自动增加“消耗用量”、 “物料分类”等字段。

       如以下程序所示:


 

⑶理顺和规范CAD图纸明细表数据格式

       传统CAD图纸明细表内的数据在大多数情况下反映了设计者个人的理解和自定义,应用数据库管理时就存在一个规范数据格式的问题,否则计算机无法正常处理提取的数据。因此开发人员要设计一个规范的CAD图纸标题栏明细表,对表头各栏目给予明确的定义并对输入的格式提出具体的规定和要求,设计人员应统一引用图纸规范标题明细栏。

    图纸规范标题明细栏=标题栏+明细栏

       其中:标题栏的格式内容与传统的格式内容一样,填写方法仍然采用单行文本方式;

       明细栏增加了型号规格一栏,将传统名称栏中的型号规格内容填写到此栏中。明细栏的填写方法如前所述采用增强属性编辑器(图六)输入。

       cad制图时必须规范、正确地填写明细栏各栏的内容。

       例如:

       A.件号栏:采用三位编码逐级递增的方式即:

       装配图   001…010…099..100…999          一级件号

       组部件图 001001…002001…101001…101099    二级件号

       零件图   001001001…002001001…101099001  三级件号

       系统具有编码识别转换功能,在明细栏制作和汇总时系统会自动将上述代码转换成习惯编码。

       例:1   板材              3   标准紧固件

           1-1 钢板 δ=2         3-1 螺栓 M10×90

           1-2 钢板 δ=3         3-2 螺栓 M10×100

           2   型材

           2-1 扁钢 50×16        

※件号栏必须按图纸的层次逻辑关系编制代码,不允许空拦。

 

B.图号或标准号栏:

       应准确使用图号,注意装配图、部件图、零件图之间的层次逻辑关系;按技术条件准确合理的选用技术标准。

       ※此栏可以是空栏。

C.名称栏:

       仅填写物料的名称,此栏中不再填写物料的型号规格。原则上必须保证一种物料对应一个名称,属于原材料或标准件、基础件的物料其名称按对应技术标准中的名称填写。

       例:钢板、无缝钢管、扁钢、槽钢、等边角钢、不等边角钢、工字钢、平垫圈、弹簧垫圈、螺栓、螺母等

       以便于物料分类和查询,改变过去同一物料名称五花八门的混乱现象。

       系统具备自动识别功能,输入名称更新后系统会自动定义物料分类字段:

       例如:名称:钢板 物料分类:板材             名称:扁钢 物料分类:型材

      名称:螺栓 物料分类:标准紧固件       名称:法兰物料分类:管道件

※名称栏不允许空拦。

       D.型号规格栏:应正确表达物料型号规格的含义,规范书写型号规格的格式。

       例如钢材形象符在实际使用中受中西文及取字方式的影响比较混乱,所有在图纸明细表中不再使用,但必须在名称栏内按设计手册的材料名称填写清楚。

       例如:名称:钢板   型号规格:δ=10(希腊小写字母δ及等号与数字连用,表示板材厚度)

       名称:槽钢   型号规格:25b

       名称:螺栓   型号规格:M16×60

       名称:扁钢   型号规格:50×16 (宽、数学乘号、厚)。

       名称:槽钢   型号规格:25b (槽钢型号)表示,不要用形象字符如:【[等。

       名称:不等边角钢 型号规格:50×32×4 (长边×短边×边厚)表示,不要用形象字符例:L、∠ 等。

       名称:无缝钢管  型号规格:φ38×5 (希腊小写字母φ、外径、数学乘号、壁厚)。

       名称:工字钢 型号规格:25b (工字钢型号)表示,不要用形象字符例:Ι 等。

       名称:圆钢   型号规格:φ40 (希腊小写字母φ、外径)表示。

       名称:螺栓   型号规格:M20×100 (大写M、外径、数学乘号、长度)

       名称:活接螺栓  型号规格:M20×100 (大写M、外径、数学乘号、长度)

       名称:细牙螺栓  型号规格:M10×1(大写M、外径、数学乘号、螺距)长度L=××在备注栏填写。

※原则上按技术标准书写,型号规格栏允许空拦。  

E.数量栏:

       整数用阿拉伯数字表示,小数用阿拉伯数字加英文状态下”.”表示。

       例:名称:钢板 型号规格:δ=8    数量:101.8 KG             

       名称:扁钢 型号规格: 50×16 数量:10 件

       名称:圆钢 型号规格:φ40    数量:100 KG

※数量栏数据必须唯一,不允许出现两个以上数据,不允许有非计算字符存在(如:/ * ( )等),数量栏不允许空拦。

       例:以下数量的表述格式是错误的

       名称:钢板 型号规格:δ=8    数量:101.8/ 109.8 KG

       名称:扁钢 型号规格: 50×16 数量:各10 件

       名称:圆钢 型号规格:φ40    数量:(100) KG

F.材料栏:

       保留过去图纸材料栏的书写方式。

       本栏反映了物料结构性质、材质、性能级别、热处理、特殊工艺等

       例:结构性质:部装、部件、组件

        材质:Q235-A、Q235-B、65Mn

        性能级别:4.8级、8.8级、200HV等

※系统已作了部份规范,有待进一步完善和扩充,操作者也可在技术标准中自行选用,材料栏允许空拦。

G.单重栏:

       整数用阿拉伯数字表示,小数用阿拉伯数字加英文状态下”.”表示。

       例:名称:钢板 型号规格:δ=8    单重:101.8 KG             

              名称:扁钢 型号规格: 50×16 单重:10    KG

              名称:圆钢 型号规格:φ40    单重:100   KG

※单重栏数据必须唯一,不允许出现两个以上数据,不允许有非计算字符存在,单重栏允许空拦。

       例:以下单重的表述格式是错误的

              名称:钢板 型号规格:δ=8    单重:101.8/ 109.8 KG

              名称:扁钢 型号规格: 50×16 单重:各10         KG

              名称:圆钢 型号规格:φ40    单重:(100)        KG

H. 总重栏:

       整数用阿拉伯数字表示,小数用阿拉伯数字加英文状态下”.”表示。

例:名称:钢板 型号规格:δ=8    总重:101.8  KG             

       名称:扁钢 型号规格: 50×16 总重:100    KG

       名称:圆钢 型号规格:φ40    总重:2000   KG

※总重栏数据必须唯一,不允许出现两个以上数据,不允许有非计算字符存在,总重栏允许空拦。

例:以下总重的表述格式是错误的。

       名称:钢板 型号规格:δ=8    总重:101.8/ 109.8 KG

       名称:扁钢 型号规格: 50×16 总重:各10         KG

名称:圆钢 型号规格:φ40    总重:(100)        KG

名称:组件 型号规格:        总重: /

 I.备注栏:

在此栏中表达需要简单说明的事项或在其他栏无法表达的内容。

例:

       名称:钢板 型号规格:δ=16     总重:955  KG     备注:上板按2000板宽            

       名称:扁钢 型号规格: 50×16   总重:100  KG     备注:L=568 8PCS

       名称:圆钢 型号规格:φ40      总重:52   KG     备注:拉杆L=2921 8PCS

       名称:钢管 型号规格:φ32×3   总重:2    KG     备注:接管L=180 2PCS

       名称:钢管 型号规格:φ299×10 总重:20.7 KG     备注:内筒体L=200

                                                                                                备注:外协(配套标准件)

※    备注栏允许空拦。

       开发人员在程序设计中要注意用空格处理空拦的NULL值,否则会引起取数程序中断,造成取数不完全的结果。

⑷采用人性化的设计思路和方法技巧

       数据库管理功能模块应简明实用,采用人性化的设计思路尽可能的把需要记忆和重复操作的事情交给计算机去做。系统的输入、查询、编辑应有联想功能,既考虑计算机程序的结构化又设法尊重人的工作习惯,两者巧妙地结合,在程序设计的技巧上采取一些有效措施,完全可以做到小软件解决大问题。

       例如在系统中内嵌输入联动、指定位置插入、习惯编码转换、金属材料重量随机计算器、结构树、数据库自动压缩等程序。

⑸优化和规范CAD图纸明细表取数及工艺文件(简称工单)的业务流程

       CAD图纸明细表取数及工艺文件制作涉及各项业务和多个部门,因此设计开发时必须从系统的角度全面的考虑问题,以最短的路径、最完善的功能、最可行的布局来安排业务流程。

参考例证如下:

      
三、结束语

       笔者已经成功的完成了自动提取CAD明细表与数据库管理信息系统的研究与实践。从CAD提取明细表后其数据一方面进入EXCEL,使用EXCEL手工制作工艺文件;另一方面可自动进入数据库系统按照程序制作工艺文件。经测试:在CPU2.8G内存1G的电脑上提取一套有350项明细表的图纸数据进入数据库只需5-8秒,整理数据8秒,从提取CAD数据到形成工艺明细编辑表及汇总表同步自动生成,前后总共不到半分钟(不含工艺制作时间)。预计加上设备组件分解工艺展开下料设计和补充制作输入物料消耗明细数据所需要的时间,上述CAD文件的工艺文件(工单)在1-3天内可以完成(传统手工取数,人工编制一般需要5-7天)。

       从企业发展的高度来看,这项工作有十分积极的现实和长远意义。其意义就在于通过企业自身的努力,充分利用现有Microsoft office软件的资源,以最优的性价比和最小的开发成本解决了制约CAD与工艺文件之间数据通信的瓶颈问题,减轻了人工制表的劳动强度,提高了工艺文件制作的效率和质量,缩短设备制造周期,强化和规范了企业技术和生产管理行为,同时也为逐步建立企业产品数据库奠定了良好的基础。

       一旦建立起企业产品制造信息数据库,那么项目控制、技术设计、制造工艺、生产计划、采购供应、发货外运、售后服务、成本核算等管理工作都将建立在这个统一的信息平台上,就可以做到信息共享、数据一致、查询快捷、便于决策。实现这个目标后,不但企业的信息化建设水平将有大幅度的提高,而且为企业提升核心竞争力提供了强有力的信息支撑。

       笔者认为:在企业信息化建设中,依靠软件商开发和购买大型管理软件是必要的,但不是唯一的。信息系统的开发和应用切忌一味搞“大而全”、“高版本”,而应针对应用的具体对象灵活的采取不同的开发方式。需要强调的是:充分地调动和挖掘本企业信息技术人员的积极性和创造性,有效地组织他们去攻克解决企业信息化道路上的难题和开发实用型专业化软件工具显得尤其重要,这才是企业信息化建设的真正动力和技术支撑。遗憾的是这个问题也正是当前许多企业在信息技术开发工作中的不足之处。

       一切管理软件都是工具,工具不是万能的,关键还是人的创新精神和责任心。因此能否真正发挥软件的作用解决企业的实际问题,还有待于依靠企业领导、管理人员、信息技术人员的同心协力,鼎力相助。这种信息系统开发的模式也是企业特别是中小型企业信息化建设的一条可借鉴的有效途径。

       任重道远,立志于信息化工作的同仁们不断努力啊!

上一页


Access软件网交流QQ群(群号:198465573)
 
 相关文章
VBA自动提取CAD图纸明细表及数据库管理的研究与实践(一)  【碧海  2009/12/30】
EXCEL根据身份证号码自动提取性别、出生年月日和年龄(通用公式)  【风行  2011/4/23】
【access小品】盲人瞎马--用access读取CAD块数据示例  【煮江品茶  2011/10/2】
关于颜色的经典VBA自定义函数【CAD-vba】  【欢乐小爪  2012/5/30】
【Access自定义函数】不规则提取日期数据的示例  【红尘如烟  2013/2/13】
常见问答
技术分类
相关资源
文章搜索
关于作者

碧海

文章分类

文章存档

友情链接