江西有色金属  1999, Vol. 13 Issue (1): 45-48
文章快速检索     高级检索
矿山选厂设备易损件参数化设计[PDF全文]
李卫红1 , 郭年琴2 , 陈晓梅3 , 胡秋文4     
1. 赣南师范学院, 赣州 341000;
2. 南方冶金学院, 赣州 341000;
3. 江西气体压缩机厂, 赣州 341000;
4. 德兴铜矿, 德兴 334224
摘要:以矿山选厂设备易损件参数化设计开发为例, 介绍了在AutocAD for windows平台下, 采用AutoLISP语言、DCL语言及幻灯片技术, 进行参数化设计开发的方法与技巧。
关键词选厂设备    易损件    参数设计    
1. ${affiVo.addressStrEn};
2. ${affiVo.addressStrEn};
3. ${affiVo.addressStrEn};
4. ${affiVo.addressStrEn}
0 前言

矿山选厂设备的维修、易损件制造与更换, 要求快速、准确、可靠, 以保证生产的要求。传统的易损件设计、绘图时间长、重复劳动工作量大, 耽误时间和生产。随着计算机技术的高速发展, CAD技术的广泛应用, 对矿山选厂设备维修采用CAD技术, 是势在必行。建立选厂设备图库, 开发易损件参数化设计软件, 对节省维修时间, 提高选厂设备管理水平, 具有十分重要意义。现以选厂设备易损件进行参数化设计为例, 介绍其开发方法。

1 设计思路与方法

在联轴器等易损件参数化设计中, 以AutoCAD R13 for windows。为工作平台, 采用AutoLISP语言、DCL对话框语言, 并建立幻灯片库[1]。用户点击易损件下拉菜单, 弹出联轴器对话框及幻灯片, 用户采用对话框进行参数动态数据输入, 最后依据输入的数据绘出所需的图形。

1.1 数据输入

不管采用哪种参数设计方法, 设计者所给出的界面必须使用户易学易用。当然用户使用起来越容易, 程序员的工作就越艰巨。如果要使二次开发中参数化设计易被用户接受, 建立友好的用户界面是开发者应首先考虑的问题, 而使用对话框输入参数就是解决这一问题的很好方法。

数据输入采用对话框形式, 当应用程序需要输入某些参数时, 对话框内会给出输入提示, 同时在对话框内会显示出要输入参数的图形幻灯片, 并提出各输入参数变量的位置, 使用户输入某些参数时一目了然。当数据输入出现错误时给出警告提示, 使用户重新修改输入的数据。

1.2 对话框设计技术

对话框的描述是DCL(Dialog Control Language)语言写成的ASCII码文件, 文件的扩展名为“DCL”, 通过AutoLISP和ADS(Auto CAD Development system)所提供的处理对话框函数, 包括PDB(Programmable Dialog Box)功能对话框进行操作。PDB功能显示对话框并响应用户的选择[2]

DCL程序的主要功能是进行对话框内容的排版和定义。使用DCL语言进行对话框编程与使用其他语言一样, 设计工作是其重要的过程。

1.2.1 对话框功能分析

每个对话框都是为了实现特定的功能而设计的。根据实际情况设计对话框的形状、轮廓是其重要的一环。如联轴器的对话框, 要排列输入参数的各控件, 要安排好联轴器幻灯片位置。

1.2.2 对话框的控件与属性

设计对话框内部成分, 统称为控件。控件的组成有:动作按钮、校对/切换按钮、单选按钮、编辑框、列表框、滑动杆等。通过将多个控件组合成行或列, 从而建立更复杂的控件, 这样的成组控件即可加封闭框, 又能当作一个单一控件进行处理, 称之为子装配或集控。

描述一个完整的控件, 是依靠对其属性的赋值来完成的。一个属性就如同编程语言中的变量, 它包含“名”和“值”二项内容。而且值必须是如下类型:整数、实数、字节、保留字, 设计者分配给属性的值, 其含义是设计者的应用程序定义的, 设计者定义的值必须符合前面描述的属性类型, 设计者定义的属性, 其含义和用法取决于自已的应用程序。

1.2.3 容错

用户通过对话框输入的数据有时是非法的, 这时必须有警告提示。如在联轴器孔图形设计时, 输入直径为负或者大孔直径d2小于小孔直径d1, 这时, 在对话框下面给出提示: “错误数据, 应是d2>d1”。允许用户重新输入。也就是说, 在程序中, 应该对数据进行检查并提示‘

1.3 幻灯片技术

