在NX8.5中使用C#编辑表达式中有个坑,part.Expressions.Edit该方法鲁棒性很差,当表达式有错时也能编辑成功(手动在NX中增加错误表达式会有弹框,无法创建,而该方法却可以,疑是bug),建议使用表达式对象的RightHandSide属性进行设置。错误的表达式导致对象在保存或者设为显示部件、工作部件时,NX报“Update undo happened”错误!

如下图:

一个简单的例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NXOpen;
using NXOpen.Utilities;
using NXOpen.UF; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Session theSession = Session.GetSession();
UFSession theUfSession = UFSession.GetUFSession();
UFUi theUFUi = theUfSession.Ui; string path = @"D:\test model\_asm1.prt";
NXOpen.Tag obj = NXOpen.Tag.Null;
UFPart.LoadStatus LoadStatus;
theUfSession.Part.Open(path, out obj, out LoadStatus);
NXOpen.Part part = theSession.Parts.Display; try
{
foreach (Expression p in part.Expressions)
{
if ("a" == p.Name)
{
p.RightHandSide = "4";
//part.Expressions.Edit(p, "ab*cd*ef+5");
p.EditComment("测试");
}
} //Expression exp = part.Expressions.Create("a=1"); }
catch(Exception ex)
{
Console.WriteLine(ex.Message);
} theUfSession.Part.Save();
theUfSession.Part.CloseAll();
}
}
}

创建表达式(part.Expressions.Create)方法和编辑表达式(RightHandSide)属性,当表达式错误时会抛出异常,使用try catch根据这点判断表达式是否正确。

C#实现创建、编辑NX表达式的更多相关文章

  1. Odoo 配置快速创建编辑按钮

    对于Man2one类型的数据,我们知道,form view中总会显示出一个尾巴似的"create and edit"和一个快速创建的机制,有时候业务人员一不小心就容易创建一个新的行 ...

  2. fitnesse - 用例创建编辑、管理、执行和日志

    fitnesse - 用例创建编辑.管理.执行和日志 2017-10-09 目录 1 用例创建编辑  1.1 用例创建  1.2 用例编辑2 用例管理3 用例测试执行和日志  3.1 用例测试执行  ...

  3. ASP.NET MVC 音乐商店 - 5. 通过支架创建编辑表单

    在上一章,我们已经从数据库获取数据,然后显示出来,这一章,我们将允许编辑数据. 创建 StoreManagerController 控制器 我们将要创建称为 StoreManager 的控制器,对于这 ...

  4. Linux 创建/编辑/查看 文件/文件夹的命令汇总

    Linux 创建/编辑/查看 文件/文件夹的命令汇总 Linux 创建文件的命令Linux,编辑文件的命令Linux 查看文件的命令,touch,vim,vi,gedit,cat,ls -a, ls ...

  5. NX二次开发-创建图纸尺寸表达式抑制UF_DRF_add_controlling_exp

    #include <uf.h> #include <uf_modl.h> #include <uf_drf.h> #include <uf_obj.h> ...

  6. Linq专题之创建Linq查询表达式

    本节我们主要介绍一下如何创建查询集合类型,关系数据库类型,DataSet对象类型和XML类型的数据源的Linq查询表达式. 下面在实例代码ReadyCollectionData()函数创建了准备的数据 ...

  7. ASP.NET MVC 音乐商店 - 5 通过支架创建编辑表单 续

    查看 StoreManager 控制器的代码 现在,Store Manager 控制器中已经包含了一定数量的代码,我们从头到尾重新过一下. 首先,在控制器中包含了标准的 MVC 控制器的代码,为了使用 ...

  8. Unity3D中动态创建编辑轴(点,线,圆,圆锥)

    问题分析: 最近在搞软件底层开发,将一些工具或者底层脚本打成dll导入unity使用,有这样一需求,就是编辑功能,需要像Scene场景一样,实现那种编辑轴 实现方式: 创建Mesh,构建编辑轴,这个地 ...

  9. linux下使用vim创建编辑文件

    vi/vim 使用实例 如果要想用vim/vi创建一个文件(使用命令): vim test.txt   不管文件存在与否 直接输入 vi 文件名 就能够进入 vi 的一般模式 按下 i 进入输入模式( ...

随机推荐

  1. 容器生态.png

    https://www.cnblogs.com/CloudMan6/p/6706546.html

  2. Linux服务器上创建新用户

    一.在/home目录下新建userName目录 sudo useradd -m -s /bin/bash userName 二.设置密码 sudo passwd userName

  3. Federated Machine Learning: Concept and Applications

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Qiang Yang, Yang Liu, Tianjian Chen, and Yongxin Tong. 2019. Federate ...

  4. 模拟画图题P1185 绘制二叉树

      题目链接P1185 绘制二叉树 题意概述   根据规则绘制一棵被删去部分节点的满二叉树.节点用 \(o\) 表示,树枝用/\表示.每一层树枝长度会变化,以满足叶子结点有如下特定: 相邻叶子节点是兄 ...

  5. java23种设计模式—— 二、单例模式

    源码在我的github和gitee中获取 介绍 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. ...

  6. linux网络配置及虚拟机连接不上网排错思路

    第1章          操作系统与虚拟软件的使用 1.1  虚拟软件使用方法 Vmware 1.1.1  开启vmware 注: 同时只能开启一个VMware软件,如果开了两个VMware窗口 提示 ...

  7. Node.js 学习笔记之四:使用数据库

    这部分示例将示范SQLite3.MongoDB这两种不同类型的数据库在 Node.js 中的使用方法.首先,我们要在code目录下执行mkdir 06_database命令来创建用于存放这一组示例的目 ...

  8. 用java中的Arraylist实现电话本系统管理

    大致思路:创建一个电话本条目的类,在主类中实例化.用实例化的对象调用构造参数接收输入值,然后将此对象存入Arraylist的对象中,实现动态添加电话本条目. 该系统具备添加.删除.修改.查询所有和按姓 ...

  9. 8个必备的Python GUI库

    Python GUI 库有很多,下面给大家罗列常用的几种 GUI 库.下面介绍的这些GUI框架,能满足大部分开发人员的需要,你可以根据自己的需求,选择合适的GUI库. 很多人学习python,不知道从 ...

  10. CRMEB小程序商城首页强制在微信中打开解决办法

    先说一下,这也算不上二开,小小修改一下而已. CRMEB安装完成后,PC端直接打开首页,真是一言难尽~ 然后,我就想了,用手机浏览器或者PC浏览器直接打开首页也没啥用,干脆直接强制在微信中打开算了! ...