修改源码 请求 块统计
本帖最后由 xman00 于 2012-10-22 21:54 编辑在版内找到一个关于块统计的,但还有别外的需求,请看官们修改一下源码,要求统计的块为当前层(其它层的就不统计了)
。。
本帖最后由 xman00 于 2014-3-20 21:30 编辑。00000000000000000 太nengqing了吧。观望的多,解答的无。 本帖最后由 cheng5276 于 2012-10-19 21:59 编辑
懒得看你的附件,下面这一句即可实现,有其他需求,稍改改就行
(sslength (ssget "a" (list '(0 . "insert") (assoc 2 (setq ent (entget (car(entsel))))) (assoc 8 ent))))
不知道怎么加,叹一个 看不到 如何统计用PE合并的图形啊???QQ584985732
(defun c:lsp_50()
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq pt1 (getpoint "\n左上角: "))
(setq ww (getdist pt1 "\n宽度 <50>: "))
(if (null ww) (setq ww 40.0))
(setq hh (getdist pt1 "\n每格高度 <8>: "))
(if (null hh) (setq hh 8.0))
(setq pt2 (polar pt1 0 ww))
(setq pt3 (polar pt2 (* pi 1.5) hh))
(setq pt4 (polar pt1 (* pi 1.5) hh))
(command "pline" pt1 pt2 pt3 pt4 "c")
(setq pt5 (polar pt1 0 (/ ww 2)))
(setq pt6 (polar pt5 (* pi 1.5) hh))
(command "line" pt5 pt6 "")
(command "text" "m" (inters pt1 pt6 pt4 pt5) (/ hh 2) 0 "块名称")
(command "text" "m" (inters pt5 pt3 pt2 pt6) (/ hh 2) 0 "数量")
(setq blk (tblnext "block" t))
(while blk
(setq blkn (assoc 2 blk))
(setq blk_key (substr (cdr blkn) 1 1))
(if (/= blk_key "*")
(progn
(setq ss (ssget "X" (list blkn)))
(if (null ss)
(setq ssn 0)
(setq ssn (sslength ss))
)
(setq blknn (cdr blkn))
(setq pt1 pt4 pt5 pt6 pt2 pt3)
(setq pt4 (polar pt1 (* pi 1.5) hh))
(setq pt6 (polar pt5 (* pi 1.5) hh))
(setq pt3 (polar pt2 (* pi 1.5) hh))
(command "pline" pt2 pt3 pt4 pt1 "")
(command "line" pt5 pt6 "")
(command "text" "m" (inters pt1 pt6 pt4 pt5) (/ hh 2) 0 blknn)
(command "text" "m" (inters pt5 pt3 pt2 pt6) (/ hh 2) 0 (itoa ssn))
)
)
(setq blk (tblnext "block"))
)
(setvar "osmode" os)
(prin1)
) 修改修改
页:
[1]