马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 LoveArx 于 2016-12-11 23:28 编辑
[sell](defun c:xdtb_plinechk (/ #area #closeAreal #minareal #ncloseAreal ents fz i
key lst1 lst2 n ss x
)
(defun _prompt ()
(xdrx_prompt "\n当前设置: 绘制宽度(" #tongji_close_pline_wid
" ) 面积阈值(" #tongji_close_pline_minarea ")"
)
)
(defun _keyword (key)
(cond
((= key "BE")
(if (setq fz (getreal (xdrx_prompt "\n绘制宽度<"
#tongji_close_pline_wid ">:" t
)
)
)
(setq #tongji_close_pline_wid fz)
)
)
((= key "FZ")
(if (setq fz (getreal (xdrx_prompt "\n最小面积阈值<"
#tongji_close_pline_minarea ">:"
t
)
)
)
(setq #tongji_close_pline_minarea fz)
)
)
)
(_prompt)
)
(defun _caiji1 (ents)
(setq i 0)
(xdrx_statusbar_begin "采集中" (length ents))
(mapcar
'(lambda (x)
(xdrx_statusbar_setpos (setq i (1+ i)))
(xdrx_getpropertyvalue x "area")
(cond
((< #area #tongji_close_pline_minarea)
(setq #minareal (cons (list #area x) #minareal))
(xdrx_setpropertyvalue x "color" 6 "constantwidth"
#tongji_close_pline_wid
)
)
((xdrx_getpropertyvalue x "isclosed")
(setq #closeAreal (cons (list #area x) #closeareal))
(xdrx_setpropertyvalue x "color" 1 "constantwidth"
#tongji_close_pline_wid
)
)
(t
(setq #ncloseAreal (cons (list #area x) #ncloseareal))
(xdrx_setpropertyvalue x "color" 2 "constantwidth"
#tongji_close_pline_wid
)
)
)
)
ents
)
(xdrx_statusbar_end)
(list #closeAreal #ncloseAreal #minareal)
)
(xdrx_begin)
(if (not #tongji_close_pline_wid)
(setq #tongji_close_pline_wid 1.0)
)
(if (not #tongji_close_pline_minarea)
(setq #tongji_close_pline_minarea 10.0)
)
(_prompt)
(xdrx_initssget "\n选取要统计的多段线[绘制宽度(BE)/面积阈值(FZ)]<退出>:"
"BE FZ" "" "_keyword"
)
(if (setq ss (xdrx_ssget '((0 . "*POLYLINE"))))
(progn
(setq ents (xdrx_pickset->ents ss)
lst1 (_caiji1 ents)
lst2 (mapcar
'length
lst1
)
)
(xdrx_prompt "\n采集到多段线共" (length ents) ".其中:")
(if (setq n (car lst2))
(xdrx_prompt "\n 封闭多段线" n ". 红色")
)
(if (setq n (cadr lst2))
(xdrx_prompt "\n 未封闭多段线" n ". 黄色")
)
(if (setq n (caddr lst2))
(xdrx_prompt "\n 面积低于阈值多段线" n ". 品红色")
)
)
) (xdrx_end)
(princ)
)
[/sell]
|