实例:NX二次开发使用链表进行拉伸功能(链表相关功能练习)

一、概述

        在进行批量操作时经常会利用链表进行存放相应特征的TAG值,以便后续操作,最常见的就是拉伸功能。这里我们以拉伸功能为例子进行说明。

二、常用链表相关函数

UF_MODL_create_list                创建一个链表,并返回链表的头指针。

UF_MODL_put_list_item             插入元素到链表中,不检验对象是否重复,或者已经存在。

UF_MODL_ask_list_count           获取链表对象数量,从头开始遇到NULL_Tag结束。

UF_MODL_ask_list_item             查询链表对象标识,给个位子返回标识

UF_MODL_delete_list_item         删除列表的对象,给一个tag就可以删除链表的对象。

UF_MODL_delete_list                  删除整个链表,释放内存。

三、实现的功能

1、创建四条直线

2、根据四条直线创建拉伸特征

3、查询链表中的数量

4、删除链表中的第一个对象

5、查询删除后的链表数量

6、查询删除后链表的第一个对象TAG值

四、代码分析

//用户定义
#include <uf_ui.h>
#include <uf_curve.h>
#include <uf_modl.h>void MyClass::do_it()
{// TODO: add your code hereUF_initialize();//创建一条直线UF_CURVE_line_t line1,line2,line3,line4;tag_t line1TAG[4];line1.start_point[0] = 0.0;line1.start_point[1] = 0.0;line1.start_point[2] = 0.0;line1.end_point[0] = 10.0;line1.end_point[1] = 0.0;line1.end_point[2] = 0.0;UF_CURVE_create_line(&line1, &line1TAG[0]);line2.start_point[0] = 10.0;line2.start_point[1] = 0.0;line2.start_point[2] = 0.0;line2.end_point[0] = 10.0;line2.end_point[1] = 10.0;line2.end_point[2] = 0.0;UF_CURVE_create_line(&line2, &line1TAG[1]);line3.start_point[0] = 10.0;line3.start_point[1] = 10.0;line3.start_point[2] = 0.0;line3.end_point[0] = 0.0;line3.end_point[1] = 10.0;line3.end_point[2] = 0.0;UF_CURVE_create_line(&line3, &line1TAG[2]);line4.start_point[0] = 0.0;line4.start_point[1] = 10.0;line4.start_point[2] = 0.0;line4.end_point[0] = 0.0;line4.end_point[1] = 0.0;line4.end_point[2] = 0.0;tag_t line4TAG = NULL_TAG;UF_CURVE_create_line(&line4, &line1TAG[3]);//链表操作uf_list_p_t objectslist = NULL;UF_MODL_create_list(&objectslist);//创建链表for (int i = 0; i < 4; i++){UF_MODL_put_list_item(objectslist, line1TAG[i]);//放置链表}//创建拉伸char *taper_angle = "0";//抜模char * limit[2] = { "0.0", "20.0" };//拉伸高度double point[3] = { 0.0,0.0,0.0 };//已经弃用double direction[3] = { 0.0,0.0,1.0 };//矢量方向UF_FEATURE_SIGN sign = UF_NULLSIGN;uf_list_t *features = NULL;UF_MODL_create_extruded2(objectslist, taper_angle, limit, point, direction, sign, &features);//访问链表数量int cout;UF_MODL_ask_list_count(objectslist, &cout);char msg[256];sprintf(msg, "%d", cout);uc1601(msg, 1);//删除链表中的第一个UF_MODL_delete_list_item(&objectslist, line1TAG[0]);int cout1;UF_MODL_ask_list_count(objectslist, &cout1);char msg1[256];sprintf(msg1, "%d", cout1);uc1601(msg1, 1);tag_t object = NULL_TAG;UF_MODL_ask_list_item(objectslist, 1, &object);char msg2[256];sprintf(msg2, "%d", object);uc1601(msg2, 1);UF_MODL_create_list(&objectslist);//删除链表UF_terminate();
}

五、运行结果

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

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

相关文章

认识String类

