此例子是对:【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结束语句