UG外挂开发教程2_GRIP基本语法
- 格式:ppt
- 大小:1.77 MB
- 文档页数:14
UG/Open Grip介绍1.结构:NUMBER/A,B,C,NUM1(10),NUM2(10)(10)ENTITY/PN,LN,CR,SOLID,BS,P(100),L(10)STRING/FNAME(50)正文HALT2.编写过程:环境:Notepad源程序: .grs 编译文件:*.gri 链接文件(可执行文件):*.grx编译环境:Unigraphics V14.0 ---- UG Open GRIP2 --- 编译3 --- 链接4 --- 更改路径6 --- 改变结果输出形式(1 —屏幕输出;3 --- 文件输出)3.注意点:3.1$$ :是注释符;3.2编写的代码一行不得超过80个字符,可用$来进行换行,但$必须接在+-*/,符号下;3.3画图命令的一般格式:实体变量名=函数名/数字、变量名、操作符;3.4涉及系统的参数一般应用到的符号:&3.5定义的变量名不得超过6位,例NUMBER1和NUMBER2系统会认为是同一个变量;3.6函数传递的参数不得超过25个;3.7三角函数和反三角函数是对角度进行运算的;3.8一般数字型变量可以不必定义,系统对未定义的变量默认为数字型;3.9程序结束,必须用HALT结尾;函数结束,必须用RETURN结尾;3.10用单引号表示字符串;3.11一般程序用大写英文编写;3.12没有正切三角运算符;3.13主程序必须链接成*.grx,子程序只须编译成*.gri;3.14连续数组变量用.. 表示,例PN=POINT/NUM(1..3)4.运算符:数学运算符:SQRTF ( )、LOGF ( )、ABSF ( )、INTF ( )、MODF ( )、MINF ( )、MAXF ( )、SINF ( )、COSF ( )、ASINF ( )、ACOSF ( )、ATANF ( );逻辑运算符:= =、<>、<、>、<=、>=、NOT、AND、OR;5.命令组:6.实例:6.1 二维作图实例:NUMBER/NUM(3)ENTITY/PN(5),LN(4),CR(4),SPLN,FLT,PLNDA TA/NUM,2,2,2PN(1)=POINT/0,0,0PN(2)=POINT/1,1LN(1)=LINE/0,0,0,1,1,1LN(2)=LINE/1,1,2,2LN(3)=LINE/PN(1..2)LN(4)=LINE/PN(1),ATANGL,45PN(3)=POINT/ENDOF,YLARGE,LN(3)PN(4)=POINT/NUM(1..3)PN(5)=POINT/INTOF,LN(1),LN(2)SPLN=SPLINE/PN(1..4)CR(1)=CIRCLE/0,0,1CR(2)=CIRCLE/CENTER,PN(1),RADIUS,1,$ START,0,END,90CR(3)=CIRCLE/PN(1..3)CR(4)=CIRCLE/CENTER,PN(1),PN(2)FLT=FILLET/LN(1),LN(2),CENTER,PN(1),$ RADIUS,0.5,NOTRIMCRVTRM/LN(1),REF,PN(1),FIRST,LN(2),INT,$ PN(2), NOTRIM,STA TUS,STAT CTRIM/LN(1),1,STARTCTRIM/LN(1),-1,ENDPLN=PLANE/XYPLANHALT6.2 三维作图实例:ENTITY/SOLID(5),SOL(2)SOLID(1)=SOLEXT/LN(1..4),HEIGHT,1,$AXIS,0,0,1SOLID(2)=SOLREV/LN(1..4),ORIGIN,0,0,0,$ATANGL,360,AXIS,0,0,1SOLID(3)=UNITE/SOLID(1),WITH,SOLID(2) SOLID(4)=INTERS/SOLID(1),WITH,SOLID(2) SOLID(5)=SUBTRA/SOLID(1),WITH,SOLID(2) BLEND/SOLID(1),RADIUS,1,PN(1)SOL=SOLCUT/SOLID(1),WITH,PLN,CNT,C HALT 6.3 曲面作图实例:ENTITY/BS(3),SOLIDBS(1)=BSURF/MESH,LN(1..2),WITH,LN(3..4) BS(2)=BSURF/CURVE,LN(1..5),ENDOF,P(1..5) BS(3)=BSURF/SWPSRF,TRACRV,LN(1),LN(2),$ GENCRV,OBJSOLID=SEW/BS(1..3)HALT6.4 编辑作图实例:NUMBER/MA T(12)ENTITY/LNN,LN(5)MAT=MATRIX/TRANSL,1,1,1LN(2)=TRANSF/MAT,LN(1)MAT=MATRIX/SCALE,2,1,1LN(3)=TRANSF/MAT,LN(1)MAT=MATRIX/XYROT,45LN(4)=TRANSF/MAT,LN(1),MOVEMAT=MATRIX/MIRROR,LNNLN(5)=TRANSF/MAT,LN(1)HALT6.5 编辑坐标系实例:NUMBER/MA T(12)ENTITY/CSYS(5)&WCS=&ABSCSYS(1)=&WCSMAT=MATRIX/TRANSL,1,1,1CSYS(2)=TRANSF/MAT,CSYS(1)CSYS(3)=CSYS/LN(1),LN(2)CSYS(4)=CSYS/CSYS(1),ORIGIN,PN(1)CSYS(5)=CSYS/’TOP’HALT6.6 逻辑语句实例:6.6.1 判断语句:IFTHEN/A>NUMTEMP=AELSEIF/B>NUMTEMP=BELSETEMP=CENDIFIFTHEN/A>B AND A>CNUM=AENDIF6.6.2 跳转语句:L1:A=A+1JUMP/L1:6.6.3 循环语句:DO/L2:,I,1,10,2A=A+1L2:6.7 界面操作实例:6.7.1 选择界面:NUMBER/RESPL0:CHOOSE/’Please choose options!’,’OPTION1’,$ ’OPTION2’,RESPJUMP/L0:,TERM:,,,L1:,L2:,RESPL1:NUM=1JUMP/TERM:L2:NUM=2TERM:HALT6.7.2 参数输入界面:NUMBER/RESPL0:PARAM/’Input these values!’,’A’,NUMA,’B’,$ INT,NUMB,RESPJUMP/L0:,TERM:,,,RESPPN=POINT/NUMA,NUMBTERM:HALT6.7.3 信息输出界面:MESSG/’ERROR!’6.8 文件操作实例:6.8.1 创建新文件写数据:A=10CREATE/TXT,1,’test.txt’WRITE/1,AFILE/TXT,1FTERM/TXT,1HALT 6.8.2 从文件中读数据:FETCH/TXT,1,’test.txt’RESET/1READ/1,AFTERM/TXT,1HALT6.9 显示信息实例:PRINT/A,B,’10’,NUM(1..3)FETCH/TXT,1,’test.txt’RESET/1FPRINT/1FTERM/TXT,1NOTE/0,0,0,’LINE1’HALT6.10 参数查询实例:NUMBER/NUM(3)STRING/STR1(10),STR2(10)STR1=&PSPECSTR2=&PNAME&ENTCLR=&BLUENUM=&POINT(PN)HALT6.11 其它实例:ENTITY/GROGRO=GROUP/PN(1..5),LN,CR,COLID UNGRP/GRODELETE/PN(1..5)。
1 打开UG、GRIP 编辑器在 UG 中找到UG TOOL→NX OPEN GRIP,打开 GRIP 编辑器,如图 1 所示。
图1 启动GRIP 路径示意图2 确定工作路径,建立GRS文件在图2所示的界面中输入4回车,再输入工作路径用来存放GRIP二次开发的文件,路径只要是英文即可。
比如:'D:\MYUG\'。
图2 GRIP 工作界面再输入1回车,输入要建立的文件名。
如 'NCOP'。
完成上述操作后,GRIP 将产生三个文件,存储源代码的文本文件(ASCII text file),扩展名为*.GRS;编译后文件扩展名为*.GRI;连接后文件扩展名为*.GRX 。
3 在NCOP.GRS中输入如下代码ENTITY/OBJ(25),SURF1(5000),cbnd(90),BEIDENTITY/surf2(5000)NUMBER/NUML00:PARAM/'请您输入料厚数据',$'输入料厚数据',LH,RSPJUMP/L00:,,,RSPMESSG/'请选择加工几何体'L10:IDENT/'请选择加工面',surf1,CNT,NUM,$CURSOR,X,Y,Z,RSPJUMP/L10:,L20:,,RSPL20:MESSG/'请选择加工边界'mask/3ident/'选择曲线边界',cbnd,cnt,cbnd_cnt,rspuJUMP/O4:,O9:,,rspu&MODULE = &MACH $$ 激活加工模块$$&MCS=&WCS $$ 使用当前坐标为加工坐标$$$$ 以下为选择使用的模版及要生成的操作名称$$$$标记A&OPTSET='D:\resource\template_set\nc_grip.opt'OPER/NEW, OPNAME, 'c.50','cam_metric_template', 'c.50'TOOL/'B30',MILL,30,15,100 $$刀具设置,具体为‘MILL’类$$$的直径30,半径15,刀长100&tname='B30' $$选择使用该刀具TAXIS/0,0,1 $$刀轴方向,使用I,J,K方式。
UG编程的基础知识和技巧UG(Unigraphics)是一种广泛应用于工业设计和制造的三维计算机辅助设计(CAD)软件。
掌握UG编程的基础知识和技巧对于提高工作效率和完成复杂设计任务至关重要。
本文将介绍UG编程的基本原理、常用语法和技巧,并提供一些实用的示例帮助读者快速上手。
一、UG编程概述UG编程是指使用UG自带的编程语言对其进行二次开发和定制化。
UG编程可以帮助用户自动化执行繁琐的任务、增强软件的功能性、优化设计流程等。
UG编程语言主要有三种:基于特征的编程语言(Feature-Based Language,简称FBL)、基于操作的编程语言(Operation-Based Language,简称OBL)和通用程序语言(Generalized Program Language,简称GPL)。
在开始UG编程之前,我们首先需要了解这些编程语言的基本特性。
1. 基于特征的编程语言(FBL)UG软件中的建模过程是以特征为基础的,因此FBL是一种常用的UG编程语言。
FBL的编程思路是通过对特征进行定义、修改和删除,实现对三维模型的创建和编辑。
通过FBL编程,可以有效地创建和管理UG中的几何特征、约束关系及装配等操作。
2. 基于操作的编程语言(OBL)OBL是一种基于操作的UG编程语言,其核心思想是通过对模型的操作进行记录和回放,实现对模型的自动化设计和修改。
使用OBL编程,可以通过脚本完成UG软件中的各项操作,例如创建几何体、修改模型属性、应用约束关系等。
3. 通用程序语言(GPL)UG软件还支持通用程序语言,如C++、Visual Basic等。
使用通用程序语言进行UG编程,可以获得更高的灵活性和扩展性。
通用程序语言可以直接调用UG软件提供的API(应用程序接口),实现对UG 软件的深度定制和功能扩展。
二、UG编程常用语法和技巧要想熟练编程,除了对编程语言的了解外,还需要熟悉一些UG编程的常用语法和技巧。
UG/Open GRIP 库的应用UG 软件包中收集了许多GRIP 程序,可供我们引用和参考,对于初学者来说,如果能应用几个简单的、对实际工作有帮助的例子,势必会增强学习二次开发的兴趣和信心!对于搞CAM 的来说,在刀具的切削参数方面除了需要经验之外,有时候也需要定量的分析和计算,比如跨距(Stepover)和残留高度(Scallop)之间的关系。
假如我们精加工使用了R5的球刀,跨距为0.25,当我们改用R8的球刀时,为了达到同样的粗糙度,改用多大的跨距呢?这里我们就需要计算R5的球刀所能达到的残留高度,然后利用这个残留高度去计算R8的刀具的跨距。
UG/Open GRIP 库里就提供了这样的两个GRIP 程序。
方法如下:1. 解压: 解压\UGS180\GRIPLIB\下的griplib.tar 压缩包,会看到两个文件夹,其中的源程序存放在\source\grip\main 里,我们举例所用到的两个是scallop.grs 和stepover.grs ;如果你还没有编译过,请进行下面的步骤;1.编译: 运行GRADE ,2.运行UG OPEN GRIP 会看到GRADE 的界面首先我们需要改变GRIP文件存放的目录,输入4,回车,然后输入GRIP所在的路径D:\UGS180\GRIPLIB\source\grip\main,回车,输入2,回车(我们全部编译),会看到编译(Compile)成功的界面。
然后回车返回,输入3,回车,即进行链接(LINK),同样会看到链接成功的画面。
至此我们已经可以在UG界面里掉用这些GRIP程序了。
3. 执行:进入UG界面,点FILE→Execute UG/Open→GRIP,选择D:\UGS180\GRIPLIB\source\grip\main下面的Scallop.grx,会看到我们在刀具直径里面输入10,跨距里面输入0.25,点击OK,会看到计算结果在信息框里显示Scallop为0.0016。