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

NX二次开发UF_CURVE_create_isocline 函数介绍

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

UF_CURVE_create_isocline

Defined in: uf_curve.h 
int UF_CURVE_create_isocline(int face_cnt, tag_t faces [ ] , double direction [ 3 ] , const char * start_angle, const char * end_angle, const char * step_angle, tag_t * isocline_feat )

overview 概述

Creates a new joined curve feature that consists of a new spline curve
that represents the input list of joined curves and edges. The curves
can be sketch curves. The curves or edges that you join may not have
gaps.
The Modeling distance and angle tolerance are used to create and
validate the resulting spline curve. The modeling tolerance can be
modified by UF_MODL_set_distance_tolerance or UF_MODL_set_angle_tolerance.

创建一个新的连接曲线特性,该特性由一个表示连接曲线和边的输入列表的新样条曲线组成。曲线可以是素描曲线。连接的曲线或边可能没有间隙。建模距离和角度公差用于创建和验证得到的样条曲线。建模公差可以通过 UF _ MODL _ set _ range _  或 UF _ MODL _ set _ angle _  公差进行修正。

UFUN例子

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

parameters 参数

intface_cntInputNumber of faces
面孔的数量
tag_tfaces [ ]InputArray of faces used to calculate isocline curves
用于计算等倾线的面阵列
doubledirection [ 3 ]InputIsocline direction vector
等斜线方向矢量
const char *start_angleInputStart angle (-90 to 90 degrees)
开始角度(- 90到90度)
const char *end_angleInputEnd angle (-90 to 90 degrees)
端角(-90至90度)
const char *step_angleInputStep angle (NULL for single angle)
步进角度(单个角度为零)
tag_t *isocline_featOutputTag of new 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;//块起点相对于ABSdouble block_orig[3] = { 0.0,0.0,0.0 };//方向相对于WCSchar* 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=20UF_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.1250163489018UF_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=8UF_free(cDiam_parm);UF_terminate();
}
extern int ufusr_ask_unload(void)
{return (UF_UNLOAD_IMMEDIATELY);
}

效果:
效果

http://www.lryc.cn/news/248422.html

相关文章:

  • 从0开始学习JavaScript--JavaScript 模板字符串的全面应用
  • 开源 vs 闭源:数字化时代的技术选择
  • Spring Boot项目Service类单元测试自动生成
  • Typescript中 interface 和 type 的区别是什么?
  • W2311294-万宾科技可燃气体监测仪怎么进行数据监测
  • Elasticsearch:向量搜索 (kNN) 实施指南 - API 版
  • 704 二分查找 day1
  • Python面试破解:return和yield的细腻差别
  • 云时空社会化商业 ERP 系统 service SQL 注入漏洞复现
  • Vue3-Pinia
  • 数据挖掘之时间序列分析
  • iOS NSDate的常用API
  • 谱方法学习笔记-下(超详细)
  • iOS--UIPickerView学习
  • Docker安装Elasticsearch以及ik分词器
  • [架构之路-254]:目标系统 - 设计方法 - 软件工程 - 软件设计 - 架构设计 - 全程概述
  • centos7上源码安装mysql--运维高级
  • Linux小程序之进度条
  • Grafana采用Nginx反向代理
  • Python接口自动化测试如何设计接口测试用例(详解)
  • Spring不再支持Java8了
  • Android 实现APP可切换多语言
  • Redis大key与热Key
  • SQL通配符字符
  • 力扣 144.二叉树的前序遍历
  • Ubuntu网络问题的解决
  • Git 本地服务器搭建 Windows
  • 【数值计算方法(黄明游)】常微分方程初值问题的数值积分法:欧拉方法(向后Euler)【理论到程序】
  • mac安装homebrew/brew遇到443
  • VSCODE 在新窗口中打开