UG/NX二开Siemens官方实例解析 4.3 EX_Curve_CreateSpline(创建样条曲线)

news2024/9/25 11:14:06

前言

本系列文章主要讲解NXOpen UF API(简称ufun函数)的使用,之前看教学视频大都建议用ufun进行开发,这里西门子官方还专门给了一套系列文章来讲,说明官方也是特别推崇ufun。

本人从事二开也有一段时间了,我的二开启蒙师父就特别喜欢用NXOpen API,用他的话来说“年少不知nxopen好,错把ufun当成宝”,其实就我个人而言,还是喜欢NXOPEN+ufun联合开发。


一、小节概要

1、背景知识引用

样条曲线的概念:
样条曲线是指利用指定的若干个点拟合出的多项式曲线,样条曲线采用的是近似的拟合方法,但可以很好的满足工程需求,因此得到广泛的应用。

2、知识点提取

1)theUfSession的初始化

2)通过StreamWriter记录日志

3)创建样条曲线相关ufun方法

4)计算样条曲线的拐点信息

二、需求分析

1、效果图

2、需求分解

1)创建样条曲线相关ufun方法

2)计算样条曲线的拐点信息

三、程序分析

1、源码所在位置

UGOPEN\SampleNXOpenApplications\.NET\NXOpenExamples\EX_Curve_CreateSpline

2、主要功能分析

1)创建样条曲线相关ufun方法

int i, k, curve_cnt=0;
Tag curve_array;
char[] buf= new char[UF_OBJ_NAME_LEN+1];
String newnam= new String(buf);
int num_infpts;
double[] range={0.0, 100.0};
double[] inf_pts;
double[] proj_matrx={ 1.0, 0.0, 0.0, 0.0, 1.0, 0.0,0.0, 0.0, 1.0};
int    knot1_fix, knot2_fix, pole1_fix, pole2_fix;
double[] bc1_knots = {-3.0/8.0, -2.0/8.0, -1.0/8.0, 0.0, 1.0/8.0,
                            2.0/8.0, 3.0/8.0, 4.0/8.0, 5.0/8.0, 6.0/8.0,
                            7.0/8.0, 1.0, 9.0/8.0, 10.0/8.0, 11.0/8};
double[] bc1_poles = { 2.0, 0.0, 0.0, 1.0,
                            4.0, 0.0, 0.0, 1.0,
                            3.5, 2.0, 0.0, 1.0,
                            6.0, 6.0, 0.0, 1.0,
                            2.0, 3.5, 0.0, 1.0,
                            0.0, 4.0, 0.0, 1.0,
                            0.0, 2.0, 0.0, 1.0,
                            0.0, 0.0, 0.0, 1.0,
                            2.0, 0.0, 0.0, 1.0,
                            4.0, 0.0, 0.0, 1.0,
                            3.5, 2.0, 0.0, 1.0  };
double[] bc2_knots = {0.0, 0.0, 0.0, 1.0/3.0,
                            2.0/3.0, 1.0, 1.0, 1.0};
double[] bc2_poles = {0.0, 0.0, 1.0, 1.0,
                            1.0, 2.0, 1.0, 1.0,
                            0.625, 0.0, 0.25, 0.25,
                            4.0, 2.0, 1.0, 1.0,
                            5.0, 0.0, 1.0, 1.0 };
theUfSession.Modl.CreateSpline(11,4,bc1_knots,bc1_poles,out curve_array,out knot1_fix,out pole1_fix);
创建样条曲线参数初始化:
1、nc 极点
2、kc 未知
3、bc1_knots 极点+阶数
4、bc1_poles 阵列控制点
5、curve_array 样条曲线tag
6、knot1_fix 结固定状态 0 =未执行修正,1 =结固定序列
7、pole1_fix 极点修正状态 0 =没有执行修正,1 =极点阵列固定

2)计算样条曲线的拐点信息并输出

theUfSession.Curve.AskCurveInflections(curve_array,proj_matrx,range,out num_infpts,out inf_pts);
if (num_infpts > 0)
{
    w.WriteLine("There are {0} inflection points for UFCurve {1}\n",num_infpts, i+1);
    for(k = 0; k < (num_infpts * 4); k++)
    {
        w.WriteLine("inf_pts[{0}] = {1}\n", k, inf_pts[k]);
    }
} 

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

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

