首页 > 其他分享 >【例0157】ask blend parameters 请求混合参数

【例0157】ask blend parameters 请求混合参数

时间:2024-05-26 20:01:04浏览次数:22  
标签:include 二次开发 parameters syslog print NX 0157 ask UF

文章作者:里海
来源网站:NX二次开发官方案例专栏


简介

《ask blend parameters 请求混合参数》这是一个NX二次开发官方小例子,下面是代码和解析。相较于混乱、未经验证的代码,官方案例能够确保开发者获得准确的开发方法,这些官方示例代码经过严格测试,能够正确地反映出NX软件的功能和API使用方式,有助于开发者系统地掌握NX二次开发技能,提高开发质量和效率。

专栏介绍

本专栏订阅后是永久阅读的。欢迎一起学习NX二次开发案例,逐步积累宝贵的经验,早日成为行业专家。

代码

    /*HEAD ASK_BLEND_PARMS CCC UFUN */  
    #include <uf_exit.h>  
    #include <stdio.h>  
    #include <stdlib.h>  
    #include <string.h>  
    #include <uf.h>  
    #include <uf_modl.h>  
    #include <uf_object_types.h>  
    #include <uf_ui.h>  
    #define ECHO(X)    (printf("%s = %d\n", #X, X))  
    #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))  
    static int report_error( char *file, int line, char *call, int irc)  
    {  
        if (irc)  
        {  
            char err[133],  
                 msg[133];  
            sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",  
                irc, line, file);  
            UF_get_fail_message(irc, err);  
        /*  NOTE:  UF_print_syslog is new in V18 译:翻译:注意:UF_print_syslog 是 V18 新增的功能,请仅提供翻译,不要添加其他无关内容。 */  
            UF_print_syslog(msg, FALSE);  
            UF_print_syslog(err, FALSE);  
            UF_print_syslog("\n", FALSE);  
            UF_print_syslog(call, FALSE);  
            UF_print_syslog(";\n", FALSE);  
            if (!UF_UI_open_listing_window())  
            {  
                UF_UI_write_listing_window(msg);  
                UF_UI_write_listing_window(err);  
                UF_UI_write_listing_window("\n");  
                UF_UI_write_listing_window(call);  
                UF_UI_write_listing_window(";\n");  
            }  
        }  
        return(irc);  
    }  
    static tag_t select_a_feature(char *prompt)  
    {  
        int  
            cnt,  
            resp;  
        tag_t  
            first,  
            *feats;  
        UF_CALL(UF_UI_select_feature(prompt, NULL, &cnt, &feats, &resp));  
        if (cnt)  
        {  
            first = feats[0];  
            UF_free(feats);  
            return (first);  
        }  
        else return (NULL_TAG);  
    }  
    static void do_it(void)  
    {  
        tag_t   feat;  
        char    *radius;  
        feat = select_a_feature( "Select feature");  
        UF_CALL( UF_MODL_ask_blend_parms( feat, 1, &radius));  
        printf("Radius: %s\n", radius);  
        UF_free( radius);  
    }  
    /* 里海 */  
    extern void ufusr(char *param, int *retcode, int paramLen)  
    {  
        if (UF_CALL(UF_initialize())) return;  
        do_it();  
        UF_terminate();  
    }  
    int ufusr_ask_unload(void)  
    {  
        return (UF_UNLOAD_IMMEDIATELY);  
    }

代码解析

这段代码是NX的二次开发代码,主要功能是获取特征的混合参数。具体介绍如下:

  1. 包含了NX二次开发所需的相关头文件。

  2. 定义了宏ECHO和UF_CALL,用于输出变量值和调用NX函数,并在函数执行出错时输出错误信息。

  3. 定义了report_error函数,用于在NX函数调用出错时输出错误信息。

  4. 定义了select_a_feature函数,用于提示用户选择一个特征,并返回特征标签。

  5. 定义了do_it函数,用于获取用户选择的特征混合参数,并输出半径值。

  6. 定义了ufusr函数,作为NX的二次开发主函数,初始化NX后调用do_it函数,执行获取特征混合参数的操作,并在结束时终止NX。

  7. 定义了ufusr_ask_unload函数,返回立即卸载标志,表示二次开发模块在卸载时不需要等待。

