NX二次开发UF_CAM_set_lower_limit_plane_tag 函数介绍

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

UF_CAM_set_lower_limit_plane_tag

Defined in: uf_cam_planes.h 
int UF_CAM_set_lower_limit_plane_tag(tag_t object_tag, tag_t target_tag )

overview 概述

Set the tag of a lower limit plane

设置下限平面的标记

UFUN例子

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

parameters 参数

tag_tobject_tagInputthe parent object of the plane
平面的母体
tag_ttarget_tagInputthe tag of an UF_xform_type entity representing the lower limit plane
表示下限平面的 UF _ xform _ type 实体的标记

分割

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.mzph.cn/news/162136.shtml

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

相关文章

使用 PowerShell 创建共享目录

在 Windows 中&#xff0c;可以使用共享目录来将文件和文件夹共享给其他用户或计算机。共享目录可以通过网络访问&#xff0c;这使得它们非常适合用于文件共享、协作和远程访问。 要使用 PowerShell 创建共享目录&#xff0c;可以使用 New-SmbShare cmdlet。New-SmbShare cmdl…

TypeScript 项目 Airbnb 语法风格 ESLint 配置

TypeScript 项目 Airbnb 语法风格 ESLint 配置 1. 配置 安装&#xff1a; npm i -D eslint-config-airbnb-typescript typescript-eslint/eslint-plugin^6.0.0 typescript-eslint/parser^6.0.0配置&#xff1a; .eslintrc.js: module.exports {root: true,env: {node: true…

【Antd】antd的Form表单项用Form.Item包裹后,表单校验不生效的原因及解决办法

以下代码是用<Form></Form>包裹的子组件中的render部分的代码&#xff1a; 可以看到Input.TextArea被<div>包裹住了&#xff0c;这会导致无法被Form表单识别并抓取&#xff0c;因为Form默认只允许放一个子元素。 <div className{styles.textAreaWrap}&g…

算法的奥秘:常见的六种算法(算法导论笔记2)

算法的奥秘&#xff1a;种类、特性及应用详解&#xff08;算法导论笔记1&#xff09; 上期总结算法的种类和大致介绍&#xff0c;这一期主要讲常见的六种算法详解以及演示。 排序算法&#xff1a; 排序算法是一类用于对一组数据元素进行排序的算法。根据不同的排序方式和时间复…

postman定义公共函数这样写,测试组长直呼牛逼!!!

postman定义公共函数 在postman中&#xff0c;如下面的代码&#xff1a; 1、返回元素是否与预期值一致 var assertEqual(name,actual,expected)>{tests[${name}&#xff1a;实际结果&#xff1a; ${actual} &#xff0c; 期望结果&#xff1a;${expected}]actualexpected…

2023年危险化学品经营单位主要负责人证模拟考试题库及危险化学品经营单位主要负责人理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年危险化学品经营单位主要负责人证模拟考试题库及危险化学品经营单位主要负责人理论考试试题是由安全生产模拟考试一点通提供&#xff0c;危险化学品经营单位主要负责人证模拟考试题库是根据危险化学品经营单位主…

Exception:Zero date value prohibited

运行了很久的系统&#xff0c;突然不能访问&#xff0c;报错如下&#xff1a; Error attempting to get column updated_time from result set. Cause: java.sql.SQLException: Zero date value prohibited; SQL []; Zero date value prohibited; nested exception is java.…

【追求卓越12】算法--堆排序

引导 前面几节&#xff0c;我们介绍了有关树的数据结构&#xff0c;我们继续来介绍一种树结构——堆。堆的应用场景有很多&#xff0c;比如从大量数据中找出top n的数据&#xff1b;根据优先级处理网络请求&#xff1b;这些情景都可以使用堆数据结构来实现。 什么是堆&#xf…

【20年扬大真题】编写程序,功能是计算1~10之间的偶数之和

【20年扬大真题】 编写程序&#xff0c;功能是计算1~10之间的偶数之和 #include<stdio.h> int main() {int i 1;int sum 0;for (i 1;i < 10;i){if (i % 2 0){sum i;}}printf("%d", sum); }