相关文章

EasyCRM V5客户关系管理系统源码,全功能全插件带手机版无加密开源版,集成OA系统

这个是Easycrm v5最新版本&#xff0c;程序代码全部大量重写&#xff0c;运行效率提升100倍。轻松负载500w以上数据量。 代码全部明文开源&#xff0c;便于二次开发和部署。 网上其他地方的版本都是很遗憾的告诉你&#xff0c;没有手机版&#xff0c;没有财务管理等功能插件。…

【Unity3D编辑器扩展】Unity3D中实现UI界面控制,UI界面的显示和隐藏实现

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群&#xff1a;1040082875 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 在开发中&#xff0c;可能遇到管理…

EMP v2.5三级共享深度定制对ESM 的支持

版本背景 1 Module Federation 共享逻辑CDN复用性不高2 ESM兼容性日益成熟&#xff0c;性能表现越来越好3 市面上针对 ESM 的模块共享实现不完善4 开发、正式环境结合共享的开发体验不佳 ESM 概念 ESM - ES modules 是 JavaScript 官方的标准化模块系统。相比于 CommonJS 和 …

mysql知识点总结(网安必备)

目录 数据库介绍 数据库基本概念 数据库类型 MySql数据库管理系统 SQL语言 概述 常见操作 表的完整性约束 非外键约束 外键约束 单表查询 函数 多表查询 事务 事务隔离级别 视图 数据库介绍 数据库基本概念 数据&#xff1a;所谓数据&#xff08;Data&#xf…

什么是融合通信?

近年来融合通信概念被广泛提起&#xff0c;那么&#xff0c;什么是融合通信&#xff1f;融合通信可以融合哪些设备或者系统呢&#xff1f; 近代通信技术得益于电话网的出现&#xff0c;人们通过电话实现了跨越式的通信。随着计算机和互联网的出现&#xff0c;人们可以利用互联网…

谷粒学院——十三章、登录与注册

用户登陆业务介绍 单一服务器模式 早期单一服务器&#xff0c;用户认证。 缺点&#xff1a;单点性能压力&#xff0c;无法扩展。 SSO 模式&#xff08;单点登陆&#xff09; 分布式&#xff0c;SSO(single sign on)模式&#xff0c;也叫单点登陆模式。 优点: 用户身份信…

【C++高阶数据结构】图

&#x1f3c6;个人主页&#xff1a;企鹅不叫的博客 ​ &#x1f308;专栏 C语言初阶和进阶C项目Leetcode刷题初阶数据结构与算法C初阶和进阶《深入理解计算机操作系统》《高质量C/C编程》Linux ⭐️ 博主码云gitee链接&#xff1a;代码仓库地址 ⚡若有帮助可以【关注点赞收藏】…

代码随想录拓展day7 649. Dota2 参议院;1221. 分割平衡字符串;5.最长回文子串;132. 分割回文串 II;673.最长递增子序列的个数

代码随想录拓展day7 649. Dota2 参议院&#xff1b;1221. 分割平衡字符串&#xff1b;5.最长回文子串&#xff1b;132. 分割回文串 II&#xff1b;673.最长递增子序列的个数 贪心和动态规划的题目。因为贪心其实没什么规律&#xff0c;所以就简要记录了。 649. Dota2 参议院 …

数据可视化系列-04数据大屏基础知识

文章目录5.销售数据看板5.1 了解数据大屏基础知识1.数据大屏简介&#xff1a;2.数据大屏使用场景3.数据大屏分类5.2 数据大屏的设计&#xff1a;1.大屏前端设计流程2.数据大屏设计尺寸解析3.可视化视觉设计5.3 大屏开发工具DataV&#xff1a;1.DataV数据可视化简介2.优势3.Data…

植物大战僵尸:遍历向日葵的生产速度

找到向日葵的吐出阳光的速度&#xff0c;向日葵生产阳光是一个周期性的,所以其内部是有一个计时器控制的,我们只要找到这个计时器并改写它的定时时间即可完成无限吐阳光的作用 向日葵的遍历技巧: 首先种下一个向日葵 -> 然后CE马上搜索->未知初始化回到游戏->然后在…

