代码当前使用的容差为1e-8(0.0000000 1),请尝试将其更改为更高的值,例如1e-4(0.0001)。 谢谢你,李,非常感谢!它正在工作,但我的文件可能有点奇怪。我将公差更改为1e-4,它选择了更多的行,但有些行无论代码中的公差是多少,它都不会选择。
我会设法弄清楚的。
再次感谢你们! 在AutoCAD中,选择整数值的想法似乎是不合理的,因为逗号后可能有非常小的数字长度。。。
四条线似乎有相同的长度。图纸
是的,因此公差
由于存储双精度的结构(允许存储非常大和非常小的数字),使用双精度总是需要一定的容差,如果您感兴趣,请阅读本文。
但是,我没有考虑距离何时低于整数值,因此请尝试以下操作:
(defun c:test ( / d e i r s x )
(if (setq s
(ssget "_X"
(list '(0 . "LINE")
(if (= 1 (getvar 'cvport)) (cons 410 (getvar 'ctab)) '(410 . "Model"))
)
)
)
(repeat (setq i (sslength s))
(setq e (ssname s (setq i (1- i)))
x (entget e)
d (distance (cdr (assoc 10 x)) (cdr (assoc 11 x)))
r (- d (fix d))
)
(if (not (or (equal r 0.0 1e-6) (equal r 1.0 1e-6)))
(ssdel e s)
)
)
)
(sssetfirst nil s)
(princ)
) 李-麦克,现在它像魔术一样神奇!非常感谢你!
我刚刚将这两个公差都更改为1e-5,它现在选择属性窗口显示整数值的所有行(如果我从代码中删除“not”,则选择非整数)
我会阅读链接,谢谢! ... 没有,还有问题,但我会尽量保持宽容 我不得不将这两个公差都更改为1e-4,之后我再也找不到任何错误的选线,所以这似乎是适合我的设置
李,谢谢你的工作 很高兴你把它分类了,理查德,不客气
页:
1
[2]