可预测尺寸舍入
你好两条尺寸线
-一个8.5,另一个7.5。
-如果dimrnd设置为1,则在图形上返回8;如果dimrnd设置为0.5,则返回8.5;如果dimrnd设置为0.5,则返回7.5。
这把我试图写的lisp搞糟了,因为我无法预测0.5的哪一边会显示在图纸上。
如有任何想法,我们将不胜感激。
谢谢
马丁 ...仍然不确定要预测哪一方,或者为什么希望有任何见解,但我可能已经在vla get PrimaryUnitsPrecision(=8)中找到了lisp的答案。哈-不,我没有-这是巧合,它等于8。所以还是不知所措
干杯
马丁 您能不能在LISP中将dimrnd设置为0? 嗨,李。感谢您的回复。我现在在家,所以很难检查dimrnd 0将给我什么(如果是零舍入-即从(42.xxx)中提取什么,那么那将不起作用。
我想我应该解释一下我想要实现什么。
比如说,有一个项目需要用孔来标注尺寸。
整体尺寸用dimlinear(例如)绘制,所有子尺寸也是如此。
有时,由于每个子维度的舍入,这些子维度的总和并不像它们应该的那样。例如,如果添加4.4和4.4,整体尺寸将为9,但子尺寸将为4和4。
lisp遍历并提取所有子DIM的42个实体值,并将它们相加。这将给出准确的答案(四舍五入将等于整体),但例程还提供了第二个解决方案,在将子DIM相加之前对其进行四舍五入。例行程序只是一个检查工具。
我认为这一切都是好的,因为舍入值与子维度上看到的一致,但在维度正好是中整数的情况下,例如4.5或10.5等,无法预测acad将选择显示哪一侧-因此我的问题。
很抱歉进行了详细的解释,但希望这能为应用程序提供一个概念。
干杯
马丁 我能理解你的问题。
我最初会考虑使用类似以下的函数模拟ACAD舍入:
(defun round(num)(如果( 是的,我使用的功能基本上与你在上面发布的完全相同。不过再次感谢-我只需要使用计算器。
很抱歉,我帮不上什么忙-我不完全理解AutoCAD为什么会这样做。。
页:
[1]