总和属性
有谁能给我推荐一个lisp例程,我可以用它添加块的属性,我可以通过窗口多边形或close plygon进行选择,谢谢 虽然确实可行,但满足您需求的计划可能必须相当具体。
所有属性都是十进制、英制、科学等格式的吗
您想使用所有属性还是只使用证书标记名
显示或输出结果的位置和方式。
通过ssget选择插入接受各种输入:
需要多少错误检查
许多小事情使程序真正有用-大卫 下面是一个添加属性值的通用例程-大卫
;;;ADD NUMERIC VALUES OF AN ATTRIB TAG IN SELECTED INSERTS
(defun c:combav (/ tm ss i en an ad at av vl)
(setq tm (strcase (getstring "\nATTRIB Tag To Add: ")))
(and (setq ss (ssget (list (cons 0 "INSERT")
(cons 66 1)
(cons 67 (if (= (getvar "TILEMODE") 1) 0 1)))))
(setq i (sslength ss))
(while (not (minusp (setq i (1- i))))
(setq en (ssname ss i)
an (entnext en))
(while (= "ATTRIB" (cdr (assoc 0 (entget an))))
(setq ad (entget an)
at (strcase (cdr (assoc 2 ad)))
av (atof (cdr (assoc 1 ad))))
(if (= at tm)
(setq vl (cons (if (= (fix av) av)
(fix av) av) vl)))
(setq an (entnext an)))))
(apply '+ vl))
你好这个lisp如何将结果和放入其他块的其他属性中,而不是打印ito命令行??
当lisp已经汇总了所需的属性值时,是否可以将字段公式插入到另一个选定块的选定属性中?(或插入选定块的预定义标记)。向你们所有人致意! 我和David一样,这是一个开放式问题,对所有块属性求和是最简单的,我会看一个通用方法,但不是要求使用属性的顺序来命名标记。我想要1,2和5的总和。使用VL get属性只意味着对请求的属性进行交叉检查。
Msanddune结果如何? 其中一个应该符合你的需要
http://lee-mac.com/sumattributes.html
http://lee-mac.com/macatt.html
http://lee-mac.com/countattributevalues.html 现在测试一些东西。
这样做有点粗糙,但显示了一种一个代码适合所有人的方法。它需要一些If,所以不正确的对象不要使其崩溃。它确实需要属性作为可以检查的字符串。如果你两次输入一个职位,它会将其添加到总数中。顺序是创建顺序,而不是视觉顺序,同样,Ntsel会有所帮助。
属性从1开始为0,而不是1,因此条目上的-1,但从用户的角度来看,1更容易识别。
它一次只做1个,但原始帖子在所需内容方面有点夸张。
2
你好我很欣赏李的套路,我用了很多,谢谢李!我对sumattributes有问题。虽然是lsp,但表格通常会在一段时间后显示#####。实际上,我不知道原因是什么,因为属性定义不会更改,只有属性的内容可能会更新,因为这些是链接到对象多段线区域的字段。
页:
[1]