前言:
当前兄弟们对“win10ug80安装教程”大约比较注重,咱们都想要学习一些“win10ug80安装教程”的相关资讯。那么小编同时在网摘上网罗了一些关于“win10ug80安装教程””的相关资讯,希望咱们能喜欢,同学们一起来学习一下吧!UG版本通用外挂开发 UG Open/Grip 教程
$$ 注释
$$ Grip启动和编译:先找到UG的安装路径,如C:\Program Files\EDS\Unigraphics NX。
$$ 进入该路径下的UGOPEN目录,找到grade.bat文件,打开它,将环境变量base_dir
$$ 设置成set base_dir=C:\Program Files\EDS\Unigraphics NX,保存并运行。
$$ Grip程序的编写和编译:在Grip的运行程序中,键入4,将你编写的Grip程序所在的目
$$ 录写入并回车。在Grip的运行程序中,键入1,写入新建Grip程序的文件名并回车,此时
$$ Grip会打开写字板,你可以在其中写入你的程序。在Grip的运行程序中,键入2,写入
$$ 所编译的文件名,编译无错后,键入3,写入所链接的文件名,链接无错后完成。
$$ 你所编写的Grip程序保存成*.grs文件,编译后Grip会生成*.gri文件,链接后Grip会
$$ 生成*.grx文件,此文件为Grip的运行文件。
$$ Grip程序的运行:打开UG,点击File->Execute->Grip,选择*.grx文件,就可运行它。
$$ 编译时应先编译子函数文件,生成*.gri,子函数文件不需要链接,此时再编译主函数
$$ 文件,生成*.gri,最后链接成*.grx。
$$ Grip主函数文件必须以HALT结束,Grip子函数文件必须以RETURN结束。
$$ 定义的变量不能超过6个字符,Grip会认为Point_1和Point_2是同一个变量。
$$ 一行不能超过80个字符,若超过,可用$符号来换行。
$$ Grip不区分大小写,也就是Grip会认为POINT和point都是画点函数,但是我建议Grip
$$ 的函数名和关键字用大写,用户定义的变量用小写。但是用户定义的变量不能和Grip的
$$ 函数名和关键字重名。
$$ Grip的帮助文件在C:\EDS\Unigraphics NX\UGDOC\html_files\mainlibrary.chm\
$$ Open\GRIP Reference Guide下。一个简便的Grip函数查找方法:打开...\Word &
$$ Symbol Lists\Major Word List,根据首字母来查函数。
HALT $$ 结束语
$$ 注释
ENTITY/p,l,c $$ 实体变量定义
NUMBER/i,f(5) $$ 数值变量定义
STRING/str(10) $$ 字符串变量定义
p=POINT/0,0,0 $$ 画点
l=LINE/0,0,0,1,1,1 $$ 画线
c=CIRCLE/CENTER,p,RADIUS,1 $$ 画圆
HALT $$ 结束语
注释
ENTITY/p(3)
NUMBER/a(3),b(3,3)
DATA/b,1,2,3,4,5,6,7,8,9 $$ 给b向量赋值
a(1..3)=b(1,1..3) $$ 让a向量等于b向量中的第一个值
p(1)=POINT/a(1..3)
p(2)=POINT/b(2,1..3)
p(3)=POINT/b(3,1..3)
HALT $$ 结束语
$$ 注释
STRING/str1(100) $$ 定义字符串
str1='Hello World' $$ 为字符串赋值
MESSG/str1 $$ 显示字符串
HALT $$ 结束语
$$ 注释
$$ +, -, *, /, **, = $$ 运算函数
$$ SQRTF,LOGF,ABSF,INTF,MODF,MINF,MAXF,SINF,COSF,ASINF,ACOSF,ATANF $$ 数学函数
$$ '$' 换行符
NUMBER/a
a=SINF(30)
MESSG/FSTR(a)
HALT $$ 结束语
$$ 注释
NOTE/0,0,'LABEL1' $$ 往UG显示区打印文字
PRINT/'LABEL2' $$ 往INFOMATION打印文字
MESSG/'LABEL3' $$ 往信息框打印文字
HALT $$ 结束语
$$ 注释
STRING/str1(100),str2(100)
NUMBER/strlen
str1='abcdefghijklmn'
str2=SUBSTR(str1,2,5) $$ 取字符
strlen=LENF(str1) $$ 取字符串长度
PRINT/FSTR(3.14) $$ 浮点型转换为字符串
PRINT/ISTR(strlen) $$ 整型转换为字符串
PRINT/str2
HALT $$ 结束语
$$ 注释
NUMBER/a(3),b(3),c,d(3),e,f(3),g(3)
DATA/a,1,2,3
DATA/b,4,5,6
c=DOTF(a,b) $$ 向量点乘
d=CROSSF(a,b) $$ 向量叉乘
e=VLENF(a) $$ 取向量模
f=SCALVF(10,a) $$ 向量数乘
g=UNITF(a) $$ 向量归一化
PRINT/FSTR(c)
PRINT/FSTR(d(1))+','+FSTR(d(2))+','+FSTR(d(3))
PRINT/FSTR(e)
PRINT/FSTR(f(1))+','+FSTR(f(2))+','+FSTR(f(3))
PRINT/FSTR(g(1))+','+FSTR(g(2))+','+FSTR(g(3))
HALT $$ 结束语
$$ 注释
ENTITY/c1,c2,l1
ENTITY/p1,p2,p3,p4,p5,p6,p7,p8
c1=CIRCLE/CENTER,(POINT/1,0,0),RADIUS,1
c2=CIRCLE/CENTER,(POINT/2,0,0),RADIUS,1
l1=LINE/0,0,0,-1,0,0
p1=POINT/CENTER,c1 $$ 取圆心
p2=POINT/YLARGE,INTOF,c1,c2 $$ 取沿y方向最大的交点
p3=POINT/YSMALL,INTOF,c1,c2 $$ 取沿y方向最小的交点
p4=POINT/(POINT/0,-1,0),INTOF,c1,c2 $$ 取离(POINT/0,-1,0)点最近的点
p5=POINT/p1,VECT,(LINE/p2,p3),YLARGE,2 $$ 使p1点沿着p2p3向量往y最大方向偏移2
p6=POINT/c1,ATANGL,45 $$ 取圆45度角点
p7=POINT/p1,DELTA,-2,-2,0 $$ 使p1点偏置(-2,-2,0)
p8=POINT/ENDOF,XSMALL,l1 $$ 取l1线的端点
HALT $$ 结束语
$ 注释
ENTITY/c
ENTITY/ln1,ln2,ln3,ln4,ln5,ln6,ln7
c=CIRCLE/CENTER,(POINT/0,0,0),RADIUS,1
ln1=LINE/0,0,0,1,0,0
ln2=LINE/PARLEL,ln1,YLARGE,1 $$ 沿y最大方向平行于ln1线偏置1
ln3=LINE/PARLEL,ln1,YSMALL,TANTO,c $$ 沿y最小方向平行于ln1和c圆相切
ln4=LINE/(POINT/0,0,0),ATANGL,45 $$ 过(0,0,0)画45度线
ln5=LINE/(POINT/2,0,0),RIGHT,TANTO,c $$ 过(2,0,0)切c圆(右手边)
ln6=LINE/(POINT/0,0,0),PARLEL,ln5 $$ 过(0,0,0)平行ln5线
ln7=LINE/(POINT/0,0,0),PERPTO,ln5 $$ 过(0,0,0)垂直ln5线
HALT $$ 结束语
$$ 注释
ENTITY/c1,c2,c3,c4,c5,c6
c1=CIRCLE/CENTER,(POINT/0,0,0),RADIUS,1 $$ 过圆心和半径画圆
c2=CIRCLE/CENTER,(POINT/0,0,0),TANTO,(LINE/2,0,0,2,2,0),START,0,END,90 $$ 过圆心与线相切起始角终止角
c3=CIRCLE/CENTER,(POINT/0,0,0),(POINT/3,0,0) $$ 过圆心和点
c4=CIRCLE/(POINT/4,0,0),(POINT/0,4,0),(POINT/-4,0,0) $$ 过三点画圆
HALT $$ 结束语
$$ 注释
NUMBER/p(5,3)
ENTITY/sp
DATA/p,0,0,0,1,1,0,2,4,0,3,9,0,4,16,0
sp=SPLINE/(POINT/p(1,1..3)),(POINT/p(2,1..3)),(POINT/p(3,1..3)),$
(POINT/p(4,1..3)),(POINT/p(5,1..3)) $$ 过点画多样条曲线(不封闭)
sp=SPLINE/CLOSED,(POINT/p(1,1..3)),(POINT/p(2,1..3)),$
(POINT/p(3,1..3)),(POINT/p(4,1..3)),(POINT/p(5,1..3))
$$ 过点画多样条曲线(封闭)
HALT $$ 结束语
$$ 注释
ENTITY/ln(4)
ENTITY/sph1,sph2,block1,cone1,cone2,cyl1,solid1,solid2
sph1=SPHERE/CENTER,(POINT/0,0,0),RADIUS,1 $$ 画球
sph2=SPHERE/(CIRCLE/CENTER,(POINT/0,0,0),RADIUS,2) $$ 画球
block1=SOLBLK/ORIGIN,2,2,2,SIZE,1,1,1 $$ 画方块
cone1=SOLCON/ORIGIN,3,3,3,HEIGHT,1,DIAMTR,1,0 $$ 画圆锥
cone2=SOLCON/ORIGIN,4,4,4,HEIGHT,1,DIAMTR,1,0.5,AXIS,1,0,0 $$ 画圆台
cyl1=SOLCYL/ORIGIN,5,5,5,HEIGHT,1,DIAMTR,1 $$ 画圆柱
ln(1)=LINE/0,0,0,1,0,0
ln(2)=LINE/1,0,0,1,1,0
ln(3)=LINE/1,1,0,0,1,0
ln(4)=LINE/0,1,0,0,0,0
solid1=SOLEXT/ln(1..4),HEIGHT,10,AXIS,0,0,1 $$ 拉伸实体
solid2=SOLREV/ln(1..4),ORIGIN,0,0,0,ATANGL,360,AXIS,1,0,0 $$ 旋转实体
HALT $$ 结束语
$$ 注释
ENTITY/ln1,ln2
ENTITY/flt1,pl1,torus1
NUMBER/p_coords(3)
&FONT=&DASHED $$ 使线型变成虚线
ln1=LINE/0,0,0,1,0,0
&FONT=&SOLID $$ 使线型变成实线
ln2=LINE/0,0,0,0,1,0
flt1=FILLET/ln2,ln1,CENTER,(POINT/1,1,0),RADIUS,0.2,NOTRIM $$ 画倒圆
pl1=PLANE/(POINT/0,0,0),(POINT/1,0,0),(POINT/0,1,0) $$ 画平面
torus1=SOLTOR/ORIGIN,0,0,0,RADIUS,1,0.5
p_coords=CPOSF(ln1,0.25) $$ 取线的中间点
HALT $$ 结束语
$$ 注释
ENTITY/b1,b2,b3,b4,b5,b6,b7,b8,b9
b1=SOLBLK/ORIGIN,0,0,0,SIZE,2,2,2
b2=SOLBLK/ORIGIN,1,1,1,SIZE,2,2,2
b3=SOLBLK/ORIGIN,2,2,2,SIZE,2,2,2
b4=SOLBLK/ORIGIN,3,3,3,SIZE,2,2,2
b5=SOLBLK/ORIGIN,4,4,4,SIZE,2,2,2
b6=SOLBLK/ORIGIN,5,5,5,SIZE,2,2,2
b7=UNITE/b1,WITH,b2 $$ 实体相加
b8=INTERS/b3,WITH,b4 $$ 实体相交
b9=SUBTRA/b5,WITH,b6 $$ 实体相减
HALT $$ 结束语
$ 注释
NUMBER/mat1(12),mat2(12),mat3(12),mat4(12)
NUMBER/gmat1(12),gmat2(12),mat(12)
ENTITY/ln1,b1,b2
ln1=LINE/0,0,0,0,1,0
b1=SOLBLK/ORIGIN,0,0,0,SIZE,1,1,1
mat1=MATRIX/TRANSL,1,2,3 $$ 生成平移矩阵
mat2=MATRIX/XYROT,45 $$ 生成旋转矩阵
mat3=MATRIX/MIRROR,ln1 $$ 生成镜像矩阵
mat4=MATRIX/SCALE,2 $$ 生成缩放矩阵
gmat1=MATRIX/mat1,mat2 $$ 矩阵相乘
gmat2=MATRIX/mat3,mat4 $$ 矩阵相乘
mat=MATRIX/gmat1,gmat2 $$ 矩阵相乘
b2=TRANSF/mat,b1 $$ 将变换物体的矩阵加到物体上
HALT $$ 结束语
$$ 注释
ENTITY/csys1,csys2,csys3
csys1=CSYS/(POINT/1,1,0),(POINT/1,2,0),(POINT/0,1,0) $$ 输入原点,x轴上点,y轴上点建立坐标系
&WCS=csys1 $$ 取当前坐标系为上面所建的坐标系
csys2=CSYS/(LINE/0,0,0,1,1,0),(LINE/0,0,0,-1,1,0) $$ 输入x轴和y轴建立坐标系
&WCS=csys2
csys3=CSYS/csys2,ORIGIN,(POINT/1,1,1) $$ 将坐标系csys2移到其他点上
&WCS=csys3
&WCS=&ABS $$ 将当前坐标系移到绝对坐标系上
HALT $$ 结束语
$$ 注释
ENTITY/p(3),grp1,grp2
p(1)=POINT/0,0,0
p(2)=POINT/1,1,1
p(3)=POINT/2,2,2
grp1=GROUP/p(1..2) $$ 组合实体
grp2=GROUP/grp1,p(3)
UNGRP/grp2 $$ 取消组合
HALT $$ 结束语
$$ 注释
NUMBER/index
index=4
IF/index==1,JUMP/A1: $$ 条件语句
IF/index==2,JUMP/A2:
IF/index==3,JUMP/A3:
JUMP/END: $$ 跳转语句
A1:
MESSG/'index=1'
JUMP/END:
A2:
MESSG/'index=2'
JUMP/END:
A3:
MESSG/'index=3'
JUMP/END:
END:
MESSG/'END'
HALT $$ 结束语
$$ 注释
DO/LOOP1:,i,1,10,1 $$ 循环语句
PRINT/ISTR(i)
LOOP1:
PRINT/'END'
HALT $$ 结束语
$$ 注释
NUMBER/p(5,3)
DATA/p,0,0,0,1,1,1,2,2,2,3,3,3,4,4,4
DO/LOOP1:,i,1,5,1 $$ 双重循环
DO/LOOP2:,j,1,3,1
PRINT/ISTR(p(i,j))
LOOP2:
LOOP1:
PRINT/'END'
HALT $$ 结束语
$$ 注释
$$ ==等于,<>不等于,<小于,>大于,<=小于等于,>=大于等于,NOT非,AND与,OR或
NUMBER/index,order
index=1
order=1
IF/index==1,MESSG/'index=1' $$ 单条件语句
IF/index==2,MESSG/'index=2'
IF/index==3 AND order==1,MESSG/'index=3'
HALT $$ 结束语
$ 注释
NUMBER/a,b
a=2
b=1
IFTHEN/a>b $$ 多条件语句
MESSG/'a>b'
ELSEIF/a<b
MESSG/'a<b'
ELSE
MESSG/'a=b'
ENDIF
HALT $$ 结束语
$$ 注释
NUMBER/A,B
A=2
B=2
IFTHEN/A<0 $$ 嵌套循环
MESSG/'A<0'
ELSEIF/A>0
IFTHEN/B>0
MESSG/'A>0,B>0'
ELSE
MESSG/'A>0,B<0'
ENDIF
ELSE
MESSG/'A=0'
ENDIF
HALT $$ 结束语
$$ 注释
ENTITY/ln(4)
ln(1)=LINE/0,0,0,1,0,0
ln(2)=LINE/1,0,0,1,1,0
ln(3)=LINE/1,1,0,0,1,0
ln(4)=LINE/0,1,0,0,0,0
CALL/'test24sub',ln $$ 调用子函数,第一个为函数名,后面的为传入的形参
HALT $$ 结束语
$$ 注释
PROC/ln $$ 子函数头,包含传入的形参
ENTITY/ln(4) $$ 定义形参变量
ENTITY/body1 $$ 子函数体
body1=SOLEXT/ln,HEIGHT,1,AXIS,0,0,1
RETURN $$ 结束语
$$ 注释 -1
NUMBER/RESP,NRESP,IRESP,GRESP,PRESP,ORESP
STRING/your_name(100),your_gender(100)
NUMBER/your_id,your_mathmatic,your_english,your_chinese
NUMBER/p_x,p_y,p_z,obj_num
ENTITY/your_object(100)
BACK:
$$ 选择菜单:函数名/提示,菜单1,菜单2......(最多有14个菜单),用户响应值
CHOOSE/'Choose operation type','Input Name','Input Info',$
'Input Gender','Input Point','Select Object','Finish',RESP
$$ 用户响应值RESP:1-当用户点击Back按钮时-程序跳到BACK:处
$$ 2-当用户点击Cancel按钮时-程序跳到END:处
$$ 3-此响应值无用-无跳转
$$ 4-当用户需要嵌套下一个对话框时-无跳转
$$ 5-当用户点击Input Name按钮时-程序跳到MENU1:处
$$ 6-当用户点击Input Info按钮时-程序跳到MENU2:处
$$ ......
$$ 10-当用户点击Finish按钮时-程序跳到MENU6:处
$$ 用户响应值
JUMP/BACK:,END:,,,MENU1:,MENU2:,MENU3:,MENU4:,MENU5:,MENU6:,RESP
MENU1:
$$ 当用户点击Input Name按钮时,跳出字符串输入框
$$ 函数名/提示,返回变量,用户响应值
TEXT/'Input your name',your_name,NRESP
$$ 用户响应值NRESP:1-当用户点击Back按钮时-程序跳到BACK:处
$$ 2-当用户点击Cancel按钮时-程序跳到END:处
$$ 3-当用户没有输入字符串而点击OK按钮时-无跳转
$$ 4-当用户需要嵌套下一个对话框时-无跳转
$$ 5-当用户输入字符串而点击OK按钮时-程序跳到BACK:处
$$ 用户响应值
JUMP/BACK:,END:,,,BACK:,NRESP
MENU2:
$$ 当用户点击Input Info按钮时,跳出参数输入框
$$ 函数名/提示,参数1名称,关键字表示此参数为整型,返回变量1,
$$ 参数2名称,无关键词表示此参数为浮点型,返回变量2,
$$ 参数3名称,返回变量3,参数4名称,返回变量4,用户响应值
PARAM/'Input your information','ID',INT,your_id,$
'Mathmatic',your_mathmatic,'English',$
your_english,'Chinese',your_chinese,IRESP
$$ 用户响应值IRESP:1-当用户点击Back按钮时-程序跳到BACK:处
$$ 2-当用户点击Cancel按钮时-程序跳到END:处
$$ 3-当用户点击OK按钮时-程序跳到BACK:处
$$ 4-当用户需要嵌套下一个对话框时-无跳转
$$ 用户响应值
JUMP/BACK:,END:,BACK:,,IRESP
MENU3:
$$ 当用户点击Input Gender按钮时,跳出选择对话框
$$ 注释 -2
CHOOSE/'Input your gender','Male','Female',GRESP
JUMP/BACK:,END:,,,GMENU1:,GMENU2:,GRESP
GMENU1:
your_gender='Male'
JUMP/BACK:
GMENU2:
your_gender='Female'
JUMP/BACK:
MENU4:
$$ 当用户点击Input Point按钮时,跳出选取点对话框
$$ 函数名/提示,返回点x坐标,返回点y坐标,返回点z坐标,用户响应值
GPOS/'Input your point',p_x,p_y,p_z,PRESP
$$ 用户响应值PRESP:1-当用户点击Back按钮时-程序跳到BACK:处
$$ 2-当用户点击Cancel按钮时-程序跳到END:处
$$ 3-当用户点击OK按钮时-程序跳到BACK:处
$$ 4-此响应值无用-无跳转
$$ 5-当用户选择点后-程序跳到BACK:处
$$ 用户响应值
JUMP/BACK:,END:,BACK:,,BACK:,PRESP
MENU5:
$$ 当用户点击Input Object按钮时,跳出选择物体对话框
$$ 函数名/提示,返回实体变量,关键字表示允许多选物体,
$$ 返回选择物体数量,用户响应值
IDENT/'Input your object',your_object,CNT,obj_num,ORESP
$$ 用户响应值ORESP:1-当用户点击Back按钮时-程序跳到BACK:处
$$ 2-当用户点击Cancel按钮时-程序跳到END:处
$$ 3-当用户点击OK按钮时-程序跳到BACK:处
JUMP/BACK:,END:,BACK:,ORESP
MENU6:
PRINT/'Your Name: '+your_name
PRINT/'Your ID: '+ISTR(your_id)
PRINT/'Your Mathmatic: '+FSTR(your_mathmatic)
PRINT/'Your English: '+FSTR(your_english)
PRINT/'Your Chinese: '+FSTR(your_chinese)
PRINT/'Your Gender: '+your_gender
PRINT/'Your Point: '+FSTR(p_x)+' '+FSTR(p_y)+' '+FSTR(p_z)
END:
HALT $$ 结束语
$$ 注释
ENTITY/p(2)
p(1)=POINT/0,0,0
p(2)=POINT/1,1,1
DELETE/p(1) $$ 删除物体
BLANK/p(2) $$ 隐藏物体
UNBLNK/p(2) $$ 恢复隐藏物体
EXPCRE/'a=1' $$ 建立表达式
EXPCRE/'b=1'
EXPDEL/'b' $$ 删除表达式
HALT $$ 结束语
$$ 注释
STRING/str1(100),str2(100)
NUMBER/num1,num2
$$CREATE/PART,'c:\test_metric.prt',MMETER $$ 新建一个公制part文件
$$CREATE/PART,'c:\test_english.prt',INCHES $$ 新建一个英制part文件
$$FILE/PART,'c:\test_english.prt' $$ 保存文件
$$ -------------------------------------------------------------
$$ 新建一个文本文件,1表示文件指针,如果新建第二个文件,文件指针为2
CREATE/TXT,1,'c:\test.txt'
WRITE/1,'PI' $$ 写入字符串
WRITE/1,3.14 $$ 写入数值
FILE/TXT,1 $$ 保存文件
FTERM/TXT,1 $$ 关闭文件
$$ ------------------------------------------------------------
FETCH/TXT,1,'c:\test.txt' $$ 打开一个文本文件
RESET/1 $$ 将文件插入点设到第一行
WRITE/1,'2003-9-4' $$ 在文件第一行写入数据
APPEND/1 $$ 将文件插入点设到最后一行
WRITE/1,1.414 $$ 在文件最后一行写入数据
FILE/TXT,1
FTERM/TXT,1
$$ -----------------------------------------------------------
FETCH/TXT,1,'c:\test.txt'
RESET/1
READ/1,str1 $$ 读出第一个数据
READ/1,str2 $$ 读出第二个数据
READ/1,num1 $$ 读出第三个数据
READ/1,num2 $$ 读出第四个数据
PRINT/str1+','+str2+','+FSTR(num1)+','+FSTR(num2)
FTERM/TXT,1
HALT $$ 结束语
$$ 注释
ENTITY/ln(4),obj
STRING/str(100)
ln(1)=LINE/0,0,0,1,0,0
ln(2)=LINE/1,0,0,1,1,0
ln(3)=LINE/1,1,0,0,1,0
ln(4)=LINE/0,1,0,0,0,0
&NAME(ln(1))='FIST_LINE' $$ 为实体设置名称
&NAME(ln(2))='SECOND_LINE'
&NAME(ln(3))='THIRD_LINE'
&NAME(ln(4))='FORTH_LINE'
INEXTE/ALL $$ 初始化所有物体
LOOP:
obj=NEXTE/IFEND,END: $$ 从第一物体开始
str=&NAME(obj) $$ 得到该物体的名称
IFTHEN/str=='FORTH_LINE' $$ 如果名称等于第四根线
DELETE/obj $$ 则删除它
ELSE
JUMP/LOOP: $$ 否则重新循环,去读下一个物体
ENDIF
END:
HALT $$ 结束语
$$ 注释
HALT $$ 结束语
标签: #win10ug80安装教程