APP下载

基于AutoLISP和Visual Basic的工程图纸信息提取与处理

2011-05-11谢中梅陈友福刘素楠

制造业自动化 2011年7期
关键词:图号明细表控件

谢中梅,陈友福,刘素楠

(江西应用技术职业学院,赣州 341000)

基于AutoLISP和Visual Basic的工程图纸信息提取与处理

谢中梅,陈友福,刘素楠

(江西应用技术职业学院,赣州 341000)

0 引言

随着计算机科学和工程科学的结合与渗透,传统的机械设计发生了深刻的变化,计算机辅助绘图日益取代传统手工绘图。目前,国内使用CAD软件进行绘图过程中,图纸明细栏文档信息输入,还不是很方便且信息不容易提取,汇总成整台设备的零部件明细表,仍需要做大量、繁琐的人工抄录或在CAD中重复输入及检索。这种状况极大地影响了公司甩图板计划。采用AutoLISP、DCL(Dialog Control Language对话框控制语言)和Visual Basic开发而成的Windows应用程序,实现了CAD绘图与明细表汇总一体化设计,即在图纸设计完毕之后,利用计算机实现明细表的自动汇总。

1 设计思想

在机械工程图纸中,零件明细栏是图纸的重要组成部分,部件图纸的零件明细栏设有序号、代号、名称、数量、材料、单件重量及附注。在一台设备中,从总图号至最底层一级零部件,要按总图号编制明细表或总图下一级部件独立明细表,在编制明细表时须获得全部图纸的文档信息。

因此,在CAD绘图输入图纸明细栏时,动态地建立每张图纸的数据文件,一方面满足输入它的上一级部件图明细栏的信息,另一方面满足明细表汇总时的信息,将是实现CAD绘图与明细表自动汇总生成的关键所在,考虑到一个零部件可能对应几个不同的图形文件,但这些图形文件所表达的零部件的图号是唯一的,基于图号与零部件的一对一关系对应于每个零部件,规定取其图号作为其数据文件名。

2 系统组成

基于上述设计思想,以图纸明细栏数据文件作为重要的联系标志,对CAD绘图软件进行二次开发,实现CAD绘图与明细表自动生成,并为计算机辅助工艺设计(CAPP)系统提供数据共享。主要由如下几部分组成,如图1所示。

图1 系统组成框图

3 程序设计

3.1 CAD明细栏输入

采用AutoLISP及DCL编程在CAD绘图填写明细栏同时建立每个零部件的数据文件,供系统数据处理检索之用。

DCL语言结合了AutoLISP与DCL两种语法的功能,可以让用户半自动地架构出“图形模式”的对话框界面,即可编程对话框PDB,一个DCL文件的基本架构外观是:

DCL对话框的屏幕画面以框栏(Tile)为基本结构,将框栏按左右、上下或混合排行之后,就组成了对话框的主要外观。每个框栏内部可以容纳对话框的基本控件。DCL语法可以自动调整控件之间的相对位置,用户只需要将控件代码和各控件的排行模式代码按顺序写在DCL文件里即可,一般不用考虑控件的尺寸问题。系统会自动计算应有的对话框尺寸,并自动规划适当的空间来放置这些控件。

DCL文件与AutoLISP程序一样,是单纯的ASCII格式的文本文件,可使用VLISP或一般的文本编辑器(如:记事本等)来编辑和修改,用DCL语法撰写的对话框,其扩展名为.dcl。对话框程序的运行,按先后顺序可分为3步骤:

第1步:在AutoLISP文件里调用DCL对话框程序。

第2步:用户在对话框里输入数据。

第3步:将用户输入的数据返回AutoLISP文件执行[1]。

DCL文件本身并不能单独运作,必须在AutoLISP主程序里进行初始设定,然后由主程序调用DCL文件,才能显示在CAD的绘图屏幕上。用户输入数据后,单击程序设置的按钮,DCL文件再将取得的键值数据送回AutoLISP主程序执行,关闭对话框后,AutoLISP主程序还将继续执行后续的代码。

明细栏数据录入对话框DCL程序代码如下。

图2 明细栏输入对话框

以上代码为对话框源代码,并将其保存为p1.dcl,提供给下面的LISP程序(mxb.lsp)调用。因篇幅关系,省略mxb.lsp文件在CAD中调入对话框并录入、提取数据的源代码。此外,确保将p1.dcl和mxb.lsp两个文件保存在CAD安装目录下的support文件夹中。进入CAD后,在菜单栏项点击‘明细栏’下的‘I明细栏录入’(注:可通过修改CAD菜单文件在菜单栏中添加用户自定义的菜单项),按命令窗口中提示输入该图明细栏项数,回车;输入文件名(要求以该图的图号命名,例如该图的图号为5EQ.524.123,则在命令窗口中输入的文件名应为”5EQ.524.123”。),回车,按提示捕捉标题栏左上角,出现如图2所示的对话框。其功能在CAD中输出明细栏、提取明细栏数据,特点有:

1)明细栏输入及修改均采用对话框形式。

2)序号自动产生。

3)产品型号和总图号对话输入框中均以最近一次的输入值为默认值。