关于单相智能多用户远程预付费控系统的优化设计研究

摘要&#xff1a;由于现有系统仅对电表数据进行读取操作&#xff0c;存在成本较高和耗时较长的问题&#xff0c;为此对单相智能多用户远程预付费控系统优化设计进行研究。选择电能表子系统作为优化对象&#xff0c;选取78KO527A微控制器作为电能表子系统的控制核心&#xff0c;…

Java 并发编程 (三)Phaser

#Phaser 功能介绍 CyclicBarrier 解决了 CountDownLatch的缺点&#xff0c;但是其本身也仍然具备一定的缺陷&#xff0c;比如不可以动态添加parties 调用一次await 仅占用1个parties public class MyPhaser {private Phaser phaser new Phaser(3);public void testA(){System…

微信过期文件怎么找回?2个方法,轻松解决

现在很多小伙伴都喜欢使用微信发送文字、图片、语音、照片、文件等内容给对方。可是在其中&#xff0c;文件内容比较特殊。如果没有及时进行查看&#xff0c;过了一段时间就会变成过期文件&#xff0c;无法再进行查看了。微信过期文件怎么找回&#xff1f;今天小编分享2个简单好…

微型消防站一体化指挥作战解决方案

一、政策要求 近年政府对社区微型消防站提出了新的建设要求&#xff1a; 1、 大力发展多种形式消防队伍&#xff0c;逐步加强现役消防力量建设&#xff0c;发展政府专职消防队&#xff0c;企业事业单位专职消防队和志愿消防队。 2、 明确城市消防安全布局和公共消防设施的消…

vue 可视化表单设计器 自定义组件

有一款基于vue的可视化表单编辑器&#xff0c;直接双击或者拖拽组件&#xff0c;便可以创建一个表单&#xff0c;非常方便。今天为大家介绍这款编辑器&#xff1a; 官方地址&#xff1a;Variant Form - 可视化低代码表单 github地址&#xff1a;https://github.com/vform666/…

Redshift渲染器为什么这么受欢迎?

Redshift是用于高质量制作工作的渲染器 。它是很快的渲染引擎&#xff0c;并且可以很好地与许多第三方插件配合使用。在本文中&#xff0c;让我们深入了解Redshift的更多细节。什么是 Redshift 及其工作原理&#xff1f;Redshift 是一种有偏见的 GPU 渲染引擎&#xff0c;它支持…

【回答问题】ChatGPT上线了!给我推荐20个比较流行的OCR模型

给我推荐20个比较流行的OCR模型 好的&#xff0c;以下是我为你推荐的 20 个比较流行的 OCR 模型。 Tesseract CuneiForm Ocrad GOCR OCRopus OCR-ICR Ocropy Ocrad.js Ocracoke Ocralysis Ocrinum Ocrmypdf Ocrsaurus Ocrdroid Ocr-textscan Ocrfeeder Ocrmypicture Ocrus Oc…

RHCE-chrony服务部署

目录 要求&#xff1a; 思路&#xff1a; 配置过程&#xff1a; a: 1.开启两台服务器&#xff0c;开启chrony服务。 2.部署chrony服务 查看chrony服务状态 b: 区别&#xff1a; 配置过程: 修改完配置后&#xff0c;重启chrony服务 查看chrony状态&#xff1a; 小结一…

element-ui 多选框和级联选择的部分bug以及解决方法

前言 最近在开发一款使用了 element-ui 的低代码设计器&#xff0c;在开发的过程当中碰到了一些关于 element-ui 组件本身不合理的地方&#xff0c;并且在百度的基础上自己去阅读了一下 element-ui 的源码&#xff0c;也找出了这些问题的一个解决方案&#xff0c;下面就来看一…

steam搬砖是什么?怎么做呀?

steam平台是什么&#xff1f;它是国外一个集全球大部分网游于一体的游戏平台&#xff0c;玩过绝地求生端游&#xff08;吃鸡&#xff09;&#xff0c;csgo的朋友&#xff0c;对它都不陌生&#xff0c;就像国内的Wegame一样&#xff0c;现在玩英雄联盟的&#xff0c;都是通过Weg…