矿山选厂设备易损件参数化设计 | ![]() |
2. 南方冶金学院, 赣州 341000;
3. 江西气体压缩机厂, 赣州 341000;
4. 德兴铜矿, 德兴 334224
2. ${affiVo.addressStrEn};
3. ${affiVo.addressStrEn};
4. ${affiVo.addressStrEn}
矿山选厂设备的维修、易损件制造与更换, 要求快速、准确、可靠, 以保证生产的要求。传统的易损件设计、绘图时间长、重复劳动工作量大, 耽误时间和生产。随着计算机技术的高速发展, 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程序调试过程中,有时找错误较麻烦。因此,可自定义函数内的实行跟踪找错误。对每个程序内的结构段落后加一句:
(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.
|