另外,由于多种因素的制约:一方面,手工图纸仍占一定的比重,另一方面,图纸资料具有继承性,设计中难免使用通用件及借用老产品的零部件,也可采用该程序在CAD中逐条将图中明细栏的信息输入并提取产生数据文件,而不产生图形实体。(当然,也可在明细栏数据处理过程中添加或修改、删除数据)它提供了在CAD下图纸明细栏信息提取与存储功能:

1)在对话框输入完数据后,按OK键,数据自动填入明细栏中,同时在C:MXB目录下自动生成了一个以该图号命名的文本文件。(例如:5EQ.524.123.txt)

2)另外,如果是“定子”、“转子”、“机座” 图纸,其输入的文件名必是该图纸的图号后加上MX,(例如:需要录入明细栏的图纸是图号为5EQ.034.633的机座,那么在命令窗口中提示输入文件名应为:5EQ.034.633MX。)

3)若遇到部件图已经出了明细表或不必出明细表时,在输入数据对话框代号一栏中,必须为标准的部件图号加上MX。另外,遇到没有代号时,必须在代号一栏中输入一个“.”。

3.2 明细表自动生成

对全部零部件信息进行搜索,当缺少某一部件的数据信息时,系统提示缺少部件,并拒绝将产品零部件信息分类入库。在明细表中,按不同部件层次并以“序号”特征加以区分,按树状结构排序。明细表的输出形式,可在明细表自动生成系统中直接由绘图仪输出,在本系统中支持打印机设置、网络打印及打印预览。明细表自动生成部分采用Visual Basic编写。程序框图如图3所示。

图3 程序框图

以下是明细表自动生成部分主要功能:

1)运行明细表生成程序,若需生成明细表数据都已入库,则按“明细表打印”按钮,然后在对话框中输入您要输出的明细表的总图号等有关信息,按“打印”或“浏览、修改”等按钮,就可打印、浏览或修改该产品下的明细表信息,如图4所示。

图4 明细表打印窗口

2)若数据未导入,则按 ‘明细表数据处理’按钮,在数据导入中点击“选择需导入文件”按钮,可实现文本数据转换成数据库文件、产品数据处理分类、明细表数据库修改、添加、删除及产品零件入库等。选择需要导入的文件(如:1EQ.010.416)。如此反复,直到该产品的明细数据导入完,即可打印总装、定子、转子、机座明细表,完成后,再执行“产品零件入库”,给计算机辅助工艺设计系统提供数据。

3)在明细表数据修改窗口中,可对当前产品明细表进行修改、删除、添加。如果要删除某几项只要用鼠标在要删除的记录上做上删除标记,然后在把光标定在“要删除的代号”这一输入框中,回车就可删除不想要的记录。如果不想用移动滚动条去寻找要修改的记录,那么可以在“要修改的代号或名称的输入框中输入要修改的代号或名称,回车,就可定位到要修改的记录。如下图5所示。

图5 明细表数据修改窗口

4 结束语

系统将对话框控制语言DCL与AutoLISP的可编程对话框函数[2]相结合,各模块均采用窗口式,对话框输入,且支持网络数据搜索及调用,极大地提高了设计效率。克服了图纸明细栏输入困难,做到了部件图零件明细栏数据提取及共享,真正做到图纸完,明细表同时生成,为工艺、材料定额、工时定额、生产计划管理提供数据共享,同时保证了数据信息的准确、可靠及高度一致。另外,从图纸设计到明细表自动生成,相同的零部件的数据信息,不管在本产品设计或其它产品中出现多次,仅需输入一次,大大减少了重复输入的工作量,通用零部件越多重复输入工作量减少越明显。

[1]舒飞.AutoCAD2004二次开发标准教程[M].上海:上海科学普及出版社,2004.

[2]杨素敏.AutoCAD2000定制与开发[M].北京:人民邮电出版社,2000.

[3]张晓黎,张巍.Visual Basic+SQL Server数据库应用系统开发与实例[M].北京:人民邮电出版社,2003.

Engineering drawings of the information extraction and processing based on AutoLISP and Visual Basic

XIE Zhong-mei, CHEN You-fu, LIU Su-nan

工程图纸信息提取与处理由CAD二次开发模块和图纸信息管理模块组成。CAD二次开发采用AutoLISP及对话控制语言编写;图纸信息管理主控程序和各功能模块用Visual Basic编写。将计算机辅助绘图与CAD图纸中零部件明细表汇总有机地结合为一体,利用计算机实现了产品零部件明细表自动生成,保证了图纸信息与明细表汇总的信息的一致性。

计算机辅助绘图;明细表(BOM);DCL(对话框控制语言);AutoLISP

谢中梅(1970 -),女,副教授,工程师,硕士,研究方向为数据库信息管理及应用。

TP391

B

1009-0134(2011)4(上)-0145-03

10.3969/j.issn.1009-0134.2011.4(上).45

2010-10-27

猜你喜欢

图号明细表控件
一种改进的接图表生成算法
学术出版物插图的编排要求(2):版式要求
基于.net的用户定义验证控件的应用分析
2019年中国出口石材明细表(三)
2019年中国出口石材明细表(二)
2019年中国出口量值石材明细表(一)
期刊论文中插图的要求
关于.net控件数组的探讨
B/S模式产品图号信息系统的开发与应用
2011年十家拍卖公司秋拍1000万元以上成交拍品前50名明细表