NX二次开发UF_CURVE_ask_parameterization 函数介绍

news2024/11/24 20:35:56

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

UF_CURVE_ask_parameterization

Defined in: uf_curve.h 
int UF_CURVE_ask_parameterization(tag_t object, double param_range [ 2 ] , int * periodicity )

overview 概述

Returns the parameter range and periodicity for any curve or edge.
This function returns the “natural” parameter range. Arcs, ellipses
and hyperbolas return the start and end angles.

返回任何曲线或边的参数范围和周期。此函数返回“自然”参数范围。弧线,椭圆和双曲线返回开始和结束角度。

UFUN例子

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

parameters 参数

tag_tobjectInputcurve or edge for which to return parameterization data
返回参量化数据的曲线或边缘
doubleparam_range [ 2 ]Outputarray into which to return parameter range of the curve
返回曲线参数范围的数组
int *periodicityOutputOne of: UF_CURVE_OPEN_CURVE UF_CURVE_CLOSED_PERIODIC_CURVE UF_CURVE_CLOSED_NON_PERIODIC_CURVE
其中之一: UF _ CURVE _ OPEN _ CURVE UF _ CURVE _ CLOSED _ PERIODIC _ CURVE UF _ CURVE _ CLOSED _ NON _ PERIODIC _ CURVE

分割

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);
}

效果:
效果

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

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

相关文章

视频做成二维码的简易教程(收藏)

视频做成二维码的简易教程&#xff0c;由于面向免费用户是5G&#xff0c;普通用户是可以够用的&#xff0c;所以可以推荐给大家&#xff0c;值得一试 以下几点&#xff0c;是您需要了解的&#xff1a; 01.稳定流畅 提供高稳定性&#xff0c;超流畅的企业级视频服务 02.节省成…

qt国际化多语言

vs + qt 方法 一 (1)生成.pro文件 如果报错: cannot find any qt projects to export 则执行如下: 然后重新生成 pro文件。 (2)生成ts文件 (方法1)在项目文件(xxx.pro) 文件添加: TRANSLATIONS += en.ts zh_CN.ts 然后打开cmd命令,进入项目目录,执行 l…

Vue路由器(详细教程)

路由&#xff1a; 1.理解&#xff1a;一个路由(route)就是一组映射关系&#xff08;key-value)&#xff0c;多个路由需要路由器&#xff08;router&#xff09;进行管理。 2.前端路由&#xff1a;key是路径&#xff0c;value是组件。 1、先安装vue-router路由 npm i vue-route…

2023年汉字小达人市级比赛才知道消息?请查收最后三天的备考策略

这两天有家长联系六分家长&#xff0c;说语文老师刚刚通知他们孩子晋级了2023年第十届上海小学生汉字小达人比赛的市级活动&#xff08;实际比赛&#xff09;&#xff0c;该如何准备&#xff1f; 六分成长发现这些家长还有好几个呢。经过和家长了解&#xff0c;发现是孩子的语…

基于单片机寻迹巡线避障智能小车系统设计

**单片机设计介绍&#xff0c; 基于单片机寻迹巡线避障智能小车系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的寻迹巡线避障智能小车系统是一种能够自动跟随线路并避开障碍物的智能小车。下面是一个简要的系…

工作流能实现自动化吗?应该用什么工具?

研究显示&#xff0c;CRM系统工作流自动化软件不仅能简化冗余的工作且不需要监控和指导就能提高员工的工作效率。企业需要工作流自动化软件吗&#xff1f;答案是肯定的&#xff0c;工作流自动化的好处有哪些&#xff1f; 为什么企业需要工作流自动化软件 每家企业都希望降本增…

活动回顾|阿里云云原生 Serverless 技术实践营 深圳站回放PPT下载

11月24日“阿里云云原生 Serverless 技术实践营”深圳站圆满落幕。活动受众以关注 Serverless 技术的开发者、企业决策人、云原生领域创业者为主&#xff0c;活动形式为演讲、动手实操&#xff0c;让开发者通过一个下午的时间增进对 Serverless 技术的理解&#xff0c;快速上手…

Git开发实用技巧

文章目录 一图胜千言&#xff1a;

属性级情感分析

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ 属性级情感分析 简介数据集介绍数据加载和预处理&#xff08;data_utils.py&#xff09;预训练模型&#xff08;skep&#xff09;模型定义模块&#xff08;model.py&#xff09;训练配置&#xff08;config.py&am…

DevEco Studio对同一套HarmonyOS代码进行多设备端预览

