NX二次开发常用函数:UF_MODL_ask_feat_......(一)

news2025/2/22 6:36:50

         最近学习NX二次开发发现有一些函数经常使用,俗话说得好,好记性不如烂笔头,现在做一下笔记,帮助理解。

UF_MODL_ask_feat_......所在头文件uf_modl.h

1、UF_MODL_ask_feat_body(通过特征查询体)

概述:通过特征查询体,输出是一个实体类型 (type 70, subtype 0) ,type 70, subtype 0可以通过uf_object_types.h头文件进行查看。该头文件所有NX对象类型和子类型的名称。如下图所示。

适用环境:内部或外部开发

函数解析:

tag_t	    feature_obj_id	    Input	特征对象的TAG
tag_t *	    body_obj_id	        Output	通过特征找体后得到的的实体对象TAG

实例:通过特征找体,并打印体的TAG值,并对体进行染色(注意直接对特征进行染色时不可以的)

	UF_initialize();
	//创建块
	UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
	double Corner_pt[3] = { 0.0, 0.0, 0.0 };//设置原点
	char *Edge_Len[3] = { "100", "100", "100" };//设置长宽高
	tag_t BlkTag = NULL_TAG;
	UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);

	//通过特征找体
	tag_t bodyTag = NULL_TAG;
	UF_MODL_ask_feat_body(BlkTag, &bodyTag);

	//打印实体的TAG值
	char msg[256];
	sprintf(msg, "%d", bodyTag);

	//将实体染为红色
	UF_OBJ_set_color(bodyTag, 186);
	UF_terminate();

结果:

2、UF_MODL_ask_feat_edges(通过特征查询边)

概述:通过特征查询边,输出是一个实体类型边 (type 70, subtype 3) ,type 70, subtype 3可以通过uf_object_types.h头文件进行查看。该头文件所有NX对象类型和子类型的名称。如下图所示。

适用环境:内部或外部开发

函数解析:

tag_t	        feature_obj_id	Input	                特征对象的TAG
uf_list_p_t *	object_list	    Output to UF_*free*	    使用链表对边进行收集,注意使用UF_MODL_delete_list()释放空间

实例:通过特征找边,并打印所有边的TAG值

    UF_initialize();
	//创建块
	UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
	double Corner_pt[3] = { 0.0, 0.0, 0.0 };//设置原点
	char *Edge_Len[3] = { "100", "100", "100" };//设置长宽高
	tag_t BlkTag = NULL_TAG;
	UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);

	//通过特征找体
	tag_t bodyTag = NULL_TAG;
	UF_MODL_ask_feat_body(BlkTag, &bodyTag);

	//通过特征查询边
	uf_list_p_t edgelist = NULL_TAG;
	UF_MODL_ask_feat_edges(BlkTag, &edgelist);
	
	//链表操作
	int cout;
	UF_MODL_ask_list_count(edgelist, &cout);	//访问链表数量
	tag_t edgwTag = NULL_TAG;
	for (int i = 0; i < cout; i++)
	{
		//打印实体的TAG值
		UF_MODL_ask_list_item(edgelist, i, &edgwTag);
		char msg[256];
		sprintf(msg, "%d", edgwTag);
		print(msg);
	}

	UF_terminate();

结果:

3、UF_MODL_ask_feat_faces(通过特征查询面)

概述:通过特征查询面,输出是一个实体类型面 (type 70, subtype 3) ,type 70, subtype 3可以通过uf_object_types.h头文件进行查看。该头文件所有NX对象类型和子类型的名称。如下图所示。

适用环境:内部或外部开发

函数解析:

tag_t	        feature_obj_id	Input	                特征对象的TAG
uf_list_p_t *	object_list	    Output to UF_*free*	    使用链表对面进行收集,注意使用UF_MODL_delete_list()释放空间

