舍入和绝对数
我正在使用LT 2010,绘制电缆线路图。我有一个宏,它为电缆序列号(以米为单位)设置两个变量WALLSEQ1和WALLSEQ2,并计算相应的电缆线圈线圈1(以英尺为单位)。顺序读数为4位或5位格式,例如0012或01234。我使用SETENV定义电缆序列变量,以捕获前面的零。然后我从另一个中减去一个,然后乘以3.28084,将线圈转换为英尺。
我的问题是线圈值有时是负数,这取决于序列号。如果WALLSEQ1大于WALLSEQ2,则线圈为正极,否则线圈为负极。线圈值也是十进制格式。我需要把它四舍五入到最接近的整数。
有没有办法在宏和diesel表达式中使用ABS(绝对)和RND(圆形)?如果我不能得到绝对值,可以用If语句代替吗?
这是我的宏。。。
^C^Csetenv;WALLSEQ1;\setenv;WALLSEQ2;\setenv;COIL1;$M=$(*,$(-,$(getenv,WALLSEQ1),$(getenv,WALLSEQ2)),3.28084) “IF”是有效的DIESEL函数。
没有ABS或RND柴油机功能。
参考:http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%202010%20User%20Documentation/index.html?url=WS73099cc142f4875513fb5cd10c4aa30d6b-7b3c。htm,主题编号=d0e393837 谢谢你,麦克斯温。我将尝试使用IF语句来解决负值。还有其他方法对数字进行四舍五入吗? 我找到了一种在宏中使用ABS和ROUND的方法。我在设置COIL1变量时使用了“CAL”命令。不需要IF语句。
^C^Csetenv;WALLSEQ1;\setenv;WALLSEQ2;\setenv;COIL1;'cal;abs(round($M=$(*,$(-,$(getenv,WALLSEQ1),$(getenv,WALLSEQ2)),3.28084))); 好的。。。!
我忘了cal在LT可用。。。 这是最后一个宏,它使用带diesel和CAL表达式的IF语句。
^C^Csetenv;SEQUNITS-F-or-M;\setenv;WALLSEQ1;\setenv;WALLSEQ2;\$M=$(if,$(eq,$(upper,$(getenv,SEQUNITS-F-or-M)),M),setenv;COIL1;'cal;abs(round(3.28084*($(getenv,WALLSEQ1)-$(getenv,WALLSEQ2)))),setenv;COIL1;'cal;abs($(getenv,WALLSEQ1)-$(getenv,WALLSEQ2)));
页:
[1]