鸿蒙代码有一个很大的优势 不需要其他的语法 只需要一套HarmonyOS代码 就可以在 手机 平板 电脑上运行 我们可以在DevEco Studio预览器上 点击如下图指向位置 弹出的这个窗口中 我们将右上角的开关勾选上 这样 我们调试器向下滚动 就可以看到多端预览的一个效果了

汽车转向桥设计转向节转向桥机械设计

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;转向桥 获取完整报告说明书工程源文件 转向节图 装配图 本文设计的是JY1061A型采用前置后轮驱动的载货汽车转向桥&#xff0c;因此该转向桥为从动桥。从动桥的功用&#xff1a;从动桥也称非驱动桥&#xff0c;又称从动车轴…

探索RockPlus SECS/GEM平台 - 赋能半导体行业设备互联

SECS/GEM协议&#xff0c;全称为半导体设备通讯标准/通用设备模型&#xff08;SECS/Generic Equipment Model&#xff09;&#xff0c;是一种广泛应用于半导体制造行业的通信协议。它定义了半导体设备与工厂主控系统&#xff08;如MES&#xff09;之间的通信方式&#xff0c;使…

【Cisco Packet Tracer】电子邮箱仿真搭建

本文使用Cisco Packet Tracer&#xff0c;搭建电子邮箱仿真系统&#xff0c;使得zhangsancisco.com可以和lisicisco.com可以互相发送邮件。 电子邮箱账号&#xff08;为了简单起见&#xff0c;账号密码设置一致&#xff09;&#xff1a;zhangsan/lisi 域名&#xff1a;cisco.…

运动款蓝牙耳机哪个品牌好?运动耳机品牌排行榜前十名

​选择一款好的运动耳机非常重要&#xff0c;因为它们能够提高你的运动体验&#xff0c;帮助你更好地享受音乐和锻炼。在选择运动耳机时&#xff0c;你需要考虑到它们的稳固性、舒适度、音质和防水等方面&#xff0c;这些因素将直接影响你的运动效果和体验。今天我为大家挑选了…

基于单片机体温心率脉搏检测仪系统设计

**单片机设计介绍&#xff0c; 基于单片机体温心率脉搏检测仪系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机体温心率脉搏检测仪是一种用于检测人体体温、心率和脉搏等基本生理指标的医疗设备。下面是一个简要…

OpenAi Q* (Q Star)项目入门介绍

为初学者解释 Open Ai 的 Q*(Q Star) Q* 的两个可能来源。 1)Q 可能是指 "Q-learning",这是一种用于强化学习的机器学习算法。 Q 名称的由来*:把 "Q*"想象成超级智能机器人的昵称。 Q 的意思是这个机器人非常善于做决定。 它从经验中学习,就像你从玩…

C#开发的OpenRA游戏之属性SelectionDecorations(10)

C#开发的OpenRA游戏之属性SelectionDecorations(10) 前面分析了选择属性,继续分析前面的内容,不过这里不再是选择,而是选择相关的属性。 当用玩家选择地图上一个物品,或者士兵,或者坦克时,就会在周边画上一些指示标记,并且有一个状态条。 通过上图,可以看到建筑物周…

计算机毕业设计|基于SpringBoot+MyBatis框架的电脑商城的设计与实现(系统概述与环境搭建)

计算机毕业设计|基于SpringBootMyBatis框架的电脑商城的设计与实现&#xff08;系统概述与环境搭建&#xff09; 该项目分析着重于设计和实现基于SpringBootMyBatis框架的电脑商城。首先&#xff0c;通过深入分析项目所需数据&#xff0c;包括用户、商品、商品类别、收藏、订单…

【Java】使用IntelliJ IDEA搭建SSM(MyBatis-Plus)框架并连接MySQL数据库

步骤 0 准备工作1 创建Maven项目2 配置Maven依赖3 配置数据源4 项目结构5 创建实体类6 创建数据访问层7 创建服务层8 创建Controller层9 启动项目10 使用Postman测试接口 0 准备工作 下载并安装 IntelliJ IDEA下载并安装 MySQL 数据库下载并安装Postman测试工具使用 Navicat 创…

k8s环境排查nginx转发nacos请求失败问题

一、问题背景 k8s部署两个服务,一个nginx&#xff0c;一个nacos, 服务信息如下(nacos有两个端口): 服务 serviceNameservice类型porttargetPort nodePortnginxmonitor-cp-nginxNodePort808031082nacosmonitor-cp-nacosClusterIP88488848-98489848- ng的default.conf配置文件…