![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
界面
恩·艾克斯·红
这个作者很懒,什么都没留下…
展开
-
NX/UG二次开发—其他—BlOCK UI调用NX自带功能的方法
对于有些应用场景,会存在需要使用NX自带的功能,如果功能简单,自己写一下也可以,但那还要做一个子界面写代码,这里介绍三种方法。仅供参考:1、发送消息调用NX自带功能: int menuID = 0; UF_MB_ask_button_id(menuName, &menuID); if (menuID > 0) { HWND pswnd = NULL; pswnd = (HWND)UF_UI_get_default_parent(); if (pswnd != NUL原创 2022-03-01 21:10:09 · 4058 阅读 · 10 评论 -
MFC—显示NX图标或透明背景图标
注意:只针对32位带alpha通道的BMP!第一种方法(显示小图标不清晰): //加载位图 CImage sourceImage; sourceImage.LoadFromResource(AfxGetInstanceHandle(), IDB_BMP_NX); //新建位图 CImage showImage; showImage.Create(sourceImage.GetWidth(), sourceImage.GetHeight(), 32, CImage::createAlph原创 2021-12-12 23:29:16 · 1732 阅读 · 0 评论 -
NX/UG二次开发—Block UI—设置点选控件的捕捉点被勾选
当用户在某些操作后,有时候会关闭捕捉点,但希望跳转到点选选择控件时,捕捉点被开启。在测试时发现UF_MB_ask_toggle_state获取状态是对的,但是UF_MB_set_toggle_state没有效果,但通过发送消息可以实现,以下是可以实现的方法,测试过UG11和NX1969,仅做参考,如有其他方法还请指点。 HWND pswnd = NULL; pswnd = (HWND)UF_UI_get_default_parent(); if (pswnd == NULL) r...原创 2021-09-14 20:41:59 · 1407 阅读 · 3 评论 -
NX/UG二次开发—Block UI—关于使用代码关闭UI
对与有些应用场景,用户希望Blcok UI自动关闭。比如,子窗口选择完对象后。网上有通过内部函数关闭窗口,如下所示:JAM_lookup_tagclass UGS::UIFW * UIFW_ask_uifw(void)int UGS::UIFW::end_dialog(class UGS::UICOMP *,int)但关闭后,UI界面中的输入值,并未保存上一次操作的,类似点击了关闭或者取消按钮。与内部函数DLG_call_cancel_cb执行效果差不多,但不如DLG_call_cancel原创 2021-07-26 17:44:09 · 3186 阅读 · 0 评论 -
NX/UG二次开发—Block UI—枚举列表调整宽度
在NX的cam模块,很多参数后面都会有一个很窄的枚举框,最近有一个需求要求批处理一些程序的参数,比如stepover,但参数后面有一个选刀具百分比和固定两个参数,如下图所示:有一个宽度很窄的枚举框。但是blcok UI的枚举框宽度并不能调整,因此还是用spy查看下NX的窄枚举框的属性:经过查找,属性为Width,值为4。那么可以通过libuifw.dll中的导出函数,修改这个属性值。通过翻阅导出函数,找到UGS::UICOMP_enum::set_width(int)。效果如下:...原创 2021-07-07 21:24:41 · 1968 阅读 · 4 评论 -
NX/UG二次开发—Block UI—指定方位控件重命名
指定方位控件显示的标签原创 2021-06-02 14:29:29 · 1443 阅读 · 1 评论 -
NX/UG二次开发—Block UI—部分控件不按回车Value没有输入
对于NXOpen::BlockStyler::IntegerBlock控件,在输入数值后,如果不按“ENTER”,或界面上没有切换他控件,数值并未真正输入到控件中。比如在IntegerBlock控件中输入了数值,然后没有按“ENTER”,而此时需求要求在其他选择控件中需要获取IntegerBlock控件中的值,如果使用IntegerBlock->Value(),那么获取的是输入前的数值。那这种情况,需要怎么处理?1、通过转换成MFC控件获取,这里就不描述过程了,主要介绍下一个方法。2、通过内部原创 2021-04-23 12:07:17 · 1348 阅读 · 2 评论 -
NX/UG二次开发—3D BOX选择—内部类构造
在做某些项目时,经常需要获取某一对象的周围的对象,比如获取距离一个实体最近的实体,如果简单数模,遍历当前视图的实体逐一测量,获取最小值即为所求。但对于复杂数模,比如汽车前舱数模,包含发动机,那么这种方法就不适合了,速度会很慢。在新版UG中(本文使用的是NX1872),提供了3DBOX选择工具,可以快速选择一个对象盒子内的所有对象,还可以根据类型设定范围,工具如下:但录制操作的时候,发现并不能录制,翻阅NXopen和ufun文档并未发现有相关使用的类。但在libugui.dll导出函数中,发现有.原创 2021-03-16 13:23:15 · 1449 阅读 · 0 评论 -
NX/UG二次开发—UI—内部UI的使用
我们经常使用blockUI控件进行开发,但是有些控件在UG自身的工具很常见,但是在blockUI样式编辑器中并没有提供。参照网上一些大神的帖子和思路,发现是可以通过配置软件安装目录下..\Siemens\NX\UGII\menus\styler_blocks_simpl_chinese.pax(注意不同语言的UG修改对应不同的pax文件)可以实现一些UG一些内部UI。以下以常见的宽枚举控件为例,如下图所示:1、先打开含有你需要控件的工具,比如艺术样条对话框2、然后选择UIFW侦查原创 2021-02-25 22:38:33 · 6347 阅读 · 3 评论 -
NX/UG二次开发—界面—Clistctrl仿UGblockUI的Treelist重绘-笔记
效果图:1、绘制非item区域可以使用NM_CUSTOMDRAW这个消息。非item区域分为:插入行的下方和插入行的右侧两个区域。2、对于create的clistctrl控件,在MFC对话框中正常响应NM_CUSTOMDRAW,但对于嵌入到blcokUI后,不响应。我目前的解决方案是:嵌入MFC对话框,然后从资源工具栏拖到对话框内,然后子类化控件。3、插入行不能使用InsertItem,需要用数组记录每次插入行的信息(我定义了一个结构体,把单元格颜色信息也存取了),然后使用LVN_GETDI原创 2020-09-02 09:55:47 · 3090 阅读 · 3 评论