此例子是对:【UG\NX二次开发】UF 加载调用与卸载目标dll(UF_load_library、UF_unload_library)_ug二次开发dll自动加载-CSDN博客的补充。
①创建txt文本,编写以下内容(功能:接收路径,调用该路径的dll)。改后缀为Grip文件(.grs)。
  gripsw / declrv
  string / selmsg(256)  $$selmsg接收的参数,网上大多数是132,但有时候需要更大的空间,所以此处为256  
  ufargs / selmsg $$接收参数
  xspawn/UFUN,selmsg $$调用路径为selmsg的dll
  halt 
![]()
②双击运行,输入2,按两下回车(生成.gri);再输入3,按两下回车(生成.grx)。


③UF调用grip。
//grx路径
char grip_exe[250] = "G:\\Project\\SelfProject\\Grip_call_OtherDll\\x64\\Debug\\Grip_call_OtherDll.grx";
//要调用的目标dll路径
char dll_path[255] = "G:\\Project\\SelfProject\\DynamicCircle\\x64\\Debug\\DynamicCircle.dll";
UF_args_t    grip_arg_list[1];
grip_arg_list[0].type = UF_TYPE_CHAR;
grip_arg_list[0].length = 0;
grip_arg_list[0].address = dll_path;
//调用grip
if (UF_CALL(UF_call_grip(grip_exe, 1, grip_arg_list)))
{
    uc1601(grip_exe, 1);
} 
Grip语言可以实现多种功能,是二次开发的一种备选方案,可以了解熟悉并运用到平时开发中,但还是以C++/C#开发作为主流。
GRIP语言的三种格式:
         一 陈述格式
                 用于实体的生成和编辑操作。
         二 GPA 全局参数存取
                 每一个GPA符号都有确定的含义,或者与系统总体参数相连,或一个常数相连,用来访问系统中各个对象的状态设置与参数。
         三 EDA 实体数据存取
                 访问UG数据库的一种工具,访问对象的功能性数据,主要在属性,绘图,尺寸标注几何体等应用。
GRIP程序的组成:
         1声明语句部分
         2初始化语句
         3交互语句
         4过程处理
         5结束语句



