认识String类 前面我们学习了类和对象&#xff0c;这一小节咱们来谈String类 目录 认识String类前言一、String类的创建方式二、String引用类型的特点及方法1.存储内容2.String对象的比较3.字符串查找在这里插入图片描述4.转换&#xff08;一&#xff09;数字转为为字符串&…

阿里云原生:如何熟悉一个系统

原文地址:https://mp.weixin.qq.com/s/J8eK-qRMkmHEQZ_dVts9aQ?poc_tokenHMA-_mWjfcDmGVW6hXX1xEDDvuJPE3pL9-8uSlyY 导读&#xff1a;本文总结了熟悉系统主要分三部分&#xff1a;业务学习、技术学习、实战。每部分会梳理一些在学习过程中需要解答的问题&#xff0c;这些问题…

集成学习 | 集成学习思想:Stacking思想

目录 一. Stacking 思想 一. Stacking 思想 Stacking(或stacked generalization)&#xff0c;是指训练一个模型用于组合(combine)其他各个模型 Stacking有两层第一层是不同的基学习器&#xff08;classifiers/regressors&#xff09;第二层是用于组合基学习器的元学习&#xf…

Reactor Netty

在springframework 里面&#xff0c;我们只有connection id。但是在底层的reactor netty,我们除了connection id还有local address and remote address HTTP/1 HTTP/2

Qt creator构建DLL库

文章目录 一、构建DLL库二、隐式调用DLL库 一、构建DLL库 Qt creator创建DLL项目。 实现功能函数。 运行代码&#xff0c;debug目录下会有.dll和.lib文件。 二、隐式调用DLL库 QT新建控制台项目。将.lib文件和与之关联的头文件赋值到项目文件夹。 3. 添加头文件和外部依赖库…

GuLi商城-商品服务-API-三级分类-网关统一配置跨域

参考文档&#xff1a; https://tangzhi.blog.csdn.net/article/details/126754515 https://github.com/OYCodeSite/gulimall-learning/blob/master/docs/%E8%B0%B7%E7%B2%92%E5%95%86%E5%9F%8E%E2%80%94%E5%88%86%E5%B8%83%E5%BC%8F%E5%9F%BA%E7%A1%80.md 谷粒商城-day04-完…

[数据结构初阶]二叉树

各位读者老爷好&#xff0c;鼠鼠我现在浅浅介绍一些关于二叉树的知识点&#xff0c;在各位老爷茶余饭后的闲暇时光不妨看看&#xff0c;鼠鼠很希望得到各位老爷的指正捏&#xff01; 开始介绍之前&#xff0c;给各位老爷看一张风景照&#xff0c;有读者老爷知道在哪里吗&#x…

003- AutoCoder 使用Web版大模型,性感的Human As Model 模式

这是下面这篇文章的继续。 002- 用 AutoCoder 添加和修改代码 前面我们提到&#xff0c;如何解决你没有API版大模型&#xff0c;或者你的API版大模型太弱&#xff0c;而你只有Web版本的诸如 Kimi/GPT4 的情况下&#xff0c;改如何让AutoCoder帮助你完成编程&#xff1f; 我们有…

Excel数字乱码怎么回事 Excel数字乱码怎么调回来

在日常工作中&#xff0c;Excel是我们最常使用的数据处理软件之一&#xff0c;它强大的功能使得数据处理变得既简单又高效。然而&#xff0c;用户在使用Excel时偶尔会遇到数字显示为乱码的问题&#xff0c;这不仅影响了数据的阅读&#xff0c;也大大降低了工作效率。那么&#…

会员中心微服务

文章目录 1.环境配置1.创建会员中心模块2.检查父子模块的pom.xml1.父模块注意&#xff1a;如果父模块中的依赖显示not found&#xff0c;原因是子模块并没有引用&#xff0c;不用在意 2.子模块 3.pom.xml 引入相关依赖&#xff08;别忘记刷新maven&#xff09;4.application.ym…

【Node.js】全局变量和全局 API

