NX二次开发UF_CURVE_ask_curve_fit_data 函数介绍

文章作者:里海
来源网站:https://blog.csdn.net/WangPaiFeiXingYuan

UF_CURVE_ask_curve_fit_data

Defined in: uf_curve.h 
int UF_CURVE_ask_curve_fit_data(tag_t curve_feature, UF_CURVE_curve_fit_data * curve_fit_data )

overview 概述

Ask curve fit data from the curve feature

从曲线特征要求曲线拟合数据

UFUN例子

欢迎订阅《里海NX二次开发3000例专栏》https://blog.csdn.net/wangpaifeixingyuan/category_8840986.html,点击链接扫码即可订阅(持续更新中)。已经有几百人订阅,订阅是永久的,无限期阅读,如需帮助请私信。

parameters 参数

tag_tcurve_featureInputtag of the curve feature
曲线特征的标记
UF_CURVE_curve_fit_data *curve_fit_dataOutputcurve fit method, maximum degree, and maximum segments
曲线拟合方法,最大度和最大段

分割

C++语言在UG二次开发中的应用及综合分析

  1. C++ 是C语言的扩展,它既可以执行C语言的过程化程序设计,也可以进行以抽象数据类型为特点的基于对象的设计,以及面向对象的程序设计。C++ 在处理问题规模上具有很大的适应性。
  2. C++不仅具有计算机高效运行的实用性特征,并且致力于提升大规模程序的编程质量以及程序设计语言的问题描述能力。

在UG二次开发中,C++语言具有以下特点

  1. C++语言支持多种程序设计风格
  2. C++的许多特性以库的形式存在,保证了语言的简洁和开发运行的效率
  3. 与C语言相比,C++引入了面向对象的概念,使得UG二次开发的人机交互界面更加简洁
  4. 通过借助UG自带的2000多种API函数,结合高级语言C++以及编程软件Visual Studio,可以对UG进行二次开发
  5. 需要注意的是,市场上的Visual Studio和UG版本众多,并非所有版本都能兼容

程序设计过程通常包括以下步骤:

  1. 问题分析:对要解决的问题进行深入的分析,理解问题的具体需求和限制。
  2. 需求定义:明确程序的目标和功能,包括用户需求、系统需求等。
  3. 设计:根据需求进行设计,包括算法设计、数据结构设计、界面设计等。
  4. 编码:根据设计的结果,使用一种编程语言将程序代码实现出来。
  5. 测试:通过各种测试方法来确保程序的正确性,包括单元测试、集成测试、系统测试等。
  6. 维护:对程序进行修改和完善,以解决可能出现的问题或满足新的需求。
  7. 文档编写:编写程序文档,描述程序的功能、操作方法、注意事项等。

以下是一个创建体素特征(块、柱、锥、球)的二次开发例子

#include <stdio.h>
#include <stdarg.h>
#include <uf_modl_primitives.h>
#include <uf_ui_ugopen.h>
#include <uf.h>
#include <uf_defs.h>
//封装打印函数,用于将信息打印到信息窗口
//QQ3123197280
int ECHO(const char* szFormat, ...)
{
	char szMsg[5000] = "";
	va_list arg_ptr;
	va_start(arg_ptr, szFormat);
	vsprintf_s(szMsg, szFormat, arg_ptr);
	va_end(arg_ptr);
	UF_UI_open_listing_window();
	
	UF_UI_write_listing_window(szMsg);
	return 0;
}
extern DllExport void ufusr(char* param, int* returnCode, int rlen)
{
	UF_initialize();
	//创建块
	UF_FEATURE_SIGN sign = UF_NULLSIGN;
	//块起点相对于ABS
	double block_orig[3] = { 0.0,0.0,0.0 };
	//方向相对于WCS
	char* block_len[3] = { "10", "30", "10" };
	tag_t blk_obj;//体特征
	UF_MODL_create_block1(sign, block_orig, block_len, &blk_obj);
	int iEdit = 0;  
	char* size[3];
	UF_MODL_ask_block_parms(blk_obj, iEdit, size);
	ECHO("%s,%s,%s\n", size[0], size[1], size[2]);//输出: p6=10,p7=30,p8=10
	//创建圆柱
	UF_FEATURE_SIGN sign1 = UF_NULLSIGN;
	double origin[3] = { 10.0,0.0,10.0 };
	char  height[] = "20";
	char  diam[] = "10";
	double direction[3] = { 0,0,1 };//方向
	tag_t  cyl_obj_id;
	UF_MODL_create_cyl1(sign1, origin, height, diam, direction, &cyl_obj_id);
	int iEdit2 = 0;  
	char* cDiameter;
	char* cHeight;
	UF_MODL_ask_cylinder_parms(cyl_obj_id, iEdit2, &cDiameter, &cHeight);
	ECHO("%s,%s\n", cDiameter, cHeight);//输出:p9=10,p10=20
	UF_free(cDiameter);
	UF_free(cHeight);
	//创建圆锥
	UF_FEATURE_SIGN sign2 = UF_NULLSIGN;
	double origin2[3] = { 0.0,0.0,10.0 };
	char  height2[] = "20";
	char* diam2[2] = { "10" ,"5" };
	double direction2[3] = { 0,0,1 };//方向
	tag_t  cone_obj_id;
	UF_MODL_create_cone1(sign2, origin2, height2, diam2, direction2, &cone_obj_id);
	int iEdit3 = 0;  
	char* cD1;
	char* cD2;
	char* cH;
	char* cAngle;
	UF_MODL_ask_cone_parms(cone_obj_id, iEdit3, &cD1, &cD2, &cH, &cAngle);
	ECHO("%s,%s,%s,%s\n", cD1, cD2, cH, cAngle);//输出:p11=10,p12=5,p13=20,p14=7.1250163489018
	UF_free(cD1);
	UF_free(cD2);
	UF_free(cH);
	UF_free(cAngle);
	//创建球
	UF_FEATURE_SIGN sign3 = UF_NULLSIGN;
	double douCenter2[3] = { 0.0,0.0,30.0 };
	char  cDiam[] = "8";
	tag_t  sphere_obj_id;
	UF_MODL_create_sphere1(sign3, douCenter2, cDiam, &sphere_obj_id);
	int iEdit4 = 0;  
	char* cDiam_parm;
	UF_MODL_ask_sphere_parms(sphere_obj_id, iEdit4, &cDiam_parm);
	ECHO("%s\n", cDiam_parm);//输出:p15=8
	UF_free(cDiam_parm);
	UF_terminate();
}
extern int ufusr_ask_unload(void)
{
	return (UF_UNLOAD_IMMEDIATELY);
}

