;;; ================================== ;;; |  统计图中所使用的钢筋种类 | ;;; | Update:2007-06-28 | ;;; | [涂墙之处] | ;;; | [同是土木人论坛] | ;;; | [它山之石图形工作室] | ;;; ================================== ;| 1、支持全选 2、支持交互选择 3、支持写出统计结果 4、支持不写出时在命令行显示 5、支持“TEXT”实体 6、支持所有图层 7、很无耻的不支持“MTEXT”、“BLOCK”、“XREF”等 8、支持所有CAD版本 9、准源码,欢迎转载,RP及口德不佳者无视 |; (defun c:GJZhL (/ dengji gangjin lst pt1 pt2 ss zhijing pt str) (setq dengji '("%%130" "%%131" "%%132" "%%133" "\U+0081" "\U+0082" "\U+0083" "\U+0084" "\U+0085" "#" "&" "$" ) zhijing '("4" "5" "6" "6.5" "7" "8" "9" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33" "34" "35" "36" "37" "38" "39" "40" "50" ) ) ; _ 结束setq (if (setq pt1 (getpoint "\n请点取选择范围的第一点:<全选>")) (setq pt2 (getcorner pt1 "\n第二点:<退出>")) ) ; _ 结束if (if (and pt1 (not pt2) ) (exit) (setq pt (getpoint "\n写入点:<退出>")) ) ; _ 结束if (foreach x dengji (foreach y zhijing (setq gangjin (strcat x y) ss (if (and pt1 pt2 ) (ssget "w" pt1 pt2 (list (cons 0 "TEXT") (cons 1 (strcat "*" gangjin "*" ) ) ) ) ; _ 结束ssget (ssget "x" (list (cons 0 "TEXT") (cons 1 (strcat "*" gangjin "*" ) ) ) ) ; _ 结束ssget ) ; _ 结束if ) ; _ 结束setq (if ss (progn (setq ss (sslength ss) str (if (member y '("6" "8")) (strcat gangjin " " (rtos ss 2 0)) (strcat gangjin " " (rtos ss 2 0)) ) ; _ 结束if ss (list (list gangjin ss)) lst (append ss lst ) pt (if pt (polar pt (* pi 0.5) (* 1.2 (getvar "textsize"))) ) ) ; _ 结束setq (if pt (command "_.text" pt "" "" str) (princ (strcat "\n" str)) ) ; _ 结束if ) ; _ 结束progn ) ; _ 结束if ) ; _ 结束foreach ) ; _ 结束foreach (princ (strcat "\n*** 统计图中钢筋种类软件***")) (princ (strcat "\n ")) (princ) ) ;;; _ 结束defun