NX二开ufun函数创建块/基准平面/凸台/垫块/腔体

news2025/2/25 17:53:23

  本节主要讲述通过ufun函数直接创建块、基准平面、凸台、垫块、腔体,涉及ufun函数如下:

1、创建块 UF_MODL_create_block

2、创建基准平面 UF_MODL_create_fixed_dplane

3、创建凸台 UF_MODL_create_boss

4、创建垫块 UF_MODL_create_rect_pad5

5、创建腔体 UF_MODL_create_rect_pocket

效果图如下:

1、源码实例 

#include <stdio.h>
#include <uf.h>
#include <uf_defs.h>
#include <uf_modl.h>
#include <uf_modl_primitives.h>
#include <uf_part.h>

/* ARGSUSED */
void ufusr(char *param, int *retcod, int param_len)
{
    int          ifail=0;
    int          units=1; /*1=metric, 2=english*/
    char         error_message[MAX_LINE_SIZE + 1];
    char *       prtnam = "cre_fea_by_dtm_tst";
    char *       blk_edg_len[3] = {"50", "60", "70"};
    char *       pad_size[3]={"5","6","5.5"};
    char *       pock_len[3]={"6.2","6.3","6.4"};
    char *       boss_diam="5";
    char *       boss_height="6";
    char *       boss_ang="10";
    char *       pad_corner="1";
    char *       pad_ang="10";
    char *       pock_corner="3";
    char *       pock_floor=".1";
    char *       pock_ang="5";
    tag_t        blk_tag;
    tag_t        targ_tag=NULL_TAG;
    tag_t        plane_tag;
    tag_t        boss_tag;
    tag_t        pad_tag;
    tag_t        pock_tag;
    tag_t        part_tag;
    double       blk_corner[3] = {0,0,0};
    double       planepnt[3]={0,0,0};
    double       planedir[3]={1,0,0};
    double       boss_loc[3]={0,45,65};
    double       boss_dir[3]={-1,0,0};
    double       pad_loc[3]={0,45,15};
    double       pad_dir[3]={-1,0,0};
    double       pad_x_dir[3]={0,0,-1};
    double       pock_loc[3]={0,45,35};
    double       pock_dir[3]={1,0,0};
    double       pock_x_dir[3]={0,0,-1};

    ifail = UF_initialize();

    if( !ifail )
    {
        /* Create new part. */
        ifail = UF_PART_new( prtnam, units, &part_tag );
    }

    if( !ifail )
    {
        /* Create block. */
        ifail = UF_MODL_create_block( UF_NULLSIGN, targ_tag,
                                      blk_corner, blk_edg_len,
                                      &blk_tag );
    }

    if( !ifail )
    {
        /* Create fixed datum plane. */
        ifail = UF_MODL_create_fixed_dplane( planepnt, planedir,
                                             &plane_tag );
    }

    if( !ifail )
    {
        /* Create Boss */
        ifail = UF_MODL_create_boss( boss_loc, boss_dir, boss_diam,
                                     boss_height, boss_ang, plane_tag,
                                     &boss_tag );
    }

    if( !ifail )
    {
        /* Create Pad */
        ifail = UF_MODL_create_rect_pad( pad_loc, pad_dir, pad_x_dir,
                                         pad_size, pad_corner, pad_ang,
                                         plane_tag, &pad_tag);
    }

    if( !ifail )
    {
        /* Create Pocket */
        ifail = UF_MODL_create_rect_pocket( pock_loc, pock_dir,
                                            pock_x_dir,pock_len,
                                            pock_corner, pock_floor,
                                            pock_ang, plane_tag, &pock_tag);
    }

    printf( "UF_MODL_cre_fea_by_dtm sample " );
    if( ifail )
    {
        ifail = UF_get_fail_message( ifail, error_message );
        printf( "fails.\nError is: %s\n", error_message );
    }
    else
        printf( "is successful.\n" );

    ifail = UF_terminate();

}

2、源码分析

1)创建基准平面,需要指定基准点、方向向量,输出基准平面tag

2)创建凸台,需要指定凸台的位置、方向、直径、高度、尖角的角度、约束面,输出凸台的featureid

int UF_MODL_create_boss 
double location [3],
double direction [3],
char * diame,
char * height,
char * angle,
tag_t face,
tag_t * feature_obj_id
)

