- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 UG 使用 AddFilterHandler filter_cb 进行选择过滤
把基础打扎实了,进才进行更好的开发,有很多二次开发的,可能对UG比较熟悉,在网上简单的学习一下C++的知识,就进行开发,有些连C++ 指针都不清楚怎么样,数据结构也不怎么了解,就一直往下干,当然,对于自己的小项目,这些倒是问题不大,但是,一旦用于公司项目开发,随着项目越来越大,就没有办法控制了。WINDOWS API, 是WINDOWS 提供接口,有很多UG 的API函数,也是WINDOWS API的一个封装 ,比如文件保存,文件对话框等。不要发现一个问题,到处修改。下面是添加过滤函数添加的过程。
2025-03-03 22:26:46
72
原创 UG 二次开发使用 UF_MODL_check_interference 进行干涉检查
把基础打扎实了,进才进行更好的开发,有很多二次开发的,可能对UG比较熟悉,在网上简单的学习一下C++的知识,就进行开发,有些连C++ 指针都不清楚怎么样,数据结构也不怎么了解,就一直往下干,当然,对于自己的小项目,这些倒是问题不大,但是,一旦用于公司项目开发,随着项目越来越大,就没有办法控制了。在UG 二次开发,经常UF_MODL_check_interference进行体,或者面的干涉检查,UF_MODL_check_interference 是一个执行比较慢的函数,所以我们经常进行批量检查。
2025-03-03 22:13:54
186
原创 UG 二次开发 UF_OBJ_set_name 和 UF_OBJ_cycle_by_name 函数的使用
参数2, 指定对象的名字,名字的最大长度不能超过 UF_OBJ_NAME_LEN。UF_OBJ_cycle_by_name 可以查询出指定名字对象的tag_t。在UG中,我们可以通过 UF_OBJ_set_name 给一个对象命名。我们可以使用一个循环,对读取符合我们指定名字的实体。参数2,接收返回的对象的TAG_T。参数1,指定一个对象的tag_t。参数1,要查询的对象的名字。
2025-02-18 21:20:56
50
原创 UG 二次开发 与点相关的API函数 UF_CURVE_ask_point_data UF_CURVE_create_point
通过参数 tag_t point,传入点的tag_t, point_coords [ 3 ]接收返回的坐标点数据。UG二次开发中,使用经常需要使用点操作进行,下面我们介绍一下相关的函数。UF_CURVE_ask_point_data 查询一个点的坐标点数据。UF_SO_ask_parents 查询一个对象的父对象列表。UF_CURVE_create_point创建一个点。我们通过它,可以查询出点所在面。参数2接收创建的点的tag_t。参数1传入点的坐标点数据。
2025-02-18 21:01:50
161
原创 UG 二次开发基础- IUGTOOL 模具钢件属性设置
在模具的UG二次开发中,钢件属性设置,是一个比较基础和常用的功能,毕竟我们需要知道一个图档中,哪些实体是我们的钢件,哪些实体是我们的电极,才能进行后面的操作,包括放电图纸,电极编程,钢件编程等功能。下一篇将实现电极的初始化功能,功能比较复杂,可能更新得比较慢一点。利用我们之前封装好的API函数,轻松实现。相关封装API,可以查阅之前发布的文章。这里主要通过写入实体的属性值来识别。
2025-02-12 22:06:04
164
原创 UG 二次开发 UF_ATTR_assign、UF_ATTR_read_value 读写对象属性
写入字符串类型的时候,比较注意的是,要使用new char字符串指针的方式写入,用完之后,要使用delete[]释放内存。我们可以通过 UF_ATTR_value_p_t成员变量 type 判断是否读到数据值之后,才去读取结果数据。UF_ATTR_value_p_t value UF_ATTR_value_t 对象指针,接收读取到的数据。在UG中,我们通过 UF_ATTR_read_value 可以读取对象的属性值。tag_t object 要读取的对象的tag_t值。
2025-02-12 20:26:57
318
原创 通过 uf5947 移动实体 UG二次开发
移动实体,在UG二次开发中,是比较常用的功能。const double rp1 [ 16 ] 变换后的矩阵数据,我们通过 uf5943 ,可以得变换后的矩阵数据。const int * dest_layer 移动、复制后的实体放到哪个图层。tag_t * copies 如果是复制的话,接收复制出来的体的tag。const int * move_or_copy 移动还是复制实体。const tag_t objects [ ] 要移动的实体数组。const int * n_objects 实体的数量。
2025-02-11 20:08:32
79
原创 UG 通过 UF_MODL_transform_entities 移动实体,摆正体 -三面摆正体代码分析
在UG中,我们经常需要对工件进行摆正,虽然UG本身也提供了相关的功能,下面我们看下UG 给我们提供的API 函数:UF_MODL_transform_entities。得到变换后的矩阵数据后,我们就可以通过UF_MODL_transform_entities进行移动实体了。const double from_x_axis [ 3 ] 原坐标系X轴法向。const double from_y_axis [ 3 ] 原坐标系Y轴法向。所以这里还涉及到另一个UF 函数 UF_MTX4_csys_to_csys。
2025-02-11 19:20:48
200
原创 三面摆正体代码分析 CAPIFace::GetFaceVector UG UF_MODL_ask_face_props 获取面的法向
【代码】三面摆正体代码分析 CAPIFace::GetFaceVector 获取面的法向。
2025-02-10 20:05:00
60
原创 UG二次开发之 三面摆正体代码分析
CIUGUIBlock 是一个从UIBlock 派生的一个类,为什么要从UIBlock 派生出CIUGUIBlock,这是为了兼容低版的UG。如果我们不从的UIBlock 派生控件类对象指针,在UG 8.5以下的版本,会出现编译错误的问题。这是一个简单的入门功能,包括了不少的常用的UF函,下面我们将结合成品代码一起分析一下常用的函数,这对初学者是必要的。根据创建好的UI控件,在 initialize_cb 中创建控件的指针对象。//根据选定的面,指定 X,Y坐标系轴。//根据变换的矩阵,平移实体。
2025-02-10 19:50:32
168
原创 vc++ 读写INI, c++读写TXT文件实例
附上源代码:https://download.csdn.net/download/u014657217/89797099。读取INI,主要用到 API GetPrivateProfileString 函数。主要用到 WritePrivateProfileString API函数。在开发过程中,txt文件读写,INI文件读写是经常用到的功能。下面我们介绍一下具体功能的实现。
2024-09-25 19:45:27
273
原创 UG二次开发基础篇-图层管理
添加现有项,把之前DLX生成的两个C++文件复制到工程目录下,并添加到工程中。之前已经做好了IUGTOOL外挂的配置,这里我们就把DLX放到这个文件夹。提示Dlx文件缺失,刚才创建的DLX文件,要放到我们设置好的外挂目录。第一步,获取当前工作图层,并显示到编辑框中.点击上方保存按钮,即可生成控件的基本代码。工程向导中选择DLL, C++,点击完成。通过Ctrl+U加载我们生成的DLL。今天我们来实现第一个UG的应用功能。打开VS,新建一个向导工程。21-29,大类1,小类2。30-48,大类2,小类1。
2024-09-24 23:19:57
720
原创 UG 二次开发-菜单与工具条(二、 应用DLL入口编写)
在上一篇中,我们编写了UG 加载DLL入口写入,这一篇,我们将继续编写应用DLL入口,上一篇中,最后是入加DLL,加载应用DLL,并入口函口数。字符集,我们更改为多字节的,因为UG提供的API,都是多字节的,如果是Unicode字符集的话,调用API时,都需要进行转换,会很麻烦的。工程编译通过,至此,我们已经把外挂的基础框架构建完成了,下一篇开始,我将逐一的把市面上在售外挂的一些基本功能,实现出来,将做具体分析。首先,我们新建应用DLL主工程,工程名称我们就叫做IUGMain。1、把工程更改为64位应用。
2024-09-15 16:52:38
547
原创 UG二次开发,菜单工具栏入口DLL编写
在 extern DllExport void ufusr 函数中,我们首先要获取当前打开UG的怎么版本,因为不同的UG版本,需要对应版本编译的DLL。当然,还要判断当前系统是否为32位系统,如果是32位,我们还要使用32的DLL加载,因为使用32的比较少,这里就不进行介绍了。下一篇我们将进行应用DLL入口的编写,主要是工具栏菜单的绑定,窗口的调用等。根据获取到的UG版本号,这里我们就加载不同的应用DLL了。
2024-09-13 23:35:36
638
原创 UG 二次开发-菜单与工具条
这样子在,在UG启动的时候,就会从 G:\csdnwork\iugtool\startup 加载我们的外挂。我们后面会编写,我们继续介绍菜单和工具条。下一篇,我们将介绍 startup 加载DLL的编写,这涉及到多UG版本的加载方法,以后实际功能DLL的加载方法,菜单栏,工具栏与功能的绑定。打开UG安装目录下面的 UGII\menus\custom_dirs.dat 文件。这三个文件,再打开UG,就可以看到我们的工具栏和菜单已经添加到UG上面。文件我已经上传,大伙可以下载来看下具体的格式。
2024-09-13 20:35:21
784
原创 UG NX二次开发基础篇-外部模式与DLL内部模式(二 DLL内部模式)
通常情况下,我们希望我们的外挂,在UG启动的时候,就自动加载我们的外挂,并以菜单和工具条的方式,显示在UG上面。当然,这也是市面上所有外挂的操作,因为您不可能要求你的用户,以手工加载的方式,去调用你的外挂吧。在上一篇中,有粉丝留言说,启动 bat 文件,启动EXE外挂,会提示无法找到DLL的错误,这是因为UG的环境变量设置有问题,这里,我们把BAT文件作一个修改,直接改为实际目录。EXE外部模式,还有很多部分需要添加的,如参数的传递、输出消息的显示、UG操作的消息显示,等等。Dll执行结束后,会调用。
2024-09-13 19:44:06
1000
原创 UG 二次开发中多版本管理
从此处复制设置中,我们选择“DEBUG”,实际上,我们最终在UG中使用时,最是好编译成Release版本,为了避免多个版本存在时,名字混乱,我们可以将编译配置做一个命名规则 ,比如UG 11 Release版本的,我们就命名为,UG11R, 调试版本命名为UG11D。我们开发出来的UG 插件,可能在不同的UG版本中使用,如果我们每一个UG版都新建一个工程,这样管理起来会非常的麻烦,下面教大家,如何在一个工程中,同时编译不同版本的UG 插件。从UG11D处复制,这样复制的方法,是减少我们工程的配置。
2024-09-13 00:01:30
637
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人