自动填写机械明细表的参数化绘图设计*

2013-03-26 08:25程泽明唐露露符纯华
机电工程技术 2013年10期
关键词:装配图明细表标准件

程泽明,唐露露,秦 凯,姚 礼,符纯华

(四川理工学院机械工程学院,四川自贡 643000)

0 引言

AutoCAD功能强大,在机械制造、船舶、汽车、航空航天等行业应用的非常广泛,给设计带来很大的方便。但其交互绘图命令绘图仍然绘图效率不高。针对具体成熟产品的CAD二次开发是CAD应用取得实效的关键环节[1]。

在绘制装配图中,明细表是必不可少的内容,同时也是报表统计、汇总输出等工作的基本依据。明细表的本质就是图号(零件)清单。在CAD图纸中,装配图明细表一般是在图纸绘制结束后,根据装配图所包含零件的各项内容,按顺序逐行手工填入明细表中。在AutoCAD软件中,如果直接使用AutoCAD绘图命令来绘制明细表并填写明细表的内容,则相当繁琐,且效率极低。虽然也有不少对明细表填写的开发文章,但对成套产品开发的机械明细表却不适用,原因是必须先构造明细表所有详尽具体内容的文本或EX⁃CELL文件。由于产品不同,导致装配图内容不同,也导致了机械明细表内容的不确定性。使用命令手工填入输入时极易出错,效率低,也不能保证数据的统一性,导致汇总处理的难度就更大了。由于二次开发是CAD应用取得实效的关键环节,因此本文提出自动填写机械明细表的参数化设计,以提高程序设计质量与产品开发效率。

1 程序设计与实现

1.1 设计思路

一般来讲,产品图纸由装配图、部件图和零件图组成。装配图包括图形、技术要求、标题栏、明细栏等几大部分。明细栏依次列出零件序号、代号、名称、数量、材料、备注等内容,在实际产品的开发中,明细表往往由GB件、非标件组成,按照传统的填写方式已不能满足产品开发的要求。设计开发思路是:自动构造明细表列表[2]后,循环逐个取出表中的元素填写明细表。关键技术是构造明细表列表,其构造方法如图1所示。

1.2 对标准件构造明细表列表

对标准件如螺母、螺栓、垫圈等明细表的填写,先建立数据库,通过的国标代号(例"GB/T6170-2000")和螺母直径(d)为查询条件,并读取标准件相关数据,主要是单重。总重根据数量自动计算。

1.3 关键技术——对非标件处理构造明细表列表

对于非标准件,先将非标件标题栏相关数据写入数据库[3],作为读取数据的数据源。如图2所示。然后通过图样代号和数量,到数据库中找到符合条件的记录并读取非标准件相关数据(如材料、重量等)构造非标件明细表列表。这是本工具的关键技术之一,其函数如下。运行本函数需要先连接数据库,VLISP[4]与数据库连接本文不再赘述。

图2 非标件相关数据存入数据库的截图

;=================================

;函数功能:提供图样代号和数量构造非标件的明细表列表。

;参数说明:secq——明细栏序

;tcode——图纸代号,如 5DB.075.002

;num----------数量

;demo----------备注

;使用方法:

;(GetBomList"3""5DB.750.002""8""demos")

;=================================

图1 生成明细表内容的方法

(defun GetBomList(secq tcode num demo/rValue rList sql weightAll)

(if (setq connObject(ado_connect))

(progn

(setq sql(strcat"select

partname,material,weight from SheetTitle where

tcode='"tcode"'")

);setq构造查询用SQL语句

(setq rList(ado_dosql connObject sql))

(ado_disconnect connObject)

;关闭数据库

);progn

);if

(if(>(length rList)1)

(progn

(setq rList(nth 1 rList))

(if(not(wcmatch num"*.*,*@*"))

;只为数字时计算

(setq weightAll(rtos(*(atoi num)

(atof(nth 2 rList)))))

(setq weightAll"")

);if

(setq rValue(list secq tcode

(nth 0 rList)

num(nth 1 rList)(nth 2 rList)

weightAll demo))

);progn

(setq rValue(list secq tcode""

num""""""demo))

);if

rValue

);defun

1.4 填写明细表

对给定图幅,标题栏位置确定(每幅图以(0,0)为左下角点),因此定义一个全局变量(pt_base_titlebar)为程序绘制明细表格作为基点即可。填写明细表填写流程图如图3所示。

1.5 运行实例

通过构造如下程序所示bom表,运行函数

图3 填写明细表流程图

(write_list_DF bom),得到图4所示明细表内容。

(setq bom(list

(GetBomList"1"

(strcat"8DB.070."

MainPostCode".1")"1""")

(GetNutBom"2""GB/T6170-2000"

"螺母M20""20""16""")

(list"3"""(strcat"拉带绝缘1.5X160X"

(rtos L_LD 2 0))"4""绝缘纸板

100/00"(rtos weight_8 2 3)

(rtos(*weight_8 4)2 3)"")

(GetBomList"4"(strcat"5DB.023."

MainPostCode)"5"""))

);setq

2 结论

自动填写明细表工具,经实际使用并结合用户习惯修改,使用效果良好,能较大幅度地提高绘图效率。尤其是对成套产品进行二次开发的明细表填写,只需局部修改构造明细表的列表即可,因而绘图效率更高。另外,本实用程序通用性强,可作为绘制装配图的一个模块,也可作为整套产品CAD的一个模块,也可作为单独的实用工具使用,具有较好的实际使用价值和推广意义。

[1]柳博,杨明忠,国顺生.基于关系型数据库的BOM设计查询策略[J].现代制造工程,2004(2):28-30.

[2]张志利.AutoCAD 2000定制与开发手册[M].武汉:华中理工大学出版社,1999.

[3]王宇虹,朱亦文,陈格,等.Access数据库系统开发从基础到实践[M].北京:电子工业出版社,2006.

[4]吴永进,林美樱.AutoCAD完全应用指南[M].北京:科学出版社,2009.

猜你喜欢
装配图明细表标准件
标准件库的建立与应用
实物模型拼装、图块拼接与AUTO CAD软件在装配图绘制中的有机结合
2019年中国出口石材明细表(三)
2019年中国出口石材明细表(二)
2019年中国出口量值石材明细表(一)
工程制图小班化教学的实践与探索
CATIA V5标准件库的创建与使用
基于知识的组合机床夹具可扩充标准件库的开发
古代建筑的标准件
板平对接焊接接头装配图参数化绘图命令的开发