3)创建垫块,需要指定垫块的位置、方向、x direction、尺寸、垫角半径、垫缀角、约束面,输出垫块的featureid

    int UF_MODL_create_rect_pad 
   (

double location [],
double direction [],
double x_dir [3],
char * size [3],
char * radius,
char * angle,
tag_t face,
tag_t * feature_obj_id

   )

4)创建腔体,需要指定腔体的位置、方向、x direction、尺寸、袋角半径、地板半径、袋锥角、约束面,输出腔体的featureid

int UF_MODL_create_rect_pocket 
double location [],
double direction [],
double x_dir [],
char * len [3],
char * corner,
char * floor,
char * angle,
tag_t face,
tag_t * feature_obj_id
)

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

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

相关文章

聊聊如何成为更好的架构师?

之前有小伙伴咨询架构方向需要学习什么&#xff0c;需要什么技术储备&#xff0c;今天就来深入聊聊这个话题。 就此探讨下必备技能、经验&#xff0c;以及储备相关知识所需的时间和精力。除此之外&#xff0c;我也回顾了自己走过的路、使用或尝试过的技术&#xff0c;以及我从…

开学季,送什么给小学生实用?学生最实用的护眼好物

伴随着“立春”&#xff0c;又到新的春季开学季&#xff0c;不管是家长还是孩子面对每个学期的循环&#xff0c;每一次都有新的故事和发现&#xff0c;很快就要开学了&#xff0c;给学生的小礼物准备好了吗&#xff0c;作为父母、长辈送给孩子最好的礼物&#xff0c;我认为莫过…

大数据舆情分析软件实时监控,TOOM大数据处理与舆情监控简介

舆情数据分析处理是指通过使用大数据技术、人工智能、自然语言处理等&#xff0c;从舆情数据中提取信息&#xff0c;进行模型建立、模式识别、情感分析等&#xff0c;从而了解舆论情况。舆情数据分析处理的目的是了解舆论趋势、话题热点、网民情绪等&#xff0c;从而便于企业、…

中国电子学会2022年03月份青少年软件编程Scratch图形化等级考试试卷四级真题(含答案)

分数&#xff1a;100 题数&#xff1a;24 一、单选题(共10题&#xff0c;共30分) 1. 由1,2,3,4,5,0这六个数字经过排列组合能够组成多少个六位数偶数&#xff1f;注意&#xff1a;每一位都不相同&#xff0c;最高位不能为0。&#xff08; &#xff09; A. 720 B. 360 C. …

动态规划Dynamic Programming的基础解法

本文是对Jeff Erickson经典算法入门书籍《Algorithms》中动态规划问题的阅读笔记&#xff0c;近期在刷一些编程题&#xff0c;对于如何凑出动态规划更新的范式&#xff0c;脑袋里一直是一团乱麻&#xff0c;特别看完了别人的题解&#xff0c;只是惊叹其脑洞&#xff0c;但一直搞…

分页数据渲染

SearchResult属性增加 增加属性 private List<Integer> pageNavs; 目的&#xff1a;产生分页效果&#xff0c;方便操作&#xff0c;navs记录了从1到总页数的暑假 不是第一页时显示上一页 <a class"page_a" th:attr"pn${result.pageNum - 1}" hre…

算法基础集训(第30天)------>DFS之经典【n皇后问题】

一&#xff1a;概念定义n−皇后问题是指将 n个皇后放在 nn的国际象棋棋盘上&#xff0c;使得皇后不能相互攻击到&#xff0c;即任意两个皇后都不能处于同一行、同一列或同一斜线上。二&#xff1a;题目描述n−皇后问题是指将 n个皇后放在 nn 的国际象棋棋盘上&#xff0c;使得皇…

【C++入门】函数重载

目  录1 函数重载概念2 C支持函数重载的原理 -- 名字修饰&#xff08;name Mangling&#xff09;1 函数重载概念 函数重载&#xff1a; 函数的一种特殊情况&#xff0c;C允许在同一作用域中声明几个功能类似的同名函数&#xff0c;这些同名函数的形参列表&#xff08;参数个数…

企企通入选「AI中国」机器之心“最具商业价值解决方案 TOP 30” 榜单

近日&#xff0c;由专业的人工智能信息服务平台机器之心&#xff0c;发起并评选的「AI 中国」机器之心2022 年度评选榜单正式公布&#xff0c;企企通凭借过去一年在采购供应链领域取得的成就&#xff0c;以及在技术、产品、服务能力方面具备的独特优势&#xff0c;从众多企业中…

