尺寸值自动求和
大家好!我到处都搜索到了一个lisp,它可以对所有选定的维度值求和。
我已经得到了对所有直线和/或多段线求和的lisp,但这次它不起作用。
有人知道Lisp程序能做到这一点吗?对所选维度实体值求和?
提前谢谢。 作为对我编写的旧区域lisp的快速修改,仅使用维度的测量属性:
(defun c:Dims2Field ( / *error* spc doc pt uFlag ss ids )
(vl-load-com)
;; © Lee Mac 2010
(defun *error* ( msg )
(and uFlag (vla-EndUndomark doc))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(princ)
)
(setq spc
(if
(or
(eq AcModelSpace
(vla-get-ActiveSpace
(setq doc
(vla-get-ActiveDocument
(vlax-get-acad-object)
)
)
)
)
(eq :vlax-true (vla-get-MSpace doc))
)
(vla-get-ModelSpace doc)
(vla-get-PaperSpace doc)
)
)
(if (and (ssget '((0 . "*DIMENSION")))
(setq pt (getpoint "\nPick Point for Field: ")))
(progn
(setq uFlag (not (vla-StartUndoMark doc)))
(vlax-for obj (setq ss (vla-get-ActiveSelectionSet doc))
(setq Ids
(cons (GetObjectID obj doc) Ids)
)
)
(vla-delete ss)
(vla-AddMText spc (vlax-3D-point pt) 0.
(if (= 1 (length Ids))
(strcat "%<\\AcObjProp Object(%<\\_ObjId " (car Ids) ">%).Measurement \\f \"%lu6\">%")
(strcat "%<\\AcExpr"
(lst->str Ids " %<\\AcObjProp Object(%<\\_ObjId " ">%).Measurement >% +")
">%).Measurement >% \\f \"%lu6\">%"
)
)
)
(setq uFlag (vla-EndUndomark doc))
)
)
(princ)
)
(defun lst->str ( lst d1 d2 )
;; © Lee Mac 2010
(if (cdr lst)
(strcat d1 (car lst) d2 (lst->str (cdr lst) d1 d2))
(strcat d1 (car lst))
)
)
(defun GetObjectID ( obj doc )
;; © Lee Mac 2010
(if
(eq "X64"
(strcase
(getenv "PROCESSOR_ARCHITECTURE")
)
)
(vlax-invoke-method
(vla-get-Utility doc) 'GetObjectIdString obj :vlax-false
)
(itoa (vla-get-Objectid obj))
)
)
这是我不久前写的。。。
(defun c:DimSum (/ ss)
;; Alan J. Thompson
(if (setq ss (ssget '((0 . "DIMENSION"))))
((lambda (v)
(vlax-for x (setq ss (vla-get-activeselectionset
(cond (*AcadDoc*)
((setq *AcadDoc* (vla-get-activedocument
(vlax-get-acad-object)
)
)
)
)
)
)
(or (wcmatch (vla-get-objectname x) "*Angular*") (setq v (+ v (vla-get-measurement x))))
)
(vla-delete ss)
(or (zerop v) (alert (strcat "Total: " (rtos v))))
)
0.
)
)
(princ)
)
李,知道角度尺寸也有测量性质。我的原稿要简单得多,直到我好奇如果我选择了一个,它是否会崩溃。 是的,角度的缺点是场以Rads显示。。。 对,但如果要计算维度的总和,角度维度不是我们想要的长度值。我的观点是它应该被过滤掉。
好的,我把这个留给OP 没有关系。我只是想让你知道。
谢谢 谢谢你们!完全符合需要! 这节省了我的时间。。。。
非常感谢。。。。。。
页:
[1]
2