建设网站的机构,南湖区建设街道办事处网站,广告设计与制作标书,企业宣传片文案该楼层疑似违规已被系统折叠 隐藏此楼查看此楼这个可以统计各种块的数量(基于块名)#xff0c;但是不能生成表格。(prompt \n命令为: BC ,用法如下: )(prompt \n先选择要统计的块,然后选择要统计的区域,结束后按F2显示出统计数量.);;;***************…该楼层疑似违规已被系统折叠 隐藏此楼查看此楼这个可以统计各种块的数量(基于块名)但是不能生成表格。(prompt \n命令为: BC ,用法如下: )(prompt \n先选择要统计的块,然后选择要统计的区域,结束后按F2显示出统计数量.);;;*****************************;;;highflybird 2007-2-8 kunming;;;主程序-----------------------;;;*****************************(defun C:BC (/ ss1 ss2 NamLst BList str1 str2)(graphscr)(prompt \n请选择要统计的块:)(if (setq ss1 (ssget ((0 . INSERT))))(progn(prompt \n请选择要统计的区域:)(if (setq ss2 (ssget ((0 . INSERT))))(progn(setq NamLst (Name-list ss1))(setq BList (Name-count ss2 NamLst))(princ \n块名)(princ (setq str1 ...............................))(princ 数量)(princ \n--------------------------------------)(foreach n BList(princ \n)(princ (setq str2 (car n)))(princ (substr str1 (1 (strlen str2)) (strlen str1)))(princ ....)(princ (cdr n))))(princ \n所选区域没有要统计的块!)))(princ \n你没有选择要统计的块!))(princ));;;图块名列表函数(defun Name-list (ss1 / i l EName EList BName NList)(setq l (sslength ss1))(setq i 0 NList nil)(while ( i l)(setq EName (ssname ss1 i)) ;取得图元名(setq EList (entget EName)) ;取得图元表(setq BName (cdr (assoc 2 EList)));取得图块名(if (not (member BName NList)) ;如果表中没有图块名(setq NList (cons BName NList)) ;添加到表中)(setq i (1 i)) ;计数器加1)NList);;;计数函数(defun Name-count (ss2 NamLst / blist i l ename elist bname oldcount newcount)(setq Blist (mapcar (lambda (x) (cons x 0)) NamLst)) ;计数器归零(setq i 0 l (sslength ss2))(while ( i l) ;对选择区域循环(setq ename (ssname ss2 i)) ;取得图元名(setq elist (entget ename)) ;取得图元表(setq bname (cdr (assoc 2 elist))) ;取得图块名(if (member bname NamLst) ;如果是要统计的块(setq OldCount (assoc bname Blist) ;取得块数量NewCount (1 (cdr OldCount)) ;计数器加1Blist (subst (cons bname NewCount) OldCount Blist);替代原数量))(setq i (1 i)))BList)