本文以对玻壳模具自动化设计的联合开发为例,介绍了运用知识熔接技术(UG/KF)、MenuScript和UIStyler提高设计效率和质量的方法。
在实际工作中,每个行业都有各自的专有知识,每个产品设计工程师或模具设计工程师都有自己的经验,并且在一系列的设计过程中有许多工作都是重复的。UG/KF(知识熔接技术)可以将各自专有的产品知识、工作经验和一些重复性的工作直接构建在产品模型中,使产品的数字化模型提高到一个新的水平,实现知识的再利用,减少重复性工作。运用MenuScript和UIStyler可使程序实现界面化和交互化,从而提高工作效率,避免人为的设计错误,使复杂的设计工作智能化。
一、知识熔接技术(UG/KF)
工程知识库KBE是知识再利用的基础,涉及到充分利用经验、专家意见和其他有关用户终端产品的生命周期的各个方面的信息。关于知识库中的知识,可以多种形式存在,如电子表格、记事本、工程规则、相应用户软件和有关如个性特征规则的人工判断方式。由于能够建立和参考这些知识库,它们成为了工程过程控制的工程知识库(KBE)。完整的KBE技术必须具有以下能力:
(1)知识库的存取:知识库有很多形式,固定形式的有数据库方式、电子表格方式,还有其他可执行的外部进程结果。KBE系统必须能够利用这些知识库,因而KBE的易存取性、可靠性和开放性成为重要的因素。
(2)知识规则:基本的KBE是能够把知识引入到CAD系统的规则。所谓的规则就是能够根据所输入参数完成相应操作的文本描述。规则必须能够参考各种各样的知识库。为了满足逻辑上的条件,规则在运算完后必须能得到一个值。规则的值可以是一个模型特征、一个计算出的参数值、一个特定选取的组件或者是关于造价、重量的警告信息。
(3)知识的扩展:知识库工程可以不断地延伸。
为了使KBE技术能够满足知识再利用的要求,UG NX提供了其他CAD系统无法比拟的构造全息模型的功能。KF就是一种响应KBE技术、并允许UG NX利用工程知识库驱动工程规则完成强有力的应用的高级技术。
UG知识熔接技术是通过获得和操纵工程规则、设计意图,让用户开发出应用系统,通过工程规则控制UG的对象、超越单纯的几何模型。运用UG/KF,工程师和设计师能够构造完全可重复使用的知识库,从而实现标准零件库的建立和设计的自动化。
在UG/KF中是通过属性参数(Attribute)、类(Class)和函数(Function)来实施工作的,也就是把工作内容和思路用它们表达出来,用记事本写成纯文本文件。UG系统本身提供了大量的类(Class)和函数(Function),用户也可以用KF语言编写自己的类和函数来调用其他的类和函数,或被调用。
知识熔接技术(KF)可以读取数据文件,使用数据文件中的数据驱动程序。在UG/KF中用ug_spreadsheet类可以读取UG中的不同模式的电子表格数据,用Input/Output Function的相应函数可以读取和写存扩展名为TXT或DAT的数据文件等。
二、MenuScript和UIStyler
UG提供的MenuScript和UIStyler两个模块用于开发下拉菜单、工具条和对话框,实现UG二次开发的应用程序界面化。
MenuScript是UG/OPEN的一个重要组成部分,它可以编辑和创建UG的下拉菜单和工具条。MenuScript可以通过编辑纯文本的Menu文件(菜单脚本文件,文件的扩展名为.men)创建或修改UG的主菜单及下拉菜单,而不用编写C语言程序。在脚本文件中,相应按钮(Button)的ACTIONS为相应的DFA文件。脚本文件的格式如下:
VERSION 120
EDIT UG_GATEWAY_MAIN_ MENUBAR
…
MENU Menu-1
…
BUTTON Button-1
LABEL 凹模设计
ACTIONS myclass.dfa
…
END OF MENU
UG/OPEN UIStyler模块提供了强大的制作UG风格对话框窗口的功能。UIStyler可以利用可视化环境快速生成对话框,UIStyler还提供属性编辑器,允许设置并修改控件属性。UIStyler产生的对话框可以在MenuScript中被调用,因此可以实现在UG菜单上调用UIStyler产生的对话框,从而将用户应用程序和UG完全融合。
三、对玻壳模具自动化设计的联合开发
根据对玻壳模具结构及其成型曲面的分析和设计数据的处理,运用UG中的知识熔接技术(UG/KF),把玻壳模具的设计方法、设计步骤和设计计算融合在一起,从而生成玻壳模具自动设计的UG/KF二次开发应用程序。联合开发的步骤为:用UG/KF编写DFA程序→编写Menuscript脚本文件→用UIStyler生成对话框→重新启动UG。
下面以玻壳锥凹模为例,介绍UG/KF、Menuscript和UIStyler对玻壳模具自动化设计的联合开发。
运用UG/KF编写的锥凹模自动设计程序如下:
#! UG/KF 19.0
DefClass:Funnel_Bottom_Mold (ug_base_part);
(string modifiable Parameter)Funnel_Glass_
Out_Surface_DataFile:
"e:\rqh\data_files\datafile_outter.prt";
(child) ss:{
class; ug_spreadsheet;
part_file; Funnel_Glass_Out_Surface
_DataFile:;
};
(list modifiable)range_number:ss:
ask_named_range:("iso_range");
(list modifiable) body_range_number: ss:ask_named_range:("body_range");
(number modifiable parameter) Funnel_
Bottom_MM_Long_Axis_Contraction: 1.90;
(number modifiable parameter) Funnel_
Bottom_MM_Diagonal_Axis_Contraction: 2.35;
(number modifiable parameter) Funnel_
Bottom_MM_Short_Axis_Contraction: 1.65;
(number modifiable parameter) Funnel_
Bottom_Thickness: 35;
(number modifiable parameter) Funnel_
Bottom_Base_Diameter: if(ss:ask_number:(2,4)/12.7>=20)then
275 else 250;
(number modifiable ) rad: Funnel_Bottom_
Base_Diameter:/2;
(number modifiable ) Funnel_Bottom_Tottal
_Height: ceiling(ss:ask_number:(2,1)
+5);
(number modifiable parameter) milling_part
_height: 3.5;
(Child) out:{
Class,botom_mold_sheet_out_simple;
datafile,Funnel_Glass_Out_Surface_
DataFile:;
value_long_axie,Funnel_Bottom_MM_
Long_Axis_Contraction:;
value_diagonal_axie,Funnel_Bottom_MM_
Diagonal_Axis_Contraction:;
value_short_axie,Funnel_Bottom_MM_
Short_Axis_Contraction:;
milling_part_height,milling_part_
height:;
};
(number modifiable) Leng:ss:ask_number:
(2,2)+Funnel_Bottom_Thickness:+10;
(number modifiable ) Wid: ss:ask_number:
(2,6)+Funnel_Bottom_Thickness:+10;
(child) block:{
class, ug_block ;
Length, Leng:;
Width, Wid:;
Height, ss:ask_number:(2,1);
Origin, Point(0,0,0);
X_Axis, Vector(1,0,0);
Y_Axis, Vector(0,1,0);
};
(child) out_offset:{
class, ug_offset_sheet_body ;
Face,{nth(1,ug_body_askFaces(out:
sheet_for_out:))};
Distance,-Funnel_Bottom_Thickness:;
Tolerances,{0.254,0.0254,0.0254};
};
(child)extend_out_offset:{
class, ug_extended_sheet;
Face,{nth(1,ug_body_askFaces(out_
offset:))};
Option, Tangent_Length;
Start_Object, {nth(1,ug_body_
askEdgeClosestToPoint(out_
offset:, Point(ss:ask_number:(2,4)
*cos(36.87), ss:ask_number:(2,4)*sin(36.87), ss:ask_number:(2,1))))};
Parameters, {10.0};
Tolerances, {0.0254,0.0254,0.0254};
};
(child)sew_surface:{
class, ug_sew_sheet;
Target_sheet,{out_offset:};
Tool_sheets,{extend_out_offset:};
Tolerances, {0.0254,0.0254,0.0254};
};
(child) out_offset_layer_control:{
class, ug_body; feature, {sew_surface:};
layer, 21;
};
(child) trim_body_1:{
class, ug_trim_body;
Target, {block:};
Trimming_Geometries,sew_surface:};
Retained_Face, {};
Reverse?, true;
};
…
…
…
(child)Bottom_mold_color_control:{
class, ug_body;
Feature,{Funnel_Bottom_With
_KeyWay:};
color, 12;
};
运用Menuscript和UIStyler生成的菜单和对话框如图1所示。
图1 菜单和对话框 在图1所示菜单栏中选择 “锥模具设计系统”→“锥模具设计”→“凹模设计”来调用锥凹模自动设计程序,会弹出“凹模设计参数”对话框。在该对话框中输入相应的参数后,单击“OK”或“APPLY”,程序会自动进行设计数据计算,完成锥凹模的设计并自动生成其三维造型,如图2所示。
图2 锥凹模的三维造型 四、结束语
运用知识熔接技术(UG/KF)、MenuScript和UIStyler可以实现系列化产品的自动化设计和标准零件库的建立,从而减少结构相同或相似的零件的重复建模,提高了设计效率和质量。
(end)
|