效果:
效果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Spring集成MyBatis】MyBatis注解开发

文章目录 1. MyBatis的常用注解2. 基于注解的MyBatis增删改查增删改查完整代码加载映射关系测试代码 3. MyBatis的注解实现复杂映射开发一对一操作的实现一对一操作实现的第二种方式一对多操作的实现多对多操作实现 1. MyBatis的常用注解 2. 基于注解的MyBatis增删改查 使用注…

【Kotlin】引入与基础语法

文章目录 Kotlin的特性Kotlin优势Kotlin的安卓项目变量变量保存了指向对象的引用优先使用val来避免副作用 后端变量Backing Fields延迟初始化 Kotlin的特性 它更加易表现&#xff1a;这是它最重要的优点之一。你可以编写少得多的代码。Kotlin是一种兼容Java的语言Kotlin比Java…

针对哈希冲突的解决方法

了解哈希表和哈希冲突是什么 哈希表&#xff1a;是一种实现关联数组抽象数据类型的数据结构&#xff0c;这种结构可以将关键码映射到给定值。简单来说哈希表&#xff08;key-value&#xff09;之间存在一个映射关系&#xff0c;是键值对的关系&#xff0c;一个键对应一个值。 …

顶级安卓数据恢复工具—— 15 个 Android 数据恢复程序榜单

探索并比较顶级 Android 数据恢复软件&#xff0c;并选择最好的 Android 恢复应用程序来恢复您的宝贵数据&#xff1a; 特别是您的智能手机或 Android 设备可以完成许多繁重的工作&#xff0c;其中最有用的是存储数据。Android 设备可以伪装成照片、视频、电子邮件甚至敏感商业…

MVCC多版本并发控制相关面试题整理

多版本并发控制是一种用于支持并发事务的数据库管理系统技术&#xff0c;它允许多个事务同时访问数据库&#xff0c;而不会相互干扰或导致数据不一致。MVCC通过在数据库中维护不同版本的数据来实现这一目标&#xff0c;从而允许每个事务看到一致的数据库快照。 并发导致的问题…

vue实现海康H5视频插件播放视频的实例,实现取流失败了之后重新获取新的流播放视频

vue实现海康H5视频插件播放视频的实例&#xff0c;实现取流失败了之后重新获取新的流播放视频 h5player是一个基于HTML5的流式网络视频播放器&#xff0c;无需安装浏览器插件即可通过websocket协议向媒体服务取流播放多种格式的音视频流。 首先去海康开发平台&#xff0c;把插…

iar如何全擦芯片内存

Project ->Download -> Erase memory

什么是零拷贝 、零拷贝优化方案 - 真正的零拷贝,哪些地方会用到零拷贝技术

