NXOpen:Expression类型与基本单位

发布于:2017-12-12 | 分类:CAD/CAE integration


本文参考NXOpen::Expression Class Reference,记录NX表达式知识及相关的NX Open C++函数。

表达式类型及获取值的函数

常用表达式类型及获取相应表达式的值的成员函数如下表所示:

类型 方法
Number Value()
String StringValue()
Integer IntegerValue()
Boolean BooleanValue()
Point PointValue()
Vector VectorValue()
  • Expression类的Type()成员函数可以返回NXString类型的表达式类型名称
  • RightSideHand()方法可以返回NXString类型的表达式右侧的值

Number类型与Units

以上类型仅Number类型表达式带有Units(Number类型不为Constant即表示带有单位)。相应地,Value()方法返回的是基于基本单位(base part unit)的值。于是,直接使用Value()方法获取的表达式值可能和预期不一致。

以Number表达式Unit为Pressure为例,选择单位"PresureNewtonPerSquareMillimeter",即N/mm^2,亦即MPa,创建表达式f=2 MPa,使用Value()函数获取的结果却是2000.0。这是因为基本单位是"PressurePerUnitLength",即m*N/mm^3,于是:

value = 2 m*N/mm^3 = 2000.0 MPa

同理,对于Number类型表达式特有的SetValue(double)方法,也是以基本单位为参考的数值。

为了避免以上问题,可以使用函数:

GetValueUsingUnits(Expression::UnitOption)

即根据指定单位返回表达式的值,其中

Enum UnitOption {
    UnitOptionBase, UnitOptionExpression
}