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

对于Inventor这种参数化/变量化设计数据控制的软件,用户在参数中使用各种变量引用和表达式描述,是必然的结果;而Inventor也为此提供了完整的计算规则、常用运算符和函数,这就有可能实现两个参数之间使用表达式进行比较复杂的计算并建立起关联。

1、可用的运算符号与函数

从Inventor的帮助中可以清晰地得到这些线索,参见图1。

算数运算符与函数

算数运算符与函数

图1 算数运算符与函数

2、在数据输入框中使用运算符号

在数据输入框中(所有的这类输入界面)都可以使算数运算符号,包括使用控制计算次序的圆括号。

在图2的情况下,正在标注的这个驱动尺寸,未来将遵从“d0*0.25”的关系,与尺寸d0形成确定的关联关系,进而实现参数关联的效果。

这是大家很熟悉的过程了…

使用算数运算

图2 使用算数运算

3、在数据输入框中使用函数运算的问题

而函数运算,则不是这样简单地与我们现有常识相一致。例如这样的需求:现存尺寸d0,想要将目前的尺寸做成d0的取整之后2倍。按照前边的说法,可以这样写表达式:Round(d0)*2

但是Inventor认为不对,参见图3。

出错实例

图3 出错实例

什么错误?

所谓“预期的单位”是mm,因为这是个驱动尺寸;而“表达式的单位”是“无量纲(ul)”,两者不匹配而不能计算。

这种量纲匹配,类似于程序设计中的数据类型匹配,不匹配将不可运算。例如数字的2与字符型的2不可能进行加运算。这是问题的关键所在,而解决这个问题的方法就是设法使两者量纲匹配。

4、量纲统一的原理和方法

从Inventor自己的解释中可见,Round函数的结果数据类型(返回类型)是“无量纲”,而它的参数数据类型(希望类型)也是“无量纲”;我们要处理的数据量纲是mm,这些都不可能更改。

但是,我们需要完成这个表达式的使用。怎么办?需要者找到一种量纲转换的方法。

在Inventor的参数表中新建一个变量,量纲为ul,表达式为1(mm/mm),结果Inventor接受了,这样,就实现了mm量纲数据转换成ul量纲的过程,参见图4。

量纲转化算法

图4 量纲转化算法

这是一个隐含的规则:mm除以mm等于ul。至少我们现在还没能从相关支持文档中看到类似的说明,但是这个方法确实管用,而且Inventor也认可。在其他领域中,此类问题的解决方法是采用无量纲化来得到无量纲变量。

5、应用实例

例如:当前尺寸准备引用现有尺寸d0,并将d0取整之后的两倍。具体过程是:

1)先创建尺寸d0

2)在设计数据表中添加用户变量(例如:dd0),设置量纲为ul,表达式为d0/1mm,因此将mm量纲的数据转换成无量纲数据

3)在新的驱动尺寸输入框中,引用dd0并写入表达式:Round(dd0)*2mm,参见图5

引用实例

图5 引用实例

在这个表达式中:

Round(dd0)是对dd0参数取整,而dd0是将参数d0转换成ul量纲的结果,返回值类型为ul;

*2mm中的2,是要求结果中“两倍”;

*2mm中的mm,是将最后结果转换成mm量纲,以满足驱动尺寸的量纲要求。

6、结论

可见,为了应付Inventor这些函数中量纲的规则,我们必须掌握量纲转换的基本技术:

将mm或者deg量纲转换成ul,就是除法,例如:d2=14.5deg,则:dd2=d2/1deg成为ul…

将ul转换成mm或者deg量纲,就是乘法,例如:dd2是ul量纲,则:dd2*1rad成为弧度(rad)角度…

