在中添加(汇总)所有维度
我正在寻找一个lisp,可以总结所有维度,并给出一个单一的值,这样我可以很容易地得到线的数量。。。。 检查此。。。(defun c:Test (/ ss n)
(if (setq ss (ssget '((0 . "*DIMENSION"))))
(progn (setq n 0)
((lambda (x / sn)
(while (setq sn (ssname ss (setq x (1+ x))))
(setq n (+ (cdr (assoc 42 (entget sn))) n))
)
)
-1
)
(if (> n 0)
(alert (strcat "Total value of seleced Dimensions is : <"
(rtos n 2)
" >"
)
)
)
)
(princ)
)
(princ)
) 下面是一个非常简单的解决方案:
(defun c:dimsum ( / i s x )
(if (setq s
(ssget
'( (0 . "DIMENSION")
(-4 . "<OR")
(70 . 000)
(70 . 001)
(70 . 032)
(70 . 033)
(70 . 128)
(70 . 129)
(70 . 160)
(70 . 161)
(-4 . "OR>")
)
)
)
(progn
(setq x 0.0)
(repeat (setq i (sslength s))
(setq x (+ x (cdr (assoc 42 (entget (ssname s (setq i (1- i))))))))
)
(princ (strcat "\nTotal of " (itoa (sslength s)) " Dimensions: " (rtos x)))
)
)
(princ)
) 谢谢你的Lisp程序。它工作得很好。如果计算时有编辑过的维度,则应提示是否包含文字替代?
谢谢
坦维尔 如此接近。。。如果Dim的文本已被移动,Lisp例程将不会对其进行计数。我必须做一个DimTedit,在得到正确的总数之前,所有的dim都在家里。
此外,它使用全精度,而不是dim的精度。
例如,如果我有四个99.5mm的DIM,全部四舍五入,我希望总和是396(不是398),这让我知道我必须四舍五入其中的两个DIM。
我忽略了位代码2和8的组合,现在更新了上述代码。
程序将使用LUPREC系统变量设置的精度。
页:
[1]