Python连接Liunx中mysql数据库-三表查询【10个经典案例】

关于Python连接liunx中mysql数据库的方式在这一篇文章 Python连接Liunx中mysql数据库-保姆级教程 关于Python针对liunx中的mysql数据库进行增删改查操作的文章在这一篇可以看一下 Python连接Liunx中mysql数据库-增删改查 对于单表查询的学习可以看这一篇文章 Python对liunx中my…

使用.ibd文件恢复Mysql数据库数据

使用.ibd文件恢复Mysql数据库数据问题发现问题解决第一步&#xff1a;查找mysql数据目录第二步&#xff1a;创建表第三步&#xff1a;解除表空间第四步&#xff1a;复制原数据库.ibd文件第五步&#xff1a;导入表空间ERROR 1030 (HY000): Got error 194 “Tablespace is missin…

使用Navicat生成MySQL测试数据

使用Navicat生成MySQL测试数据 Navicat版本&#xff1a;16.1.3 场景&#xff1a;因为某些原因&#xff0c;本人负责项目的数据库需要从MySQL迁移到PostgreSQL&#xff0c;所以就想测试一下PostgreSQL数据库的分区表性能。测性能的话大概需要两千万的测试数据&#xff0c;从生…

蓝队--Linux基线安全检查

文章目录认证账号和口令安全创建用户用户安全基线授权文件系统安全审计日志安全日志存放的位置设备等级观察一条日志产生的过程网络安全网络协议与服务安全SSH的配置防火墙安全操作系统SELinux登陆安全kali忘记密码怎么办怎么物理加密进入BOIS界面选择Security选择set User Pas…

【前端】css样式视口、布局

一、 视口概念 视口&#xff08;viewport&#xff09;是用来约束网页中最顶级块元素的&#xff0c;即它决定了网页的大小&#xff0c;网页是先在视口上渲染&#xff0c;然后再通过视口放回到浏览器窗口上的&#xff0c;网页的渲染过程如下&#xff1a; pc端视口的大小和浏览器…

Python---类与对象

专栏&#xff1a;python 个人主页&#xff1a;HaiFan. 专栏简介&#xff1a;本专栏主要更新一些python的基础知识&#xff0c;也会实现一些小游戏和通讯录&#xff0c;学时管理系统之类的&#xff0c;有兴趣的朋友可以关注一下。 类与对象前言定义类创建对象前言 面向对象跟函…

河北如何推进农村生活污水处理?

自“十四五”以来&#xff0c;我国各地都针对地方农村人居环境的改善颁布相关方案&#xff0c;力图改善农村生活污水处理这一自本世纪初就始终困扰我国广大农村居民的难题。今天&#xff0c;小编就为大家介绍一下&#xff0c;湖北省针对农村污水处理所采取的最新措施。 河北地…

统计图表有哪几个种类及其特点

关于数据分析中常用统计图表的分类和各种图表的特点&#xff0c;这一张图就能概括&#xff01; 下面来展开说下&#xff0c;为了直观展示&#xff0c;给大家找了一份可视化统计图表的模板&#xff0c;可直接在线使用&#xff0c;需要的小伙伴自取哈。 点此领取模板>>htt…

端口映射和端口转发

文章目录端口转发定义端口映射的定义端口转发简介常见转发工具LCX1、目标机有公网lP2、端口映射3、目标机无公网IP端口转发和端口映射都是为了解决内网主机的端口无法在外部直接访问而衍生出来的技术&#xff0c;通过中间服务器进行中转&#xff0c;将内部的端口映射到公网IP上…

【AI-NLP】Transformer理论及源码理解

文章目录提出背景总体结构EncoderDecoder细节再探源码阅读主函数部分主模型定义编码器编码层多头自注意力层前馈神经网络层Masked解码器解码层参考资料提出背景 改进了RNN的训练慢的缺点&#xff0c;利用self-attention机制实现并行计算。并且Transformer可以增加到非常深的深…

用css实现简易报警灯

主题 用css来实现一个简易的报警灯效果 实现效果 实现思路 实现的核心是一个灯罩和一个灯芯。灯罩主要是使用了border-radius圆角边框&#xff0c;灯芯主要是radial-gradient径向渐变。再使用动画效果来实现一闪一闪的效果。让我们来一步一步实现效果。 灯罩实现 因为大…