在对话框嵌入幻灯片图形, 是为了使用户在输入参数时有一参照物, 使输入参数变量与幻灯片图形参数变量相对应, 用户一看便清楚应输入那些参数, 不易出错。因此, 制作幻灯片要本着完整、准确、清晰, 并用字母符号标明应输入的参数变量。

1.4 参数化程序设计

易损件参数化程序设计采用了AutoLISP语言, 文件类型为LSP。对选厂设备易损件的每一种类型都编制一个参数化子程序, 再实现对话框幻灯片调用绘图。

1.4.1 参数化程序设计方法

参数化程序设计方法有以下几种。

(1) 分析图形。首先, 对所要实现参数化设计的图形进行分析, 是否是对称图形, 输入参数有那些, 为编程做好前期准备工作话框。

(2) 初始化系统。在编程开始, 设置有关系统变量。如设置“CHDECHO”输入回波发送变量, 设置层、尺寸变量等。

(3) 调用对话框及幻灯片, 主要为参数化程序的数据输入, 也称为参数化设计中的前处理技术。

(4) 数值计算。根据数据输入, 以及所要绘制的图形, 进行图形中各结点坐标的计算, 并计算出相关图形尺寸。

(5) 图形绘制与编辑。在计算出图形各结点坐标的基础上, 综合AutoCAD命令进行绘图。要求熟悉AutoCAD命令, 能灵活运用。以最少的命令, 花最少的时间把图形绘出。最后标注尺寸等。其参数化程序设计框如图 1所示。

图 1 联轴器参数化程序设计框图

1.4.2 参数化程序设计技巧

主要设计技巧有以下几点。

(1) 实体选择集灵活运用。所谓选择是指一组选中实体的有序集合。在AutoLISP编制绘图程序时,要对实体进行编辑,如打剖面线、镜象转换等都要对实体进行选择。灵活运用实体选择集函数,使得编程和绘图更加简洁、易行。①利用ssget收集颜色相同的实体。如要在一封闭框内画剖面线,可以先设置颜色(Cammand“Color”250),然后画线,再用ssget把所有250颜色的实体收集到选择集中,(Setg ss(ssget“x”(62.250))), 然后打剖面线(Cammand“hatch”“ansi3l”“10”“0” “ss”“”),然后把250颜色改变成原随层颜色(Comrnand“Chprop”“ss”“Color”“bylayer”)。②利用ssget收集层上绘制的实体。象上面收集相同颜色实体一样。可回收集同一层上绘制的实体进行编辑。③构成选择集合,赋合一变量,为以后再调用。如(Segt ssl(ssadd(entlast)))。

(2) 自定义函数内的定行跟踪功能AutoLISP的(trace)函数提供了对程序中嵌套调用其他(defun…)函数的跟踪功能,但不能对函数内部的定行参数进行跟踪。在进行AutoLISP程序调试过程中,有时找错误较麻烦。因此,可自定义函数内的实行跟踪找错误。对每个程序内的结构段落后加一句:可把范围压缩到15行以内,找错就容易了。

(3) 函数释放技巧。由于AutoLISP程序在加载后就一直保留在内存,程序过大、变量过多可能造成堆栈空间不够,而导致出错。为了实现程序变量用后置空原则,应在毎个LISP应用程序的末尾加上以下二行:

第一行将程序置空,从而释放节点;第二行回收无用节点,释放堆栈空间。

2 使用方法和步骤

现以易损件联轴器为例,说明参数化开发过程及应用。

用户选择易损件菜单,弹出下拉菜单,选择联轴器,则弹出联袖器对话框,如图 2所示。用户可对照对话框中幻灯片,确定联轴器中的各参数。如果输入参数出错,则在对话框下面出现警告提示。最后绘出用户图形, 并自动标注尺寸。如图 3所示。

图 2 联袖器对话框

图 3 联轴器参数化设计

3 结语

(1) 采用AutoLISP、DCL语言, 配置幻灯片, 进行专业CAD二次开发, 方便易行, 是一条投资少、见效快的开发途径。尤其适合工程技术人员的开发和应用。

(2) 在CAD的二次开发中, 建立一个友好界面非常重要。采用对话框及幻灯片方式输入参数, 是一种深受用户欢迎的方式。

参考文献
[1]
梁帆, 郭平平. AutoLISP R13与DCL从入门到精通[M]. 北京: 龙门科学出版社, 1996: 1-256.
[2]
苏鸿根, 刘海滨, 杨飞强. 怎样开发AutoCADR12[M]. 北京: 清华大学出版社, 1995: 1-181.