Java核心知识点整理大全9-笔记

目录 null文章浏览阅读9w次&#xff0c;点赞7次&#xff0c;收藏7次。Java核心知识点整理大全https://blog.csdn.net/lzy302810/article/details/132202699?spm1001.2014.3001.5501 Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全3-笔记_希斯…

FindMy技术用于充电宝

充电宝是一种便捷的充电器&#xff0c;方便个人随身携带&#xff0c;能够自行储备电能&#xff0c;为主流电子设备提供充电服务。它广泛应用于没有外部电源供应的场所&#xff0c;例如旅行、户外活动或紧急情况下&#xff0c;为用户的手持设备提供持续的电力支持&#xff0c;确…

spring boot加mybatis puls实现,在新增/修改时,对某些字段进行处理,使用的@TableField()或者AOP @Before

1.先说场景&#xff0c;在对mysql数据库表数据插入或者更新时都得记录时间和用户id 传统实现有点繁琐&#xff0c;这里还可以封装一下公共方法。 2.解决方法&#xff1a; 2.1&#xff1a;使用aop切面编程&#xff08;记录一下&#xff0c;有时间再攻克&#xff09;。 2.1.1&am…

读书笔记:彼得·德鲁克《认识管理》第30章 管理沟通

一、章节内容概述 我们知道&#xff0c;组织中的沟通是感知&#xff0c;也是期望&#xff0c;会产生要求&#xff0c;并且与信息不同&#xff0c;二者是对立的却相互依赖。 我们知道&#xff0c;下行沟通没有效果&#xff0c;只有上行沟通才能达到目的&#xff0c;并且 我们还…

软件工程第十二周

软件作坊、软件危机、软件过程控制、重型控制、敏捷、DevOps 这些术语概括了软件开发历史和实践中的几个重要概念和阶段。让我们逐一解析它们&#xff1a; 软件作坊&#xff08;Software Craftsmanship&#xff09;&#xff1a;这是软件开发的早期模式&#xff0c;强调个人技能…

【面试题】for...in 和 for...of 的区别

给大家推荐一个实用面试题库 1、前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;web前端面试题库 JavaScript 是一门强大而灵活的编程语言&#xff0c;提供了多种迭代对象的方式。两个常见的迭代方式是 for...in 和…

Boost获取当前时间并格式化为字符串

格式化为字符串 时间转字符串有两种方法 #include <boost/date_time/posix_time/posix_time.hpp> #include <iostream>std::string getCurrentTime() {boost::posix_time::ptime currentTime boost::posix_time::microsec_clock::local_time(); std::string …

centos 安装k8s教程(一键安装k8s)

第一步 准备几台机器 第二步 K8s Manager 服务器中添加docker支持 安装教程请查看这个博客 docker 安装详细教程 点我 第三步安装 KuboardSpray 教程在这里 第四步 下载k8s资源包 第五步 安装k8s 点击安装后 显示如下&#xff1a;等待完成

arduino入门一:点亮第一个led

void setup() { pinMode(12, OUTPUT);//12引脚设置为输出模式 } void loop() { digitalWrite(12, HIGH);//设置12引脚为高电平 delay(1000);//延迟1000毫秒&#xff08;1秒&#xff09; digitalWrite(12, LOW);//设置12引脚为低电平 delay(1000); }

电脑桌面便签工具选择哪一款?

随着互联网时代的不断发展&#xff0c;电脑成为日常工作及办公中必不可少的工具&#xff0c;通过电脑这款工具&#xff0c;大家可以更好的进行工作、学习等方面的交流&#xff1b;电脑桌面便签由于可以为大家整合一些工作及学习方面的备忘事项及笔记等&#xff0c;因而深受大家…

获取验证码在倒计时未完成前清除验证码

场景&#xff1a; 在点击获取验证码后&#xff0c;验证码开始倒计时&#xff0c;在点击登录后&#xff0c;出现弹窗不跳转页面。因此在出现弹窗后&#xff0c;即使倒计时没有结束&#xff0c;也要将倒计时的文字变为重新获取验证码。 template代码 <div class"form-b…