node 环境中没有 dom 和 bom &#xff0c;此外 es 基本上都是可以正常使用的。 如果一定要使用 dom 和bom&#xff0c;可以借助第三方库 jsdom 帮助我们实现操作。npm i jsdom 实例&#xff1a; const fs require(node:fs) const {JSDOM} require(jsdom)const dom new JS…

scrapy爬虫框架

scrapy爬虫框架 一、scrapy的概念作用和工作流程1、scrapy的概念2、scrapy框架的作用3、scrapy的工作流程&#xff08;重点&#xff09;3.1 回顾之前的爬虫流程3.2 改写上述流程3.3 scrapy的流程3.4 scrapy的三个内置对象3.5 scrapy中每个模块的具体作用 二、scrapy的入门使用1…

Spring Boot1

SpringBoot概述 Spring Boot是Spring提供的一个子项目&#xff0c;用于快速构建Spring应用程序 SpringBoot特性 起步依赖 本质上就是一个Maven坐标&#xff0c;整合了完成一个功能所需要的所有坐标 自动配置 遵循约定大于配置的原则&#xff0c;再boot程序启动后&#xff0…

学习Python的第一天(下载Python环境和工具Pycharm)

下载工具 PyCharm Community Edition 2023.3.4 下载环境 Python3.10.4 目录 1.环境Python下载 1.1 Python环境变量下载网址: 1.2 下载步骤 2.工具Pycharm下载 2.1 pycharm下载网址 2.2 pycharm下载步骤 1.环境Python下载 1.1 Python环境变量下载网址: Python Releas…

C# WPF编程-控件

C# WPF编程-控件 概述WPF控件类别包括以下控件&#xff1a;背景画刷和前景画刷字体文本装饰和排版字体继承字体替换字体嵌入文本格式化模式鼠标光标 内容控件Label&#xff08;标签&#xff09;Button&#xff08;按钮&#xff09; 概述 在WPF领域&#xff0c;控件通常被描述为…

java常用编程算法——方法递归概述及猴子吃桃案例

前言&#xff1a; 接触到了递归算法&#xff0c;整理下笔记。打好基础&#xff0c;daydayup! 方法递归 方法调用自身的形式称为方法递归&#xff0c;是编程时常用的一种算法 递归的形式 递归有两种情况&#xff1a;1&#xff0c;直接递归&#xff1b;2&#xff0c;间接递归&…

阿里CICD流水线Docker部署,将阿里镜像私仓中的镜像部署到服务器中

文章目录 阿里CICD流水线Docker部署&#xff0c;将阿里镜像私仓中的镜像部署到服务器中一、CICD流水线的初步使用可以看我之前的两篇文章二、添加部署任务&#xff0c;进行Docker部署&#xff0c;创建一个阿里的试用主机1、选择主机部署&#xff0c;并添加服务主机2、创建免费体…

dash 初体验(拔草)

Dash简介 Dash 是一个高效简洁的 Python 框架&#xff0c;建立在 Flask、Poltly.js 以及 React.js 的基础上&#xff0c;设计之初是为了帮助前端知识匮乏的数据分析人员&#xff0c;以纯 Python 编程的方式快速开发出交互式的数据可视化 web 应用。 搭建环境 在学习 Dash 的…

Redis的String类型为什么重新设计使用了SDS数据结构呢

Redis 选择重新设计其 String 类型的底层数据结构&#xff0c;采用 SDS&#xff08;Simple Dynamic String&#xff09;而不是直接使用 C 语言标准库提供的原生字符串&#xff08;char*&#xff09;的原因主要包括以下几点&#xff1a; O(1) 时间复杂度获取长度&#xff1a; 在…

极简自建web视频会议,私有云,rtmp/rtsp/webrtc一键参会直播会议互动方案

随着视频互动深入工作日常&#xff0c;很多客户需要自建一个会议&#xff0c;监控的交互平台&#xff0c;目前外面不管是开源还是非开源的平台&#xff0c;都是极为复杂&#xff0c;一般linux安装库关联部署复杂&#xff0c;非技术人员根本没办法使用&#xff0c;不方便集成部署…