总的来说,这段代码实现了获取特征混合参数的功能,通过交互式选择特征,获取并输出特征的混合参数半径值。
是里海啊

标签:include,二次开发,parameters,syslog,print,NX,0157,ask,UF
From: https://blog.csdn.net/WangPaiFeiXingYuan/article/details/139207436

相关文章

  • 【例0009】ask all assembly piece parts 询问所有装配件的零件
    文章作者:里海来源网站:NX二次开发官方案例专栏简介《askallassemblypieceparts询问所有装配件的零件》这是一个NX二次开发官方小例子,下面是代码和解析。相较于混乱、未经验证的代码,官方案例能够确保开发者获得准确的开发方法,这些官方示例代码经过严格测试,能够正确......
  • 快速上手Flask:构建轻量级Web应用的完整指南
    ......
  • Haskell 的 自定义类型(data、type)
    在Haskell中,type和data关键字都用于定义新的数据类型,但它们有着不同的作用和语法。一、type关键字:作用:type关键字用于为已有类型创建别名,使得代码更易读和更具可读性。语法:其语法为typeNewType=ExistingType,其中NewType是新类型的名称,ExistingType是已有类......
  • ABB、Epson、Mitsubishi、Comau、Kuka、Kawasaki、QKM、YASKAWA、Nachi、Fanuc、Denso
    机器人编程助手:高效编程的实用工具机器人编程助手是一款旨在提高工业机器人编程效率的软件。支持ABB、Epson、Mitsubishi、Comau、Kuka、Kawasaki、QKM、YASKAWA、Nachi、Fanuc、Denso等多个品牌。软件内置参考手册、接线图和程序模板,帮助用户快速上手和高效完成编程任务......
  • Mask DINO: Towards A Unified Transformer-based Framework for Object Detection an
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!ProceedingsoftheIEEE/CVFConferenceonComputerVisionandPatternRecognition.2023. Abstract在本文中,我们提出了一个统一的对象检测和分割框架MaskDINO。MaskDINO通过添加一个支持所有图像分割任务(例如......
  • ArcPy按掩膜提取ExtractByMask的边界问题
    问题描述按掩膜提取是GIS数据处理中常用的功能之一。按照官方的示例,使用ArcPy的ExtractByMask方法可实现提取,代码如下:1importarcpy2fromarcpyimportenv3fromarcpy.saimport*45env.workspace="C:/sapyexamples/data"6outExtractByMask=Extrac......
  • CCL 2024 Task7 双任务冠军
        随着教育的发展和网络的普及,作文评价的规模越来越大,人工评改作文的成本和效率成为一大难题。为了解决这一问题,许多研究者和机构开始探索利用计算机技术来实现作文的自动评改[1],通过分析作文的语言、内容、结构等方面的特点及存在的问题,给出客观、准确、及时的评分和反......
  • locust的一个测试脚本验证装饰器 tag,task
    importtimefromlocustimportHttpUser,task,between,tagclassQuickstartUser(HttpUser):wait_time=between(1,5)@task(3)@tag("tag1")defhello_world(self):self.client.get("https://haokan.baidu.com/?sfrom=bai......
  • 关于attention中对padding的处理:mask
    先问了下chatgpt:我正在学习torch.nn.multiheadattention,请告诉我att_mask和key_padding_mask这两个参数有什么不同,分别用于处理什么问题,以及输出有什么不同,并给出代码示例chatgpt的回答:torch.nn.MultiheadAttention中的attn_mask和key_padding_mask是两个非常重要的参数,......
  • 自动化任务编排工具首选:TASKCTL在企业IT运维中的应用与职业发展预测
    今天,作为一名经验丰富、从业多年经常与运维人员打交道的人,我想与大家聊聊运维的日常工作、部门协调以及未来发展,希望能为即将转行或正在从事运维工作的你,提供一些新的视角和启发。  运维的日常工作:挑战与乐趣并存很多人对运维工作的第一印象可能是枯燥无味的,无非是敲敲代......