实例:通过特征找面,并打印所有面的TAG值

	UF_initialize();
	//创建块
	UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
	double Corner_pt[3] = { 0.0, 0.0, 0.0 };//设置原点
	char *Edge_Len[3] = { "100", "100", "100" };//设置长宽高
	tag_t BlkTag = NULL_TAG;
	UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);

	//通过特征找体
	tag_t bodyTag = NULL_TAG;
	UF_MODL_ask_feat_body(BlkTag, &bodyTag);

	//通过特征查询边
	uf_list_p_t edgelist = NULL_TAG;
	UF_MODL_ask_feat_edges(BlkTag, &edgelist);
	
	//通过特征查询面
	uf_list_p_t facelist = NULL_TAG;
	UF_MODL_ask_feat_faces(BlkTag, &facelist);

	//链表操作
	int cout;
	UF_MODL_ask_list_count(facelist, &cout);	//访问链表数量
	tag_t faceTag = NULL_TAG;
	for (int i = 0; i < cout; i++)
	{
		//打印实体的TAG值
		UF_MODL_ask_list_item(edgelist, i, &faceTag);
		char msg[256];
		sprintf(msg, "%d", faceTag);
		print(msg);
	}

	UF_terminate();

结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1539221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

liunx centos7 下通过yum删除安装已经安装的php

执行下面命令查看php相关的包 rpm -qa | grep php 只需要卸载几个名为common的包即可&#xff0c;其他同版本依赖会被全部删除&#xff0c;删除php71w-common&#xff0c;71w版本的依赖包全部会被删除。 查看php包的命令 rpm -qa | grep php 或 yum list installed | gre…

鸿蒙APP应用开发教程—超详细的项目结构说明

1. 新建项目 打开DevEco Studio, 选择 Create Project: 1.1 选择模版 Create Project - Choose Template 1.2 配置项目 Create Project - Configure Project 如果使用的是 DevEco 3.X 版本, 可以根据 Compile SDK版本选择不同的模式, 比如: 3.0.0(API 8)及更早 - 仅支持 …

Docker-Image

Docker Docker 镜像是什么为什么需要镜像镜像命令总览docker imagesdocker tagdocker pulldocker pushdocker rmidocker savedocker loaddocker image inspectdocker historydocker importdocker image prunedocker build Docker 镜像是什么 Docker image 本质上是一个 read-on…

图像分类从零开始(1)

尽我所能&#xff0c;总结留给后面的师弟们&#xff01; 1.目标 搭建一个完整的系统&#xff0c;包括图像数据集预处理&#xff0c;训练模型&#xff0c;分类器&#xff0c;优化器&#xff0c;以及结果数据处理。 2.理论 3.实例&#xff08;猫狗分类&#xff09; Gitee代码…

猫,路由器,WIFI

家庭网络常识 1&#xff1a;猫、路由器、wifi_哔哩哔哩_bilibili 入户光纤插到猫上面&#xff0c;网线连接猫和路由器&#xff0c;网线连接路由器和电脑。路由器可以发射WIFI。 手机通过WIFI连接到路由器。 左边是猫&#xff0c;右边是光猫。 &#xff08;modem&#xff09; …

二分算法的变种----查找递增可重复数组边界

