3DM参数化设计系统构建语言 一、描述语言的意义 目的在于建立柔性化的专业 CAD/CAM系统,如模具 CADICAM系统,企业可以针对自身的情况 随时对系统进行改造,包括设计规则、标准和模型架构等。主要思想如下 CADICAM=解释器+描述语言代码+参数化数据模型 其中 1) CAD/CAM系统固定部分:解释器。 对于不同的 CAD/CAM系统可用相同的解释器 2) CAD/CAM系统柔性部分:描述语言代码+参数化数据模型。 对于不同的 CAD/CAM系统需要编写不同的描述语言代码,并且建立相应的参数化数据模型 3)描述语言代码的生成方式: 人工直接书写描述语言代码 草图和符号识别。将草图和符号转换为描述语言代码 语音识别。将语音转换为描述语言代码。 架成型序分口套|拉料杆杆|滑块机构|料指杆热流通 模架 板厚度 A厚度10 加工工艺
3DM 参数化设计系统构建语言 一、描述语言的意义 目的在于建立柔性化的专业 CAD/CAM 系统,如模具 CAD/CAM 系统,企业可以针对自身的情况 随时对系统进行改造,包括设计规则、标准和模型架构等。主要思想如下: CAD/CAM = 解释器 + 描述语言代码 + 参数化数据模型 其中: 1) CAD/CAM 系统固定部分:解释器。 对于不同的 CAD/CAM 系统可用相同的解释器。 2) CAD/CAM 系统柔性部分:描述语言代码 + 参数化数据模型。 对于不同的 CAD/CAM 系统需要编写不同的描述语言代码,并且建立相应的参数化数据模型。 3) 描述语言代码的生成方式: z 人工直接书写描述语言代码。 z 草图和符号识别。将草图和符号转换为描述语言代码。 z 语音识别。将语音转换为描述语言代码。 图 1
二、体系架构 在工作目录下 SystemDef3dm文件描述构型系统的总体架构。图1系统架构如下所述 System Def SYSNAME("注塑模机构设计系统[基于3DM参数化构型语言]",8) SubModel(Moldbase "模架 加工工艺", PlatForm), SubModel (Part 成型部分","加工工艺",Part), SubModel( SprueBushing,"浇口套","加工工艺",O) SubModel( RunnerLockPin"拉料杆","加工工艺",0) SubModel (mandril "顶杆 加工工艺",0) SubModel( SidelongPin,"滑块机构""加工工艺",0) SubModel (Lifter. 斜滑杆","加工工艺",0) SubModel( Hotrunner,"热流道”,"加工工艺",0), 其中 SYSNAME函数描述了系统名称为"E- proms:注塑模机构设计系统",共计8个页面。 SubModel函数每个页面所需数据资源在系统工作路径下的子目录名称、页面名称、页面中数据栅 格表名称和页面类型 个子目录对应一个页面且对应一个子目录下的子系统,所以系统文件架构如下:
二、体系架构 在工作目录下 SystemDef.3dm 文件描述构型系统的总体架构。图 1 系统架构如下所述: SystemDef { SYSNAME ("注塑模机构设计系统[基于 3DM 参数化构型语言]",8); SubModel (Moldbase, "模架", "加工工艺", PlatForm); SubModel (Part, "成型部分","加工工艺", Part); SubModel (SprueBushing, "浇口套", "加工工艺", 0); SubModel (RunnerLockPin,"拉料杆", "加工工艺", 0); SubModel (Mandril, "顶杆", "加工工艺", 0); SubModel (SidelongPin, "滑块机构","加工工艺", 0); SubModel (Lifter, "斜滑杆", "加工工艺", 0); SubModel (HotRunner, "热流道", "加工工艺", 0); } 其中: SYSNAME 函数描述了系统名称为"E-proms: 注塑模机构设计系统",共计 8 个页面。 SubModel 函数每个页面所需数据资源在系统工作路径下的子目录名称、页面名称、页面中数据栅 格表名称和页面类型。 一个子目录对应一个页面且对应一个子目录下的子系统,所以系统文件架构如下:
模架子系统 Moldbase 3dm 成型子系统 Part. 3d 浇口套子系统 Sprue Bushing 3dm 拉料杆子系统 总体架构描述 RunnerLock Pin 3dm SystemDef3dm 顶杆子系统 Mandril 3dm 滑块机构子系统 SidelongPin 3dm 斜滑杆子系统 Lifter 3dm 热流道子系统 HotRunner 3d 螺纹子系统 Unscrew 3dm 图2系统架构 通用命令与函数 1局部数值型变量定义命令(Var Var n=expr; 其中 n:局部数值型变量 expr:表达式(变量、数据、表达式或函数) 例如 arHl@草图1@ RunnerlockPin l part= Combox ve(2)
模架子系统 Moldbase.3dm 成型子系统 Part.3dm 浇口套子系统 SprueBushing.3dm 拉料杆子系统 RunnerLockPin.3dm 图 2 系统架构 三、通用命令与函数 1.局部数值型变量定义命令(Var) 局部数值型变量。 据、表达式或函数)。 H1@草图 1@RunnerLockPin_1.Part = ComboxVal(2); Var n = expr; 其中: n: expr:表达式(变量、数 例如: Var 总体架构描述 SystemDef.3dm 顶杆子系统 Mandril.3dm 滑块机构子系统 SidelongPin.3dm 斜滑杆子系统 Lifter.3dm 热流道子系统 HotRunner.3d 螺纹子系统 Unscrew.3dm
2局部字符串型变量定义命令(Str) Str s=expr; 其中 s:字符串型变量 expr:字符串常量或字符串函数。 例如 Str Btn Type= Button Valo 3环境变量(全局数值型变量)定义命令(Env) Env n= expr, 其中 n:数值型变量。 expr:表达式(变量、数据、表达式或函数) 环境变量可以为各子系统所应用。 例如 Env TCP T= TCP T@Base Extrude(@top clamp Part; 4赋值命令(=) n-expr 其中 n:局部数值型变量。 expr:表达式(变量、数据、表达式或函数)。 例如 HI@T 1@RunnerLockPin 1 Part=B T+C T+SP T+B02 T-EPI T: 5平方根函数(Sqrt) Sart(expr): 其中 expr:表达式(变量、数据、表达式或函数) 该函数返回expr的平方根。 6字符串比较函数( Strequ, Strequ) StrEqul( sl, S2 StrEqu( sl, S2); 其中 sl,s2:字符串 1和s2相同时返回1;否则返回0。其中 Strequl忽略大小写。 5条件判别命令(f. elsei.else) 格式如下 if(条件表达式)
2.局部字符串型变量定义命令(Str) 符串型变量。 字符串函数。 tnType = ButtonVal(); .环境变量(全局数值型变量)定义命令(Env) 数值型变量。 、数据、表达式或函数)。 例如 TCP_T = TCP_T@Base_Extrude@top_clamp.Part; .赋值命令(=) 局部数值型变量。 据、表达式或函数)。 草图 1@RunnerLockPin_1.Part = B_T + C_T + SP_T + B02_T - EP1_T; .平方根函数(Sqrt) r:表达式(变量、数据、表达式或函数)。 .字符串比较函数(StrEquI, StrEqu) s2:字符串。 1;否则返回 0。其中 StrEquI 忽略大小写。 .条件判别命令(if…elseif…else) ) Str s = expr; 其中: s:字 expr:字符串常量或 例如: Str B 3 Env n = expr; 其中: n: expr:表达式(变量 环境变量可以为各子系统所应用。 : Env 4 n = expr; 其中: n: expr:表达式(变量、数 例如: H1@ 5 Sqrt(expr); 其中: exp 该函数返回 expr 的平方根。 6 StrEquI( s1, s2 ); StrEqu( s1, s2 ); 其中: s1, s1 和 s2 相同时返回 5 格式如下: if(条件表达式 { }
elseif(条件表达式) 条件表达式中可以使用条件逻辑运算符包括 等于 !=不等于 大于 <小于 大于等于 <=小于等于 &逻辑与 逻辑或 逻辑非(取反) 例如 if( Strequlr( Btn Type,"构型")| StrEqul( Btn Type,"更新"))& StrEqul( Asm Type,"型式1") if( StrEqu山( Btn Type,"构型")) InsertASM("RunnerLock Pinl","RunnerLockPin 1") elseif( StrEqul( Btn Type,"更新")) UpdateASMO Var HI@+k l@RunnerLock Pin 1. Part =Combox Val ( 2); varH2@草图1@ RunnerLockPin1Pat= Combox val(3); Var DI@Rk 1@RunnerLock Pin 1. Part =Combox Val(4); VarD2@草图1@ RunnerLockPin 1 Part= Combox val(5) varR@草图1@ RunnerLockPin1Pant= Combox Val(6) Var H3@--K 2(@ RunnerLockPin 1 Part =Combox Val(7) VarR2@草图2@ RunnerLockPin1Pat= Combox Val(8) HI@R I@RunnerLockPin 1 Part=B T+C T+SP T+B02T-EPl T SetComBox Val(2, HI@*K l@RunnerLockPin 1 Part); Relation(XY, PLANE", Ejector2 top, "PLANE",0, 1, 0) Relation(AXIs O, "AXIS",AXIs O, "AXIS", 0,0,0);
elseif(条件表达式) 件表达式中可以使用条件逻辑运算符包括: 于 取反) quI( BtnType, "构型" ) | StrEquI( BtnType, "更新" ) ) & StrEquI( AsmType, "型式 1" ) ) if( StrEquI( BtnType, "构型" ) ) rtASM("RunnerLockPin1","RunnerLockPin_1"); if( StrEquI( BtnType, "更新" ) ) pdateASM(); H1@草图 1@RunnerLockPin_1.Part = ComboxVal(2); _T - EP1_T; { } … else { } 条 == 等于 != 不等于 > 大于 = 大于等 <= 小于等于 & 逻辑与 | 逻辑或 ! 逻辑非( 例如: if( ( StrE { { Inse } else { U } Var Var H2@草图 1@RunnerLockPin_1.Part = ComboxVal(3); Var D1@草图 1@RunnerLockPin_1.Part = ComboxVal(4); Var D2@草图 1@RunnerLockPin_1.Part = ComboxVal(5); Var R1@草图 1@RunnerLockPin_1.Part = ComboxVal(6); Var H3@草图 2@RunnerLockPin_1.Part = ComboxVal(7); Var R2@草图 2@RunnerLockPin_1.Part = ComboxVal(8); H1@草图 1@RunnerLockPin_1.Part = B_T + C_T + SP_T + B02 SetComBoxVal(2,H1@草图 1@RunnerLockPin_1.Part); Relation(XY,"PLANE",Ejector2_top,"PLANE",0,1,0); Relation(AXIS_O,"AXIS",AXIS_O,"AXIS",0,0,0); }
四、界面定义段(Pane段) 界面定义段为下列{}之间的描述代码 Panel 1标签定义函数abe) ; 其中 x:当前界面元素的x坐标。 y:当前界面元素的y坐标 text:当前界面元素的显示字符串。 3DM语言每个页面最多支持16个 label元素。如果x=y=0, label元素在默认位置。 2列表框定义函数( combox(x, y, text(sl, S2,...., sn 其中 x:当前界面元素的x坐标。 y:当前界面元素的y坐标 text:当前界面元素的显示字符串,如果text=sl。 sls2,n:列表框各行字符串。 3DM语言每个页面最多支持16个 combox元素。如果x=y=0, combox元素在默认位置 3按钮定义函数( button) button( type, x, y, text) 其中 type:按钮类型,它决定按钮的行为。 x:当前界面元素的ⅹ坐标 y:当前界面元素的y坐标 text:当前界面元素的显示字符串。 3DM语言每个页面最多支持4个 button元素。如果x=y=0, button元素在默认位置 4数据栅格表定义函数( datagrid) Data Grid(IDI: s1, ID2: S2 IDn sn 其中: IDID2,,IDn:各栅格列ID,如果text=sl sl,s2,sn:各栅格列标题字符串。 3DM语言每个页面仅支持1个 Data grid元素,位于页面底部。 5列表框链接数据集列函数( DataSetLink) DataSetLink(combox no, tab: TabName, row: RowName)
四、界面定义段(Panel 段) 界面定义段为下列{}之间的描述代码。 Panel { …… } 1.标签定义函数(label) label (x, y, text); 其中: x:当前界面元素的 x 坐标。 y:当前界面元素的 y 坐标。 text:当前界面元素的显示字符串。 3DM 语言每个页面最多支持 16 个 label 元素。如果 x=y=0,label 元素在默认位置。 2.列表框定义函数(combox) combox (x, y, text)={s1, s2,……, sn}; 其中: x:当前界面元素的 x 坐标。 y:当前界面元素的 y 坐标。 text:当前界面元素的显示字符串,如果 text=s1。 s1,s2,…sn:列表框各行字符串。 3DM 语言每个页面最多支持 16 个 combox 元素。如果 x=y=0,combox 元素在默认位置。 3.按钮定义函数(button) button(type, x, y, text); 其中: type:按钮类型,它决定按钮的行为。 x:当前界面元素的 x 坐标。 y:当前界面元素的 y 坐标。 text:当前界面元素的显示字符串。 3DM 语言每个页面最多支持 4 个 button 元素。如果 x=y=0,button 元素在默认位置。 4.数据栅格表定义函数(datagrid) DataGrid(ID1:s1, ID2:s2,……, IDn:sn); 其中: ID1,ID2,…IDn:各栅格列 ID,如果 text=s1。 s1,s2,…sn:各栅格列标题字符串。 3DM 语言每个页面仅支持 1 个 DataGrid 元素,位于页面底部。 5.列表框链接数据集列函数(DataSetLink) DataSetLink(combox:no, tab:TabName, row:RowName);
其中: no:标识列表框序号的字符串,例如,”2”为第2个列表框元素 TabName:所链接数据集表名。 RowName:所链接数据集列名 6列表框同步函数( EventLink) EventLink(combox, no, " syn" Sl, S2,...., sn) EventLink(combox, no, image ") EventLink(combox, no, " refresh") 其中: yn":no同步驱动sl,s2,sn标识的列表框 " Image":显示以n列表框内容字符串为主文件名的jpg文件,例如 MB LKM Al. jpg。 refresh":当no列表框发生内容时,刷新界面,可以根据当前情况重读数据源。 no:标识发出同步信号的列表框的序号字符串,例如,”2”为第2个列表框元素。 sl,s2,.sn:标识被同步列表框序号的字符串 以下代码为描述图1界面的实例 Label(0.0,类型"); Combox(0,,"MB LKM Al")=("MB LKM Al", MB LKM BI","MB LKM CI","MB LKM DI"); Label(00,"规格:" Combox(0,0,")=("); Label(0,0,A板厚度:") (0,0,")=(") Label(0,0,"B板厚度") Combox(0,0,")=(") Label(0,0,"C板厚度") Combox(0,0,")=(") Data Grid(MIL"铣床加工hr:" LATHE:"车床加工h",DRIL钻床加工hr"CNCl:"CNC粗加工 hr" GRIND:"磨床加工hr:"CNC2:"CNC精加工hr",WCUT"线切割加工h",EDM"EDM加工 hr" POLISH:"抛光加工hr") Button(0,0,"构型 Butn(0,0,"更新") Butn(0,0,"删除") Button(0,0,"保存"), DataSetLink(combox: 2, tab: fix plate", row."SPEC") Data SetLink(combox 3, tab: fix plate", row. "A T") DataSetLink(combox: " 4", tab: " move plate,row: B T"); DataSetLink(combox: "5", tab: move plate, row: " C T"); EventLink(combox, 2,"syn, " 3,4,5") EventLink(combox, 1", "image") EventLink(combox, "1", refresh")
其中: no:标识列表框序号的字符串,例如,”2”为第 2 个列表框元素。 TabName:所链接数据集表名。 RowName:所链接数据集列名。 6.列表框同步函数(EventLink) EventLink(combox, no,"syn",s1,s2,……, sn); EventLink(combox, no,"image"); EventLink(combox, no,"refresh"); 其中: "syn":no 同步驱动 s1,s2,…sn 标识的列表框。 " image":显示以 no 列表框内容字符串为主文件名的 jpg 文件,例如 MB_LKM_AI.jpg。 " refresh":当 no 列表框发生内容时,刷新界面,可以根据当前情况重读数据源。 no:标识发出同步信号的列表框的序号字符串,例如,”2”为第 2 个列表框元素。 s1,s2,…sn:标识被同步列表框序号的字符串。 以下代码为描述图 1 界面的实例: Label (0,0,"类型:"); Combox(0,0, "MB_LKM_AI") = ("MB_LKM_AI","MB_LKM_BI","MB_LKM_CI","MB_LKM_DI"); Label (0,0,"规格:"); Combox(0,0,"") = (""); Label (0,0,"A 板厚度:") Combox(0,0,"") = (""); Label (0,0,"B 板厚度:") Combox(0,0,"") = (""); Label (0,0,"C 板厚度:") Combox(0,0,"") = (""); DataGrid(MILL:"铣床加工 hr.",LATHE:"车床加工 hr.",DRILL:"钻床加工 hr.",CNC1:"CNC 粗加工 hr.",GRIND:" 磨床加工 hr.",CNC2:"CNC 精加工 hr.",WCUT:" 线切割加工 hr.",EDM:"EDM 加 工 hr.",POLISH:"抛光加工 hr."); Button(0,0,"构型"); Button(0,0,"更新"); Button(0,0,"删除"); Button(0,0,"保存"); DataSetLink(combox:"2", tab:"fix_plate", row:"SPEC"); DataSetLink(combox:"3", tab:"fix_plate", row:"A_T"); DataSetLink(combox:"4", tab:"move_plate", row:"B_T"); DataSetLink(combox:"5", tab:"move_plate", row:"C_T"); EventLink(combox,"2","syn","3","4","5"); EventLink(combox,"1","image"); EventLink(combox,"1","refresh");
五、数据源定义段( Data source段) 数据源定义段为下列{}之间的描述代码。 Data Source 数据集定义函数( DataSet) DataSet(TabName RowName1. s12s13.. In RowName2. s22.s23.. s2n: RowNamem, s22, s23,.. smn 其中 TabName:标识列数据集表名的字符串,例如," fix plate”。 RowName1, RowNamem:数据集表所属列名,为当前列首元素。 s12,s13,,sln,,22,s23,smn:数据集其它元素。 以下实例定义了一个数据集表 fix plate,包括属于该表的,名为SPEC,TCPW,TCPL,D4, TCP TM W, ML,AT, Eyebolt Diameter, Eyebolt Depth,D3的表列。 DataSet("fix plate SPEC,1515,1520,1525,1820,1823,1825,2020,2023,2025,2030 TCPW200,200,200,230,230,230,250.250,250,250 TCPL,150,200,250,200,230,250,200,230,250,300; D4,10,10,10,10,10,10,10,10,10,10 TCPT,20,20,20,20,20,20,25,25,25,25 MW,150,150,150,180,180,180,200,200,200,200 ML,150,200,250,200,230,250,200,230,250,300, AT404040.50.50.50.50.50.50.50 Eyebolt Diameter,10.10,10,12,12,12,12,12,12,12 Eyebolt Depth,18,18,18,216,216,216,21,21,21,21; D360606060606060606060") 六、事件定义段( Event段 事件定义段为下列{}之间的描述代码 Event
五、数据源定义段(DataSource 段) 数据源定义段为下列{}之间的描述代码。 DataSource { …… } 数据集定义函数(DataSet) DataSet (TabName: RowName1, s12,s13,…s1n; RowName2, s22,s23,…s2n; …… RowNamem, s22,s23,…smn;); 其中: TabName:标识列数据集表名的字符串,例如,”fix_plate”。 RowName1,……, RowNamem:数据集表所属列名,为当前列首元素。 s12,s13,…s1n,…, s22,s23,…smn:数据集其它元素。 以下实例定义了一个数据集表 fix_plate,包括属于该表的,名为 SPEC,TCP_W,TCP_L,D4,TCP_T,M_W, M_L,A_T, Eyebolt_Diameter, Eyebolt_Depth,D3 的表列。 DataSet("fix_plate: SPEC,1515,1520,1525,1820,1823,1825,2020,2023,2025,2030; TCP_W,200,200,200,230,230,230,250,250,250,250; TCP_L,150,200,250,200,230,250,200,230,250,300; D4,10,10,10,10,10,10,10,10,10,10; TCP_T,20,20,20,20,20,20,25,25,25,25; M_W,150,150,150,180,180,180,200,200,200,200; M_L,150,200,250,200,230,250,200,230,250,300; A_T,40,40,40,50,50,50,50,50,50,50; Eyebolt_Diameter,10,10,10,12,12,12,12,12,12,12; Eyebolt_Depth,18,18,18,21.6,21.6,21.6,21,21,21,21; D3,60,60,60,60,60,60,60,60,60,60"); 六、事件定义段(Event 段) 事件定义段为下列{}之间的描述代码。 Event { ……. }
1当前按钮字符串读取函数( Button va) Button Val o 其中 该函数返回当前按钮字符串名称 2复选框数值读取函数( Combox Val) Combox val(n) 其中: n:复选框序号(整数)。 该函数返回n所指定复选框的数值;对于字符串型变量返回n所指定复选框的字符串 3复选框数值设置函数( SetCom Box Val) Set ComBox Val(n, expr) 其中 n:复选框序号(整数) expr:表达式(变量、数据、表达式或函数) 该函数设置n所指定复选框的数值。 4数据集列号读取函数( DataSet Rowno) DataSetRowNo(TabName, RowName, Row Val) 其中 no:标识列表框序号的字符串,例如,”2”为第2个列表框元素。 TabName:数据集表名。 RowName:数据集表所属列名。 CompStr:比较字符串,为”=">","<","≥=","<="之一。 Row Val:所给列比较值。 该函数根据数据集表 TabName和其所属列 RowName,将 Row Val与列中各项之值进行比较(比较方 式由比较字符串 Comp Str决定),返回比较成功后的列序号。 5.数据集列号读取函数 Data Set Val By Name No) DataSet Val ByName No(TabName, RowName, RowNo 其中 TabName:数据集表名 RowName:数据集表所属列名。 RowNo:所给列号 该函数根据数据集表 Tabname和其所属列名 RowName及列号 RowNo,返回对应的列值。 6.操作子目录设置函数( SubPath) SubPath(PathName) 其中 PathName:下级目录名字符串。 该函数改变操作子目录
1.当前按钮字符串读取函数(ButtonVal) ButtonVal (); 其中: 该函数返回当前按钮字符串名称。 2.复选框数值读取函数(ComboxVal) ComboxVal(n); 其中: n:复选框序号(整数)。 该函数返回 n 所指定复选框的数值;对于字符串型变量返回 n 所指定复选框的字符串。 3.复选框数值设置函数(SetComBoxVal) SetComBoxVal(n,expr); 其中: n:复选框序号(整数)。 expr:表达式(变量、数据、表达式或函数)。 该函数设置 n 所指定复选框的数值。 4.数据集列号读取函数(DataSetRowNo) DataSetRowNo(TabName, RowName,"=", RowVal); 其中: no:标识列表框序号的字符串,例如,”2”为第 2 个列表框元素。 TabName:数据集表名。 RowName:数据集表所属列名。 CompStr:比较字符串,为"=",">","=","<="之一。 RowVal:所给列比较值。 该函数根据数据集表 TabName 和其所属列 RowName,将 RowVal 与列中各项之值进行比较(比较方 式由比较字符串 CompStr 决定),返回比较成功后的列序号。 5. 数据集列号读取函数(DataSetVal_ByName_No) DataSetVal_ByName_No(TabName, RowName,RowNo); 其中: TabName:数据集表名。 RowName:数据集表所属列名。 RowNo:所给列号。 该函数根据数据集表 TabName 和其所属列名 RowName 及列号 RowNo,返回对应的列值。 6. 操作子目录设置函数(SubPath) SubPath(PathName); 其中: PathName:下级目录名字符串。 该函数改变操作子目录
7.子模型插入函数( nsertASM) nsertASM(ModelName) 其中 ModelName:由装配体主文件名和零件主文件名组成的字符串。对于主装配体模型( platform),后 者可省略。其格式为:"装配体主文件名,零件主文件名1,零件主文件名2,,零件主文件名n"。 该函数插入主装配体或子装配模型 主装配体模型实例: InsertASM(" MB LKM AL") 子装配体模型实例: InsertASM( nsertASM(" Runnerlock. runnerlock Pin1") 以上实例中 MB LKM A和 RunnerLockPinl为装配体主文件名, RunnerLockPin1为零件主文件 名 8.子模型更新函数( UpdateASM) UpdateASMO 其中 该函数更新子模型 9.子模型删除函数( DeleteASM DeleteASMO 其中 该函数删除子模型。 10.保存函数( SaveAS) SaveASMO: 其中 该函数保存模型。 11关系定义函数( Relation) Relation(SubDatum Var, SubDatum Type Str, Main Datum Var Main Datum Type Str RelationS Direction 其中 SubDatum var:子装配基准变量 SubDatum Type Str:子装配基准类型字符串。基准类型字符串包括" PLANE","AXIS","FACE"," POINT", " EXTSKETCHPOINT"等。 Main Datum var:主装配基准变量。 Main Datum TypeStr:主装配基准类型字符串 Relation Type:配合类型:1:重点;5:距离。 Direction:配合方向。1:正方向:-1:反方向 Distance:距离。当 Relation Type为5,即距离配合时, Distance起作用,公制下单位为mm。 例如 Relation(XY, PLANE ", Ejector2 top, "PLANE", 0, 1,0); Relation(AXIS O, "AXIS", AXIs O, "AXIS, 0,0,0);
7. 子模型插入函数(InsertASM) InsertASM(ModelName); 其中: ModelName:由装配体主文件名和零件主文件名组成的字符串。对于主装配体模型(platform),后 者可省略。其格式为:"装配体主文件名, 零件主文件名 1, 零件主文件名 2,…, 零件主文件名 n"。 该函数插入主装配体或子装配模型。 主装配体模型实例:InsertASM("MB_LKM_AI"); 子装配体模型实例:InsertASM(InsertASM("RunnerLockPin1,RunnerLockPin_1"); 以上实例中 MB_LKM_AI 和 RunnerLockPin1 为装配体主文件名,RunnerLockPin_1 为零件主文件 名。 8. 子模型更新函数(UpdateASM) UpdateASM(); 其中: 该函数更新子模型。 9. 子模型删除函数(DeleteASM) DeleteASM(); 其中: 该函数删除子模型。 10. 保存函数(SaveASM) SaveASM(); 其中: 该函数保存模型。 11.关系定义函数(Relation) Relation(SubDatumVar, SubDatumTypeStr, MainDatumVar, MainDatumTypeStr, RelationType, Direction, Distance); 其中: SubDatumVar:子装配基准变量。 SubDatumTypeStr:子装配基准类型字符串。基准类型字符串包括"PLANE","AXIS","FACE","POINT", "EXTSKETCHPOINT"等。 MainDatumVar:主装配基准变量。 MainDatumTypeStr:主装配基准类型字符串。 RelationType:配合类型:1:重点;5:距离。 Direction:配合方向。1:正方向;-1:反方向。 Distance:距离。当 RelationType 为 5,即距离配合时,Distance 起作用,公制下单位为 mm。 例如: Relation(XY,"PLANE",Ejector2_top,"PLANE",0,1,0); Relation(AXIS_O,"AXIS",AXIS_O,"AXIS",0,0,0);