标准表达式中数据类型不匹配怎么解决_关于Inventor驱动尺寸中表达式的使用问题...相关推荐

  1. C#使用OleDB操作ACCESS插入数据时提示:标准表达式中数据类型不匹配。

    C#使用OleDB操作ACCESS插入数据时提示:标准表达式中数据类型不匹配. OleDbParameter param = new OleDbParameter("" + dc. ...

  2. 关于java中数据类型叙述正确的是( )_关于Java中数据类型叙述正确的是:

    [判断题]图像的分辨率是指图像单位面积上的象素个数. [填空题]9. Together with the development of bourgeois relationships and form ...

  3. 关于java中数据类型叙述正确的是_《JAVA》试题6及答案

    < JA V A 程序设计> A 卷 第 1 页 共 8 页 一.选择题(每题 2 分,共 20 题, 40 分) 1. 关于 Java 中数据类型叙述正确的是: ( ) A .整型数据在 ...

  4. mouted能不能访问data中的数据_Vue(定时器)解决mounted不能获取到data中的数据问题...

    vue中data定义 data() { return { isok:10, } } 在vue中使用定时器 如下 mounted是钩子函数 mounted(){ console.log(this.iso ...

  5. javascript中打印对象显示[object object]_扒一扒JavaScript中不常见的一些object

    前言 今天仔细阅读了MDN的这篇guide:Using XMLHttpRequest,在里面发现了好多以前听都没听过的概念,尤其是那些不为人知的Object,所以在这里特地把它们拎出来讲一下,不求多深 ...

  6. mysql中为表增加外键_如何在Excel 2013中为符号分配键盘快捷键

    mysql中为表增加外键 We've previously shown you how to add keyboard shortcuts to symbols in Word 2013 to mak ...

  7. qt中如何模拟按钮点击_如何快速在 Shopify 中加入按钮

    假如你会 `CSS` , `HTML` , `JS` 三件套,那么修改 `Shopify` 代码将不会太难(毕竟一个模板中的代码量还是挺多的,除非深入研究了代码,不然改起来还是会比较麻烦的). 但挺多 ...

  8. 标准表达式中数据类型不匹配_三观不同的人在一起有多累?三观一致的标准,不进行三观测试真不知道!人生观测试,价值观测试,世界观测试题推荐!超准三观匹配度测试!...

    生活中有很多不确定因素,有着很多悲欢离合与挑战.想驾驭生活吗?最好的方式是将自己打造成生活的英雄.但英雄是个矛盾体,因为英雄既有利他精神,常常心系天下:又有着孤傲一面,常常单枪匹马.一个人要想成为一个 ...

  9. 应用程序中的服务器错误 怎么解决办法,iwms出现“/”应用程序中的服务器错误。解决办法...

    我的主站一直在用木鸟的iwms系统(acc版),由于对于acc比较熟悉,导致网站还没跟上PHP的主流.这个系统时不时会出现""/"应用程序中的服务器错误".本来 ...

  10. 小程序引入的echarts过大如何解决_在微信小程序中使用 ECharts

    官方文档 官方已经提供了小程序版的 ECharts echarts-for-weixin 并提供的了使用示例 使用方式还是熟悉的 ECharts 的配置方案,只要自己 option 或者完整的将浏览器 ...

最新文章

  1. 自定义Linq的Distinct
  2. SAP标准工单入库时产生成本差异-求解进行时
  3. Python Django后台管理模板美化:使用django-simpleui模块
  4. 一个关于组织学员学习技术的笔试题--求讨论
  5. prim求最短路径C语言,[图论]Prim算法求最小支撑树和最短路径
  6. Python3错误和异常
  7. 推动半导体产业发展,华微电子CCT MOS产品发布
  8. J2EE实现发送邮件功能
  9. 大数据时代,新起的数据有哪几种模型
  10. xp python转化为exe_使用Py2exe从python脚本生成的exe在xp上不起作用
  11. 反向传播算法(backpropagation)
  12. JDK8编译,JDK8运行错误
  13. OpenProcess()函数
  14. Eclipse 的中文简体版安装教程
  15. 软件测试需要掌握哪些技术?
  16. 易语言-post登陆百度
  17. 埃及法老也不知道的金字塔秘密
  18. 12-用户及权限管理
  19. 一套系统让打工人瑟瑟发抖,监控员工离职动态。
  20. keil 烧录时 Full Chip Erase Failed问题

热门文章

  1. spark 数据倾斜调优
  2. Vue(三)goods组件开发
  3. 团队开发时该如何同步数据库变更到本地
  4. oracle_dblink配置
  5. COGS 265 线段覆盖
  6. 理解Netty中的Zero-copy
  7. js实现类似jquery基础功能 简单选择器/事件/属性
  8. cacti气象图设置
  9. DNS解析错误解决办法
  10. 类-描述器-把类对象方法转变为属性方式