NX11+VS2013

 #include <uf.h>
#include <uf_modl.h>
#include <uf_part.h>
#include <uf_ui.h>
#include <NXOpen/ExpressionGroup.hxx>
#include <NXOpen/ExpressionGroupCollection.hxx>
#include <NXOpen/NXObjectManager.hxx>
#include <NXOpen/Unit.hxx>
#include <NXOpen/UnitCollection.hxx>
#include <NXOpen/Update.hxx>
#include <uf_group.h> UF_initialize(); int number_of_exps = ;
tag_t * expsTag = NULL_TAG;
UF_MODL_ask_exps_of_part(UF_PART_ask_display_part(), &number_of_exps, &expsTag); if (number_of_exps == )
{
//创建表达式
tag_t DCTag = NULL_TAG;
UF_MODL_create_exp_tag("DC=20", &DCTag);
NXOpen::Expression *expressionDC(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(DCTag)));
expressionDC->EditComment("工作直径"); tag_t DMMTag = NULL_TAG;
UF_MODL_create_exp_tag("DMM=20", &DMMTag);
NXOpen::Expression *expressionDMM(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(DMMTag)));
expressionDMM->EditComment("柄部直径"); tag_t DNTag = NULL_TAG;
UF_MODL_create_exp_tag("DN=19", &DNTag);
NXOpen::Expression *expressionDN(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(DNTag)));
expressionDN->EditComment("颈部直径"); tag_t OALTag = NULL_TAG;
UF_MODL_create_exp_tag("OAL=100", &OALTag);
NXOpen::Expression *expressionOAL(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(OALTag)));
expressionOAL->EditComment("刀具总长"); tag_t LFTag = NULL_TAG;
UF_MODL_create_exp_tag("LF=100", &LFTag);
NXOpen::Expression *expressionLF(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(LFTag)));
expressionLF->EditComment("刀具高度"); tag_t LUTag = NULL_TAG;
UF_MODL_create_exp_tag("LU=30", &LUTag);
NXOpen::Expression *expressionLU(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(LUTag)));
expressionLU->EditComment("工作长度"); tag_t LCFTag = NULL_TAG;
UF_MODL_create_exp_tag("LCF=40", &LCFTag);
NXOpen::Expression *expressionLCF(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(LCFTag)));
expressionLCF->EditComment("槽长"); tag_t SGATag = NULL_TAG;
UF_MODL_create_exp_tag("SGA=120", &SGATag);
NXOpen::Expression *expressionSGA(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(SGATag)));
expressionSGA->EditComment("角度"); tag_t WFTag = NULL_TAG;
UF_MODL_create_exp_tag("WF=20", &WFTag);
NXOpen::Expression *expressionWF(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(WFTag)));
expressionWF->EditComment("工作宽度"); tag_t CDXITag = NULL_TAG;
UF_MODL_create_exp_tag("CDXI=10", &CDXITag);
NXOpen::Expression *expressionCDXI(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(CDXITag)));
expressionCDXI->EditComment("切削长度"); tag_t CWTag = NULL_TAG;
UF_MODL_create_exp_tag("CW=3", &CWTag);
NXOpen::Expression *expressionCW(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(CWTag)));
expressionCW->EditComment("切削宽度"); //添加到vector
std::vector<NXOpen::Expression*> Exp1;
Exp1.push_back(expressionDC);
Exp1.push_back(expressionDMM);
Exp1.push_back(expressionDN);
Exp1.push_back(expressionOAL);
Exp1.push_back(expressionLF);
Exp1.push_back(expressionLU);
Exp1.push_back(expressionLCF);
Exp1.push_back(expressionSGA);
Exp1.push_back(expressionWF);
Exp1.push_back(expressionCDXI);
Exp1.push_back(expressionCW); //创建表达式组
NXOpen::ExpressionGroup *expressionGroup1;
expressionGroup1 = workPart->ExpressionGroups()->Create("刀杆参数");
expressionGroup1->SetExpressions(Exp1); //创建表达式
NXOpen::Expression *expressiondp_scpe;
expressiondp_scpe = workPart->Expressions()->CreateExpression("String", "dp_scpe=\"A\"");
expressiondp_scpe->EditComment("刀片规格"); tag_t W1Tag = NULL_TAG;
UF_MODL_create_exp_tag("W1=0", &W1Tag);
NXOpen::Expression *expressionW1(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(W1Tag)));
expressionW1->EditComment("刀片内切圆"); tag_t S1Tag = NULL_TAG;
UF_MODL_create_exp_tag("S1=0", &S1Tag);
NXOpen::Expression *expressionS1(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(S1Tag)));
expressionS1->EditComment("刀片厚度"); //添加到vector
std::vector<NXOpen::Expression*> Exp2;
Exp2.push_back(expressionW1);
Exp2.push_back(expressionS1);
Exp2.push_back(expressiondp_scpe); //创建表达式组
NXOpen::ExpressionGroup *expressionGroup2;
expressionGroup2 = workPart->ExpressionGroups()->Create("刀片参数");
expressionGroup2->SetExpressions(Exp2); //创建表达式
tag_t A1Tag = NULL_TAG;
UF_MODL_create_exp_tag("A1=SIN(30)", &A1Tag);
NXOpen::Expression *expressionA1(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(A1Tag))); tag_t A2Tag = NULL_TAG;
UF_MODL_create_exp_tag("A2=COS(30)", &A2Tag);
NXOpen::Expression *expressionA2(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(A2Tag))); tag_t A3Tag = NULL_TAG;
UF_MODL_create_exp_tag("A3=TAN(30)", &A3Tag);
NXOpen::Expression *expressionA3(dynamic_cast<NXOpen::Expression *>(NXOpen::NXObjectManager::Get(A3Tag))); //添加到vector
std::vector<NXOpen::Expression*> Exp3;
Exp3.push_back(expressionA1);
Exp3.push_back(expressionA2);
Exp3.push_back(expressionA3); //创建表达式组
NXOpen::ExpressionGroup *expressionGroup3;
expressionGroup3 = workPart->ExpressionGroups()->Create("计算参数");
expressionGroup3->SetExpressions(Exp3); //创建表达式
NXOpen::Expression *expressionh_type;
expressionh_type = workPart->Expressions()->CreateExpression("String", "h_type=\"weldon\"");
expressionh_type->EditComment("柄部规格"); NXOpen::Unit *nullNXOpen_Unit(NULL);
NXOpen::Expression *expressionA4;
expressionA4 = workPart->Expressions()->CreateWithUnits("A4=if(h_type==\"weldon\") 1 else 0", nullNXOpen_Unit); //添加到vector
std::vector<NXOpen::Expression*> Exp4;
Exp4.push_back(expressionh_type);
Exp4.push_back(expressionA4); NXOpen::ExpressionGroup *expressionGroup4;
expressionGroup4 = workPart->ExpressionGroups()->Create("表达式抑制");
expressionGroup4->SetExpressions(Exp4); } else
{
uc1601("当前part已存在表达式,此命令不能使用", );
} UF_free(expsTag); UF_terminate();