public class test {//数组长度a,b,c为8,d为7&#xff1b;static int[] a {3,5,8,8,8,9,9,10};static int[] b {8,8,8,8,8,8,8,8};static int[] c {0,0,0,0,0,0,0,0};static int[] d {0,0,0,0,0,0,0};public static void main(String[] args) {int target 0;System.out.pr…

鸿蒙Harmony应用开发—ArkTS(stateStyles:多态样式)

Styles和Extend仅仅应用于静态页面的样式复用&#xff0c;stateStyles可以依据组件的内部状态的不同&#xff0c;快速设置不同样式。这就是我们本章要介绍的内容stateStyles&#xff08;又称为&#xff1a;多态样式&#xff09;。 概述 stateStyles是属性方法&#xff0c;可以…

python项目格式代码风格

Visual Studio Code 选择使用 black 作为代码格式化工具,保证提交代码风格的统一 1. Install black pip install black2. Install black and isort extension for vscode: 3. 设定black及isort的格式化配置 3.1. ctrl + , 打开配置面板 3.2. 在弹出的json配置中添加,&quo…

周末总结(2024/03/23)

工作 上周末学习了精力管理&#xff0c;但是没有使用成功&#xff0c;总结了一下&#xff0c;有两点没有做到&#xff1a; 接受破烂现状&#xff0c;开始思考 我还没有完全接受自己的失败&#xff0c;很少跟别人分享自己的生活&#xff0c;需要改进 上周计划做的React练习一…

Nginx 全局块配置汇总

前言 nginx.conf 是 nginx 的主配置文件&#xff0c;配置项分为三大块&#xff0c;events 块和 http 块外面的都是全局块 本文记录最常用的全局块配置汇总&#xff0c;对于比较重要或复杂的配置项则另起文章总结&#xff0c;对应配置项中有文章地址 user user 指令用于配置运…

【ORB-SLAM3】在 Ubuntu20.04 上编译 ORM-SLAM3 并使用 D435i 运行测试

【ORB-SLAM3】在 Ubuntu20.04 上编译 ORM-SLAM3 并使用 D435i 运行测试 1 Prerequisites1.1 C11 or C0x Compiler1.2 Pangolin1.3 OpenCV1.4 Eigen3 2 安装 Intel RealSense™ SDK 2.02.1 测试设备2.2 编译源码安装 3 编译 ORB-SLAM34 使用 D435i 运行 ORB-SLAM34.1 运行4.2 运…

Matlab使用教程(持续更新)

1. Matlab Matlab被广泛的应用在数据分析&#xff0c;汽车仿真&#xff0c;机器人以及医学研究等众多方面。 它可以帮助我们理解研究复杂的系统。 在60年代和70年代&#xff0c;计算机使得科学家和工程师完成了以前不可能进行的计算&#xff1b;但是需要懂得计算机编程。 C…

[学习笔记]CNN代码实战

参考资料&#xff1a; 1.https://www.bilibili.com/video/BV1zF411V7xu 2.项目1&#xff1a;基于经典网络架构&#xff08;resnet&#xff09;训练图像分类模型&#xff08;及flask部署&#xff09; 思维导图

vue3项目初始化

初始化项目newsapp VSCode 打开终端&#xff0c;newsapp项目目录&#xff0c;可自定义 vue create newsapp 有提示“因为在此系统上禁止运行脚本”的话&#xff0c;请执行 set-ExecutionPolicy RemoteSigned 执行后再重复执行vue create newsapp 注意选择Vue 3版本 测试项…

【prompt六】MaPLe: Multi-modal Prompt Learning

1.motivation 最近的CLIP适应方法学习提示作为文本输入,以微调下游任务的CLIP。使用提示来适应CLIP(语言或视觉)的单个分支中的表示是次优的,因为它不允许在下游任务上动态调整两个表示空间的灵活性。在这项工作中,我们提出了针对视觉和语言分支的多模态提示学习(MaPLe),以…

离散数学之范式方法

引子&#xff1a; 对于一个命题&#xff0c;如何判定命题公式为永真式、永假式和可满足的呢或二个命题公式等价。我们学过二种方法&#xff1a; 1&#xff0c;真值表法&#xff1a;对于变元的所有真值指 派&#xff0c;看对应命题公式的真值。2&#xff0c;命题演算方法&#…

Nacos介绍和统一配置管理

Nacos&#xff08;全称为 Alibaba Cloud Nacos&#xff0c;或简称为 Nacos&#xff09;是一个开源的分布式服务发现和配置管理系统。它由阿里巴巴集团开发并开源&#xff0c;旨在帮助开发人员简化微服务架构下的服务注册、发现和配置管理。 一、Nacos 提供了以下主要功能&…

NC 现金流量查询 节点 多账簿联查时,根据所选择的列来判断明细和现金流量联查按钮是否可用,根据添加列选择监听事件处理。

NC 现金流量查询 节点 多账簿联查时&#xff0c;根据所选择的列来判断明细和现金流量联查按钮是否可用&#xff0c;如下图的情况&#xff1a; 在现金流量查询界面UI类的initTable(QueryConditionVO conVO)方法中添加列选择监听事件即可&#xff0c;如下&#xff1a; // 列监听…

[Netty实践] 请求响应同步实现

目录 一、介绍 二、依赖引入 三、公共部分实现 四、server端实现 五、client端实现 六、测试 一、介绍 本片文章将实现请求响应同步&#xff0c;什么是请求响应同步呢&#xff1f;就是当我们发起一个请求时&#xff0c;希望能够在一定时间内同步&#xff08;线程阻塞&am…

【JavaEE初阶系列】——synchronized 的特性(互斥和可重入性)

目录 &#x1f4bb;synchronized 的特性 &#x1f5a5;️互斥及使用示例 &#x1f6a9;锁修饰代码块 &#x1f6a9;锁修饰实例方法/静态方法 &#x1f388;锁修饰实例方法 &#x1f388;锁修饰静态方法 &#x1f6a9;总结 &#x1f5a5;️可重入 &#x1f6a9;死锁的…