zoukankan      html  css  js  c++  java
  • 【NX二次开发】属性操作相关函数的使用方法

    内容包括:
    1.属性创建
    2.判断属性是否存在
    3.读取属性值
    4.时间属性转换成字符串
    5.统计属性的数量
    6.删除指定属性
    7.删除全部属性
    效果:

     源码:

    #include <stdlib.h>
    #include <stdio.h>
    #include <uf.h>
    #include <uf_attr.h>
    #include <uf_cfi.h>
    #include <uf_curve.h>
    
    #define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))
    static int report(char *file, int line, char *call, int irc)
    {
            if (irc)
            {
                    char    messg[133];
                    printf("%s, line %d:  %s
    ", file, line, call);
                    (UF_get_fail_message(irc, messg)) ?
                            printf("    returned a %d
    ", irc) :
                            printf("    returned error %d:  %s
    ", irc, messg);
            }
            return(irc);
    }
    static void do_ugopen_api(void)
    {
            //声明变量
            tag_t       pnt;
            double    zero[3] = { 0,0,0 };
            UF_ATTR_value_t value;
            //创建一个点来分配属性
            UF_CALL(UF_CURVE_create_point(zero, &pnt));
            //分配一个“整型”属性给对象
            value.type = UF_ATTR_integer;
            value.value.integer = 1;
            UF_CALL(UF_ATTR_assign(pnt, "INTEGER_ATTRIBUTE", value));
            //分配一个“数字”属性给对象
            value.type = UF_ATTR_real;
            value.value.real = 1.5;
            UF_CALL(UF_ATTR_assign(pnt, "REAL_ATTRIBUTE", value));
            //分配一个“日期”属性给对象
            value.type = UF_ATTR_time;
            //初始化到当前日期和时间
            //uc4583 将字符串转换为NX能读取的日期格式
            //第一个参数:输入日期字符串,如果为空则为当前日期(样式有多种)
            //第二个参数:输入时间字符串,如果为空则为当前日期(样式有多种)
            UF_CALL(uc4583("", "", value.value.time));
            UF_CALL(UF_ATTR_assign(pnt, "DATE_AND_TIME_ATTRIBUTE", value));
            //分配一个“空”属性给对象
            value.type = UF_ATTR_null;
            UF_CALL(UF_ATTR_assign(pnt, "NULL_ATTRIBUTE", value));
            //分配一个“字符串”属性给对象
            value.type = UF_ATTR_string;
            value.value.string = "这是个字符串";
            UF_CALL(UF_ATTR_assign(pnt, "STRING_ATTRIBUTE", value));
            //分配一个“布尔”属性给对象
            value.type = UF_ATTR_bool;
            value.value.string = "这是个布尔";
            UF_CALL(UF_ATTR_assign(pnt, "BOOL_ATTRIBUTE", value));
    
            //读取属性值 判断属性是否存在
            UF_ATTR_value_t valueTemp;
            int iAttrType = UF_ATTR_any;
            UF_CALL(UF_ATTR_read_value(pnt, "STRING_ATTRIBUTE", iAttrType, &valueTemp));
            if (valueTemp.type == 0)
            {
                    //此属性不存在
            }
            
            //valueTemp.type 5
            //valueTemp.value.string 字符串值abc
            UF_free(valueTemp.value.string);
            
            //读取属性值
            UF_ATTR_value_t valueTemp2;
            UF_CALL(UF_ATTR_read_value(pnt, "DATE_AND_TIME_ATTRIBUTE", iAttrType, &valueTemp2));
            char cDate[20] = "";
            char cTime[20] = "";
            //uc4582 将NX的日期格式转换为字符串
            //第一个参数输入{-1,-1}则为当前日期时间
            //第二个参数为日期样式
            UF_CALL(uc4582(valueTemp2.value.time, 1, cDate, cTime));
            //cDate 08/04/20
            //cTime 15:48
    
            //按类型统计属性的数量
            int iAttrCount = 0;
            UF_CALL(UF_ATTR_count_attributes(pnt, UF_ATTR_any, &iAttrCount));
            
            return;
            //删除指定属性
            UF_CALL(UF_ATTR_delete(pnt, iAttrType, "STRING_ATTRIBUTE"));
    
            //删除所有属性
            UF_CALL(UF_ATTR_delete_all(pnt, iAttrType));
            return;
    }
    
    void ufusr(char *param, int *retcode, int param_len)
    {
            if (!UF_CALL(UF_initialize()))
            {
                    do_ugopen_api();
                    UF_CALL(UF_terminate());
            }
    }
    int ufusr_ask_unload(void)
    {
            return (UF_UNLOAD_IMMEDIATELY);
    }
  • 相关阅读:
    package.json作用
    github 发布项目
    kubernetes --> ConfigMap
    kubernetes1.9 手动安装
    python3 BeautifulSoup模块
    python3 requests模块
    ununtu16.04+python3+selenium+firefox环境搭建
    QQ空间动态内容,好友信息,点赞爬虫脚本
    k8s使用ceph作为后端存储挂载
    ceph存储安装配置
  • 原文地址:https://www.cnblogs.com/KMould/p/14621031.html
Copyright © 2011-2022 走看看