C# NX二次开发:超级点控件使用详解

大家好,今天要介绍ug二次开发过程中的一个叫超级点的控件,这个控件有一些和大家之前使用的不太一样的地方,看了这篇文章会节省很多自己去研究的时间。

超级点控件如上图所示,

在使用过程中,大家可能习惯通过下面的方式,获取选中内容的Tag值:

TaggedObject[] taggeds = SelectPoints.GetSelectedObjects();

但是会发现获取的值永远都是一个,无论选择了多少内容,这个可能是官方在设计这个控件的时候就和其他控件设计的不一样,所以无法通过上面的方法获取想要的内容。

下面直接讲如何获取里面所有点位:

int S= theUI.SelectionManager.GetNumSelectedObjects();

for (int i = 0; i < S; i++)

{

TaggedObject tagged = theUI.SelectionManager.GetSelectedTaggedObject(i);

Debug.Print(tagged.Tag+ tagged.GetType().ToString());

double[] pointdata = new double[3];

theUfSession.Curve.AskPointData(tagged.Tag, pointdata);

Debug.Print(pointdata[0]+"+"+ pointdata[1]+ "+" + pointdata[2]);

}

首先要知道几个方法的意思:

(1)theUI.SelectionManager.GetNumSelectedObjects(),这个方法表示获取选中对象的数量。

(2)theUfSession.Curve.AskPointData()这个方法的含义如下所示:

Defined in: uf_curve.h

Overview

Returns the coordinates for the specified object identifier of a point.

Environment

Internal and External

Required License(s)

gateway

int UF_CURVE_ask_point_data

(

tag_t point,

double point_coords [ 3 ]

)

|--------|----------------------|--------|---------------------------------------------|
| tag_t | point | Input | Object identifier of point to inquire about |
| double | point_coords [ 3 ] | Output | Coordinates of point in absolute space |

表示通过输入点位的Tag值,返回一个该点位对应的坐标值。

通过上面的程序,大家就可以获取到所有想要的点位,也就解决了这个非常重要的问题了。

今天要介绍的就是这么多,我们下篇文章再见。

相关推荐
坚果派·白晓明12 小时前
【鸿蒙PC三方库移植适配框架解读系列】第八篇:扩展lycium框架使其满足rust三方库适配
c语言·开发语言·华为·rust·harmonyos·鸿蒙
花间相见12 小时前
【PaddleOCR教程01】PP-OCRv5 全面指南:从模型架构到实战部署
开发语言·r语言
小短腿的代码世界13 小时前
Qt 股票订单撮合引擎:高频交易系统的核心心脏
开发语言·数据库·qt·系统架构·交互
光泽雨14 小时前
c#中的“跨界找人”
c#
谙弆悕博士14 小时前
快速学C语言——第16章:预处理
c语言·开发语言·chrome·笔记·创业创新·预处理·业界资讯
yuan1999715 小时前
基于 C# 实现的 Omron HostLink (FINS) 协议 PLC 通讯
开发语言·c#
qq_4228286215 小时前
android图形学之SurfaceControl和Surface的关系 五
android·开发语言·python
如竟没有火炬16 小时前
用队列实现栈
开发语言·数据结构·python·算法·leetcode·深度优先
火星papa16 小时前
C# 任务(Task)的基础实现
c#·任务·task
折哥的程序人生 · 物流技术专研16 小时前
《Java 100 天进阶之路》第17篇:Java常用包装类与自动装箱拆箱深入
java·开发语言·后端·面试