按线型统计长度
本帖最后由 xx16451860 于 2012-9-3 13:04 编辑按线型统计长度 可以按颜色统计列表不 不知能否在Mac上使用? 按图层。我搞了一个。 这类程序论坛很多... chpmould 发表于 2012-9-2 16:13 static/image/common/back.gif
这类程序论坛很多...
这个真没发现有!要不你贴一个? 实属胡编乱造,别当真啊,有bug别找我,因为我确实没啥用,练习来的(DEFUN c:画图不规范才用 (/ SS EN
EIGENVALUE LAYER_LST LST
BYLAYER_LSTNOTBYLAYER_LST
)
(defun x_ssn (ss / n lst)
(repeat (setq N (sslength ss))
(setq LST (cons (ssname SS (setq N (1- N))) LST))
)
)
(defun x_length_add (lst / x)
(apply
'+
(mapcar '(lambda (x)
(vlax-curve-getDistAtParam x (vlax-curve-getEndParam x))
)
lst
)
)
)
(defun get_layer_list (/ lay_name layer_list name)
(setq layer_list nil)
(while (setq name (tblnext "layer"))
(setq lay_name (cons (cdr (assoc 2 name)) (cdr (assoc 6 name))))
(setq layer_list (cons lay_name layer_list))
)
(tblnext "layer" t)
layer_list
)
(setq ss (ssget (list '(0 . "*line,arc,circle,ellipse"))))
(setq en (car (entsel "\n选取特征线型图元:")))
(if (setq Eigenvalue (cdr (assoc 6 (entget en))))
Eigenvalue
(setq Eigenvalue
(cdr (assoc
6
(entget
(tblobjname "layer" (cdr (assoc 8 (entget en))))
)
)
)
)
)
(setq layer_lst (vl-remove nil
(mapcar '(lambda (x)
(if (= Eigenvalue (cdr x))
(car x)
)
)
(get_layer_list)
)
)
)
(setq lst (x_ssn ss))
(setq bylayer_lst
(apply
'append
(vl-remove
nil
(mapcar
'(lambda (x)
(vl-remove nil
(mapcar '(lambda (y)
(if (= y (cdr (assoc 8 (entget x))))
x
)
)
layer_lst
)
)
)
lst
)
)
)
)
(setq notbylayer_lst
(vl-remove nil
(mapcar '(lambda (x)
(if (= Eigenvalue (cdr (assoc 6 (entget x))))
x
)
)
lst
)
)
)
(princ
(strcat
"\n线型为"
Eigenvalue
"的图元长度合计"
(rtos (+ (x_length_add bylayer_lst) (x_length_add notbylayer_lst))
2
2
)
"mm"
)
)
(princ)
) xx16451860 发表于 2012-9-2 18:54 static/image/common/back.gif
这个真没发现有!要不你贴一个?
别介意,呵呵,玩笑 夏生生 发表于 2012-9-2 21:32 static/image/common/back.gif
别介意,呵呵,玩笑
哎呀,没弄好就不要发出来吗!还是我的好用! 楼主解释一下 框选线段 怎么选不上呢 真的是不錯用~ 过来支持一下。
页:
[1]
2