NX二次开发-NX11创建表达式组NXOpen::ExpressionGroup的更多相关文章

  1. NX二次开发-UFUN创建表达式UF_MODL_create_exp无TAG

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建一个新的表达式,无TAG UF_MOD ...

  2. NX二次开发-UFUN创建表达式UF_MODL_create_exp_tag有TAG

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建一个新的表达式,无TAG UF_MOD ...

  3. NX二次开发-UFUN导入表达式UF_MODL_import_exp

    最近在做表达式创建,发现UFUN的创建表达式函数UF_MODL_create_exp,UF_MODL_create_exp_tag没有办法创建字符串类型的表达式,例如AA="BB" ...

  4. NX二次开发-UFUN输入表达式TAG,得到表达式字符串UF_MODL_ask_exp_tag_string

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建表达式 tag_t NewExpTag ...

  5. NX二次开发-UFUN输入表达式TAG,得到表达式值UF_MODL_ask_exp_tag_value

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建表达式 tag_t NewExpTag ...

  6. NX二次开发-UFUN创建圆柱UF_MODL_create_cyl1

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_obj.h> #include <u ...

  7. NX二次开发-UFUN创建球UF_MODL_create_sphere1

    NX11+VS2013 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建球 UF_FEATURE_SIGN ...

  8. NX二次开发-UFUN创建圆锥UF_MODL_create_cone1

    NX11+VS2013 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建圆锥 UF_FEATURE_SIGN ...

  9. NX二次开发-UFUN创建镜像体UF_MODL_create_mirror_body

    NX11+VS2013 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建块 UF_FEATURE_SIGN ...

随机推荐

  1. java 获取String出现最多次数的字段

    package hello; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator ...

  2. 分布式项目spring 配置文件的约束

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...

  3. 【原理】RabbitMQ概要图

    使用流程 发布者(推送消息的一端): 创建一个tcp长连接connection,连接rabbitmq的监听端口5672: 在TCP长连接下创建一个信道channel,信道可以理解为connection ...

  4. OpenSearch最新功能介绍

    摘要:阿里云开放搜索(OpenSearch)是一款结构化数据搜索托管服务,其能够提供简单.高效.稳定.低成本和可扩展的搜索解决方案.OpenSearch以平台服务化的形式,将专业搜索技术简单化.低门槛 ...

  5. js-原生js触发器使用

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  6. 【Java架构:基础技术】一篇文章搞掂:Eclipse

    Eclipse中使用SVN 1.打开资源库视图 https://www.cnblogs.com/liangguangqiong/p/7965770.html 一.编辑器方面 格式化取消自动换行:打开E ...

  7. layui多图上传

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 提取json对象中的数据,转化为数组

    var xx1 = ["乐谱中的调号为( )调", "写出a自然小调音阶.", "以G为冠音,构写增四.减五音程.", "调式分析 ...

  9. 函数的四种调用模式.上下文调用.call.apply

    闭包:函数就是一个闭包,一个封闭的作用域;         返回函数,要返回多个函数就用一个对象封装一下,         立即执行函数+return 回调函数   JS动态创建的DOM,不会被搜索引 ...

  10. 剑指offer——53字符流中第一个只出现一次的字符

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...