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. Selenium_随记要点

      1.selenium不支持定位复合元素定位:     像上图的class元素有两个值: op_weather4_twoicon_today  -----    OP_LOG_LINK    像这种 ...

  2. spring boot 四大组件之Starter

    1.概述 依赖管理是任何复杂项目的关键方面.手动完成这些操作并不理想; 你花在它上面的时间越多,你在项目的其他重要方面所花费的时间就越少. 构建Spring Boot启动器是为了解决这个问题.Star ...

  3. linux利用用户组给用户赋予不同的权限

    在Linux中wheel组就类似于一个管理员的组.通常在LUNIX下,即使我们有系统管理员root的权限,也不推荐用root用户登录.一般情况下用普通用户登录就可以了,在需要root权限执行一些操作时 ...

  4. Magento多语言注意事项

    Magento一般使用CSV文件方式翻译国际化词条 一般用法是代码中: <?php echo Mage::helper("module_name")->__('Item ...

  5. NX二次开发-OLE/COM向EXCEL表格中插入图片

    今晚有一个兄弟问我怎么往EXCEL里插入图片(加工程序单中需要插入图片),这个我之前也没弄过,回复了他一句不知道,后来刚刚干完游戏吃完鸡,就去VC++的书上翻了翻,还真的被我翻到了.VC++的方法往E ...

  6. [SCOI2009]迷路(矩阵快速幂) 题解

    Description windy在有向图中迷路了. 该有向图有 N 个节点,windy从节点 0 出发,他必须恰好在 T 时刻到达节点 N-1. 现在给出该有向图,你能告诉windy总共有多少种不同 ...

  7. Linux 线程Demo

    #include <stdio.h> #include <pthread.h> struct char_print_params { char character; int c ...

  8. ajax - getJSON() 方法

    $("body").on("click",".layui-input-inline:eq(3)",function(){ $(this).f ...

  9. 洛谷 P4173 残缺的字符串 (FFT)

    题目链接:P4173 残缺的字符串 题意 给定长度为 \(m\) 的模式串和长度为 \(n\) 的目标串,两个串都带有通配符,求所有匹配的位置. 思路 FFT 带有通配符的字符串匹配问题. 设模式串为 ...

  10. Django框架(七)—— 模板层:变量、过滤器、标签、自定义标签和过滤器

    目录 模板层:变量.过滤器.标签.自定义标签和过滤器 一.模板层变量 1.语法 2.使用 二.模板层之过滤器 1.语法 2.常用过滤器 3.其他过滤器 三.模板值标签 1.for标签 2.if标签 3 ...