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. SparkSQL(一)

    一.概述 组件 运行机制 转 SparkSQL – 从0到1认识Catalyst  https://blog.csdn.net/qq_36421826/article/details/81988157 ...

  2. 前端避免XSS(跨站脚本攻击)

    尽量或禁止使用危险的脚本. 示例1: 如:eval() eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码.

  3. python自动化测试-使用第三方python库技术实现

    转载自https://www.cnblogs.com/beer/p/5418471.html

  4. Delphi ResourceString的用法

    在Delphi编程的那段“古老”的日子里(就是在版本4之前),在程序中使用字符串有两个基本的方法.你可以使用字符串将它们嵌入到源程序中,例如: MessageDlg( 'Leave your stin ...

  5. v-for 循环 绑定对象 和数组

    <!--v-for 迭代数组--> <div id="app11"> <div v-for="info in infos"> ...

  6. 排序+stl——cf1237C

    先排序,把所有x坐标相同的放到同一个vector里去,然后对每个vector里的都是二维点,很好求,然后最后再把剩下的对匹配了 #include<bits/stdc++.h> #inclu ...

  7. JavaScript笔记(第一章,第二章)

    JavaScript笔记(第一章,第二章) 第一章: <meta http-equiv="Content-Type" content="text/html; cha ...

  8. CPUID读取有关Cache的信息

    1: void cpuidTest() 2: { 3: u32 val_eax, val_ebx, val_ecx, val_edx; 4: asm("cpuid" 5: : &q ...

  9. UVA 1525 Falling Leaves

    题目链接:https://vjudge.net/problem/UVA-1525 题目链接:https://vjudge.net/problem/POJ-1577 题目大意 略. 分析 建树,然后先序 ...

  10. 剑指offer——49礼物的最大价值

    题目描述 在一个m*n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0).你可以从棋盘的左上角开始拿格子里的礼物,并每次向左或者向下移动一格,知道到达棋盘的右下角.给定一个棋盘及其上面 ...