去评论
距米网-精简版

关于Inventor驱动尺寸中表达式的使用问题

JUMU
2019/01/19 22:18:17
对于Inventor这种参数化/变量化设计数据控制的软件,用户在参数中使用各种变量引用和表达式描述,是必然的结果;而Inventor也为此提供了完整的计算规则、常用运算符和函数,这就有可能实现两个参数之间使用表达式进行比较复杂的计算并建立起关联。
1、可用的运算符号与函数
从Inventor的帮助中可以清晰地得到这些线索,参见图1。




2、在数据输入框中使用运算符号
在数据输入框中(所有的这类输入界面)都可以使算数运算符号,包括使用控制计算次序的圆括号。
在图2的情况下,正在标注的这个驱动尺寸,未来将遵从“d0*0.25”的关系,与尺寸d0形成确定的关联关系,进而实现参数关联的效果。
这是大家很熟悉的过程了…




3、在数据输入框中使用函数运算的问题
而函数运算,则不是这样简单地与我们现有常识相一致。例如这样的需求:现存尺寸d0,想要将目前的尺寸做成d0的取整之后2倍。按照前边的说法,可以这样写表达式:Round(d0)*2
但是Inventor认为不对,参见图3。




什么错误?
所谓“预期的单位”是mm,因为这是个驱动尺寸;而“表达式的单位”是“无量纲(ul)”,两者不匹配而不能计算。
这种量纲匹配,类似于程序设计中的数据类型匹配,不匹配将不可运算。例如数字的2与字符型的2不可能进行加运算。这是问题的关键所在,而解决这个问题的方法就是设法使两者量纲匹配。
4、量纲统一的原理和方法
从Inventor自己的解释中可见,Round函数的结果数据类型(返回类型)是“无量纲”,而它的参数数据类型(希望类型)也是“无量纲”;我们要处理的数据量纲是mm,这些都不可能更改。
但是,我们需要完成这个表达式的使用。怎么办?需要者找到一种量纲转换的方法。
在Inventor的参数表中新建一个变量,量纲为ul,表达式为1(mm/mm),结果Inventor接受了,这样,就实现了mm量纲数据转换成ul量纲的过程,参见图4。




这是一个隐含的规则:mm除以mm等于ul。至少我们现在还没能从相关支持文档中看到类似的说明,但是这个方法确实管用,而且Inventor也认可。在其他领域中,此类问题的解决方法是采用无量纲化来得到无量纲变量。
应用实例
例如:当前尺寸准备引用现有尺寸d0,并将d0取整之后的两倍。具体过程是:
1、先创建尺寸d0
2、在设计数据表中添加用户变量(例如:dd0),设置量纲为ul,表达式为d0/1mm,因此将mm量纲的数据转换成无量纲数据
3、在新的驱动尺寸输入框中,引用dd0并写入表达式:Round(dd0)*2mm,参见图5




在这个表达式中:
Round(dd0)是对dd0参数取整,而dd0是将参数d0转换成ul量纲的结果,返回值类型为ul;
*2mm中的2,是要求结果中“两倍”;
*2mm中的mm,是将最后结果转换成mm量纲,以满足驱动尺寸的量纲要求。
结论
可见,为了应付Inventor这些函数中量纲的规则,我们必须掌握量纲转换的基本技术:
将mm或者deg量纲转换成ul,就是除法,例如:d2=14.5deg,则:dd2=d2/1deg成为ul…
将ul转换成mm或者deg量纲,就是乘法,例如:dd2是ul量纲,则:dd2*1rad成为弧度(rad)角度…