当前位置: 首页 > article >正文

NX二次开发UF_CURVE_create_combine_curves 函数介绍

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

UF_CURVE_create_combine_curves

Defined in: uf_curve.h 
int UF_CURVE_create_combine_curves(tag_t first_curve_tag, UF_CURVE_combine_curves_direction_p_t first_dir, tag_t second_curve_tag, UF_CURVE_combine_curves_direction_p_t second_dir, const char * curve_aprox_tol, tag_t * combine_curve_feature )

overview 概述

Creates parametric curve(s) by combining two curves along specified
direction vectors. When “normal to plane of curve” is specified as the
projection type, the curve must be planar. An error will be given if the
above is not true.

通过沿指定方向向量组合两条曲线来创建参数曲线。当“法线到曲面”被指定为投影类型时,曲线必须是平面的。如果上述内容不正确,将给出错误。

UFUN例子

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

parameters 参数

tag_tfirst_curve_tagInputFirst curve tag to be projected for combine
第一个投影的曲线标签合并
UF_CURVE_combine_curves_direction_p_tfirst_dirInputPointer to projection direction info for first curve
第一条曲线的投影方向信息指针
tag_tsecond_curve_tagInputSecond curve tag to be projected for combine
第二个曲线标签投影为合并
UF_CURVE_combine_curves_direction_p_tsecond_dirInputPointer to projection direction info for second curve
第二条曲线的投影方向信息指针
const char *curve_aprox_tolInputString containing the value for the curve approximation tolerance (distance tolerance).
包含曲线近似公差(距离公差)值的字符串。
tag_t *combine_curve_featureOutputObject tag for the combined curve feature.
组合曲线特征的对象标记。

分割

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.kler.cn/news/149695.html

相关文章:

  • 工业智能网关如何保障数据通信安全
  • 【华为数通HCIP | 网络工程师】821刷题日记-BFD和VRRP 及重点(1)
  • shopee买家通系统批量注册虾皮买家号的软件
  • Linux基本指令总结(二)
  • 【设计模式】行为型模式-第 3 章第 5 讲【观察者模式】
  • CSS特效020:涌动的弹簧效果
  • thinkphp6生成PDF自动换行
  • Iar 8051等各种版本安装破解过程
  • 基于UI交互意图理解的异常检测方法
  • 基于FPGA的五子棋游戏设计
  • 在线 SQL 模拟器SQL Fiddle使用简介
  • Python3基础
  • 爬虫-基于python的旅游景点推荐系统的设计与实现-计算机毕业设计源码24044
  • Linux加强篇002-部署Linux系统
  • SimpleDateFormat在多线程下的安全问题
  • 392. 判断子序列
  • 【JavaScript】3.3 JavaScript工具和库
  • 【开题报告】基于深度学习的驾驶员危险行为检测系统
  • WebSocket--1.协议解析
  • Pt100 和 Pt1000 传感器:重要事实和差异
  • 纯前端实现导入excel数据
  • 【解决视觉引导多个位置需要标定多个位置的问题】
  • C++ cmake脚本链接Boost库
  • 网关路由器双栈配置中的IPv6相关选项解析
  • 【学习记录】从0开始的Linux学习之旅——编译linux内核
  • OpenAI 画图工具 DALL E 相关分享
  • python:类中静态方法,类方法和实例方法的使用与区别
  • 拼多多刷新Q3财报纪录,大涨18%股价直逼阿里
  • 网络篇---第五篇
  • uniapp基础-教程之HBuilderX配置篇-01