文章目录 什么是零拷贝3、零拷贝优化方案 - 真正的零拷贝哪些地方会用到零拷贝技术 现在来谈谈零拷贝&#xff0c;以及在开发中哪些地方使用到零拷贝。 开干… 什么是零拷贝 零拷贝指的是&#xff0c;从一个存储区域到另一个存储区域的copy任务无需CPU参与就可完成。零拷贝的底…

基于springboot实现应急救援物资管理系统项目【项目源码】

基于springboot实现应急救援物资管理系统演示 JAVA简介 JavaScript是一种网络脚本语言&#xff0c;广泛运用于web应用开发&#xff0c;可以用来添加网页的格式动态效果&#xff0c;该语言不用进行预编译就直接运行&#xff0c;可以直接嵌入HTML语言中&#xff0c;写成js语言&a…

python游戏开发pygame初步

文章目录 安装和示例移动物体优化 安装和示例 顾名思义&#xff0c;PyGame就是用来做游戏的Python库&#xff0c;提供了许多游戏开发功能&#xff0c;如图像处理、音频播放、事件处理、碰撞检测等等。从这个角度来说&#xff0c;pygame不仅是一个游戏库&#xff0c;同时也是一…

【教3妹学编程-算法题】统计子串中的唯一字符

3妹&#xff1a;“太阳当空照&#xff0c;花儿对我笑&#xff0c;小鸟说早早早&#xff0c;你为什么背上炸药包” 2哥 :3妹&#xff0c;什么事呀这么开发。 3妹&#xff1a;2哥你看今天的天气多好啊&#xff0c;阳光明媚、万里无云、秋高气爽&#xff0c;适合秋游。 2哥&#x…

【brpc学习实践八】bvar及其应用

什么是bvar bvar是多线程环境下的计数器类库&#xff0c;支持单维度bvar和多维度mbvar&#xff0c;方便记录和查看用户程序中的各类数值&#xff0c;它利用了thread local存储减少了cache bouncing&#xff0c;相比UbMonitor(百度内的老计数器库)几乎不会给程序增加性能开销&a…

4、浏览器插件配置使用

文章目录 一、Hackbar1. Load和Execute功能的使用2. Split功能的使用3. Post功能的使用4. 编码功能的使用 二、FoxyProxy1、设置Burpsuite的代理服务端口2、FoxyProxy插件的简单使用 三、User-Agent Switcher 一、Hackbar 火狐浏览器中按下F12键启用hackbar。 1. Load和Execut…

springboot宠物店管理系统-计算机毕设 附源码 32041

SpringBoot宠物店管理系统 摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;宠物行业当然也不例外。宠物店管理系统是以实际运用为开发背景&#xff0c;运用软件工程原理…

leetcode算法之链表

目录 1.两数相加2.两两交换链表中的节点3.重排链表4.合并K个升序链表5.K个一组翻转链表 1.两数相加 两数相加 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(…

Docker Swarm总结+service创建和部署、overlay网络以及Raft算法(2/4)

博主介绍&#xff1a;Java领域优质创作者,博客之星城市赛道TOP20、专注于前端流行技术框架、Java后端技术领域、项目实战运维以及GIS地理信息领域。 &#x1f345;文末获取源码下载地址&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb;…

鸿蒙开发-ArkTS 语言-基础语法

1. 初识 ArkTS 语言 ArkTS 是 HarmonyOS 优选主力开发语言。ArkTS 是基于 TypeScript (TS) 扩展的一门语言&#xff0c;继承了 TS 的所有特性&#xff0c;是TS的超集。 主要是扩展了以下几个方面&#xff1a; 声明式UI描述和自定义组件&#xff1a; ArkTS使用声明式的方式描述用…

存算一体还是存算分离?谈谈数据库基础设施的架构选择

从一则用户案例说起 某金融用户问&#xff0c;数据库用服务器本地盘性能好还是外置存储好&#xff1f;直觉上&#xff0c;本地盘路径短性能应该更好。然而测试结果却出乎意料&#xff1a;同等中等并发压力&#xff0c;混合随机读写模型&#xff0c;服务器本地SSD盘合计4万 IOPS…

提示工程-Prompt Engineering

提示工程 提示工程 1、概述 Prompt Engineering&#xff1a; 提示工程 通过自然语言&#xff08;英语、汉语等&#xff09;来给AI下达指示&#xff0c;从而让AI完成你指定给他的工作的过程都可以称之为提示工程。&#xff08;面向自然语言编程&#xff09; 提示词要素 指令&…

C语言公交车之谜(ZZULIOJ1232:公交车之谜)

题目描述 听说郑州紫荆山公园有英语口语角&#xff0c;还有很多外国人呢。为了和老外对上几句&#xff0c;这周六早晨birdfly拉上同伴早早的就坐上了72路公交从学校向紫荆山进发。一路上没事干&#xff0c;birdfly开始思考一个问题。 从学校到紫荆山公园共有n(1<n<20)站路…