统计圆数量并列表
想得到的效果:1 框选图形,能统计所有圆的数量并列表。
2 圆的右下角以字母标记。
相同半径的圆分别以 A1,A2,A3,命名。以此类推。
不同半径的以B1,C1,,,,,表示。
3.要能过滤圆弧,长圆形。
我自己的源码目前只能统计数量,还达不到上述效果。请教高手该如何解决!
http://v1.freep.cn/3tb_1411122315053su1512293.jpg
(defun c:tjj()
(setvar "cmdecho" 0)
(setvar "osmode" 1)
(command "osnapcoord" 2)
(command "ucs" "w")
(command "layer" "s" "txt" "")
(setq p4 (getpoint "\n 请输入图框左下角:"))
(setq p5 (getpoint "\n 请输入图框右上角:"))
(setq p1 (getpoint "\n 请输入要统计的左下角:"))
(setq x1 (car p1) y1 (cadr p1))
(setq p0 (getpoint "\n 请输入要统计的右上角:"))
(setq p3 (getpoint "\n 请输入统计文字位置:"))
(setq x4 (car p4) x5 (car p5))
(setq w (- x5 x4))
(setq h (* (/ w 280) 2))
(setq p8 (getpoint "\n 请输入座标放置位置:"))
(setq p9 (polar p8 0 (* 4 h)))
(setq p10 (polar p8 0 (* 14 h)))
(setq p11 (polar p8 0 (* 22 h)))
(setq p12 (polar p8 (* 1.5 pi) h))
(setq p13 (polar p11 (* 1.5 pi) h))
(command "line" p12 p13 "" "")
(setvar "osmode" 0)
(command "text" "ml" p9 h 0 "X")
(command "text" "ml" p10 h 0 "Y")
(setq txt "ABCDEFGHIJKLMNOPQ")
(setq ss (ssget "w" p1 p0 '((-4 . "<or") (0 . "arc") (0 . "circle") (-4 . "or>"))))
(setq i 1)
(setq pt p3)
(while ss
(setq en (ssname ss 0))
(setq end (entget en))
(setq rad (+ (cdr (assoc 40 end)) 0.000))
(setq pci (cdr (assoc 0 end)))
(setq d (rtos (* 2 rad)))
(setq ssa (ssget "w" p1 p0 (list (cons 40 rad) (cons 0 pci))))
(setq nn (sslength ssa))
(setq stxt (substr txt i 1))
(setq m 0)
(setq x 0)
(repeat nn
(setq een (ssname ssa m))
(setq eend (entget een))
(setq cen (cdr (assoc 10 eend)))
(setq xxx (- (+ 0.000 (car cen)) x1))
(setq yyy (- (+ 0.000 (cadr cen)) y1))
(setq xxxt (rtos xxx))
(setq yyyt (rtos yyy))
(setq ssb (ssget "x" (list (cons 10 cen))))
(setq nnn (sslength ssb))
(if (= nnn 2)
(progn
(setq f (ssname ssb 0))
(setq g (ssname ssb 1))
(setq fn (entget f))
(setq gn (entget g))
(setq radf (+ (cdr (assoc 40 fn)) 0.000))
(setq radg (+ (cdr (assoc 40 gn)) 0.000))
(setq radma (max radf radg))
(setq radmi (min radf radg))
(setq p2 (polar cen (* 1.75 pi) (+ 4 radma)))
(if (= rad radf) (setq ss (ssdel g ss)) (setq ss (ssdel f ss)))
(if (= rad radf) (setq hn fn) (setq hn gn))
(setq ty (cdr (assoc 0 hn)))
(setq dma (rtos (* 2 radma)))
(setq dmi (rtos (* 2 radmi)))
(if (= ty "CIRCLE") (setq sssstxt (strcat " %%c" dma "<CB>")) (setq sssstxt (strcat " M" dma)))
(setq ssstxt (strcat "-%%C" dmi "<THR>" sssstxt))
)
(setq p2 (polar cen (* 1.75 pi) (+ 3 rad))
ssstxt (strcat "-%%C" (rtos (* 2 rad) 2 3) "<THR>"))
)
(setq x (+ 1 x))
(setq xt (itoa x))
(setq xtxt (strcat stxt xt))
(setq xxxxt (strcat xtxt ":"))
(command "text" "ml" p2 h 0 xtxt)
(setq p8 (polar p8 (* 1.5 pi) (* 2 h)))
(setq p9 (polar p9 (* 1.5 pi) (* 2 h)))
(setq p10 (polar p10 (* 1.5 pi) (* 2 h)))
(setq p11 (polar p11 (* 1.5 pi) (* 2 h)))
(command "line" (polar p8 (* 1.5 pi) h) (polar p11 (* 1.5 pi) h) "" "")
(command "text" "ml" p8 h 0 xxxxt)
(command "text" "ml" p9 h 0 xxxt)
(command "text" "ml" p10 h 0 yyyt)
(setq ss (ssdel een ss))
(setq m (+ 1 m))
)
(setq sstxt (strcat stxt " : " (itoa nn) ssstxt))
(command "text" "ml" pt h 0 sstxt)
(setq i (+ i 1))
(setq pt (polar pt (* 1.5 pi) (* 1.5 h)))
)
(setvar "osmode" 7)
(prinl)
)
lengxiaxi 发表于 2014-11-14 13:56 static/image/common/back.gif
亲,我试用了你的程序,有表格出来,但是没有任何字符列出来啊!!!!亲看看怎么回事?测试环境 autoCAD ...
(defun maketext (locationpoint textheight text rowtype)
;(makestyle "工程图" "hztxt_e.shx" "hztxt.shx" 0.8)
(entmake (list '(0 . "TEXT")
'(100 . "AcDbText") (cons 40 textheight)
(cons 1 text)
(cons 72 rowtype)
'(10 0.0 0.0 0.0)
(cons 11 locationpoint)
'(73 . 2) ;'(7 . "工程图")
)
)
)
按照上面的注释掉,再试试看 SunSpring 发表于 2014-11-13 18:52
很早之前写的,有需要的下载看看吧。可自动识别沉头孔和螺纹孔。选择的左下角点为原点。
** 形 53 未定义
** 形 55 未定义
** 形 53 未定义
** 形 53 未定义
** 形 55 未定义
** 形 53 未定义
** 形 53 未定义
** 形 55 未定义
** 形 53 未定义
** 形 74 未定义
** 形 49 未定义
** 形 49 未定义
** 形 74 未定义
** 形 49 未定义
** 形 49 未定义
** 形 58 未定义
** 形 49 未定义
** 形 48 未定义
** 形 53 未定义
** 形 55 未定义
** 形 53 未定义
** 形 74 未定义
** 形 49 未定义
** 形 50 未定义
** 形 74 未定义
** 形 49 未定义
** 形 50 未定义
** 形 74 未定义
** 形 49 未定义
** 形 50 未定义
** 形 74 未定义
** 形 49 未定义
** 形 50 未定义
** 形 58 未定义
** 形 74 未定义
** 形 49 未定义
** 形 50 未定义
** 形 58 未定义
** 形 74 未定义
** 形 49 未定义
** 形 50 未定义
** 形 58 未定义
** 形 49 未定义
** 形 49 未定义
** 形 57 未定义
** 形 48 未定义
** 形 49 未定义
** 形 49 未定义
** 形 57 未定义
** 形 48 未定义
** 形 49 未定义
** 形 49 未定义
** 形 57 未定义
** 形 48 未定义
** 形 56 未定义
** 形 50 未定义
** 形 53 未定义
** 形 56 未定义
** 形 50 未定义
** 形 53 未定义
** 形 56 未定义
** 形 50 未定义
** 形 53 未定义
** 形 74 未定义
** 形 49 未定义
** 形 50 未定义
** 形 74 未定义
** 形 49 未定义
** 形 50 未定义
** 形 58 未定义
** 形 49 未定义
** 形 49 未定义
** 形 57 未定义
** 形 48 未定义
** 形 56 未定义
** 形 50 未定义
** 形 53 未定义
** 形 74 未定义
** 形 49 未定义
** 形 51 未定义
** 形 74 未定义
** 形 49 未定义
** 形 51 未定义
** 形 74 未定义
** 形 49 未定义
** 形 51 未定义
** 形 74 未定义
** 形 49 未定义
** 形 51 未定义
** 形 58 未定义
** 形 74 未定义
** 形 49 未定义
** 形 51 未定义
** 形 58 未定义
** 形 74 未定义
** 形 49 未定义
** 形 51 未定义
** 形 58 未定义
** 形 49 未定义
** 形 48 未定义
** 形 49 未定义
** 形 48 未定义
** 形 49 未定义
** 形 48 未定义
** 形 56 未定义
** 形 50 未定义
** 形 53 未定义
** 形 56 未定义
** 形 50 未定义
** 形 53 未定义
** 形 56 未定义
** 形 50 未定义
** 形 53 未定义
** 形 74 未定义
** 形 49 未定义
** 形 51 未定义
** 形 74 未定义
** 形 49 未定义
** 形 51 未定义
** 形 58 未定义
** 形 49 未定义
** 形 48 未定义
** 形 56 未定义
** 形 50 未定义
** 形 53 未定义
** 形 74 未定义
** 形 49 未定义
** 形 52 未定义
** 形 74 未定义
** 形 49 未定义
** 形 52 未定义
** 形 74 未定义
** 形 49 未定义
** 形 52 未定义
** 形 74 未定义
** 形 49 未定义
** 形 52 未定义
** 形 58 未定义
** 形 74 未定义
** 形 49 未定义
** 形 52 未定义
** 形 58 未定义
** 形 74 未定义
** 形 49 未定义
** 形 52 未定义
** 形 58 未定义
** 形 49 未定义
** 形 49 未定义
** 形 48 未定义
** 形 48 未定义
** 形 49 未定义
** 形 49 未定义
** 形 48 未定义
** 形 48 未定义
** 形 49 未定义
** 形 49 未定义
** 形 48 未定义
** 形 48 未定义
** 形 56 未定义
** 形 57 未定义
** 形 48 未定义
** 形 56 未定义
** 形 57 未定义
** 形 48 未定义
** 形 56 未定义
** 形 57 未定义
** 形 48 未定义
** 形 74 未定义
** 形 49 未定义
** 形 52 未定义
** 形 74 未定义
** 形 49 未定义
** 形 52 未定义
** 形 58 未定义
** 形 49 未定义
** 形 49 未定义
** 形 48 未定义
** 形 48 未定义
** 形 56 未定义
** 形 57 未定义
** 形 48 未定义
** 形 74 未定义
** 形 49 未定义
** 形 53 未定义
** 形 74 未定义
** 形 49 未定义
** 形 53 未定义
** 形 74 未定义
** 形 49 未定义
** 形 53 未定义
** 形 74 未定义
** 形 49 未定义
** 形 53 未定义
** 形 58 未定义
** 形 74 未定义
** 形 49 未定义
** 形 53 未定义
** 形 58 未定义
** 形 74 未定义
** 形 49 未定义
** 形 53 未定义
** 形 58 未定义
** 形 56 未定义
** 形 53 未定义
** 形 48 未定义
** 形 56 未定义
** 形 53 未定义
** 形 48 未定义
** 形 56 未定义
** 形 53 未定义
** 形 48 未定义
** 形 56 未定义
** 形 57 未定义
** 形 48 未定义
** 形 56 未定义
** 形 57 未定义
** 形 48 未定义
** 形 56 未定义
** 形 57 未定义
** 形 48 未定义
** 形 74 未定义
** 形 49 未定义
** 形 53 未定义
** 形 74 未定义
** 形 49 未定义
** 形 53 未定义
** 形 58 未定义
** 形 56 未定义
** 形 53 未定义
** 形 48 未定义
** 形 56 未定义
** 形 57 未定义
** 形 48 未定义
** 形 74 未定义
** 形 49 未定义
** 形 54 未定义
** 形 74 未定义
** 形 49 未定义
** 形 54 未定义
** 形 74 未定义
** 形 49 未定义
** 形 54 未定义
** 形 74 未定义
** 形 49 未定义
** 形 54 未定义
** 形 58 未定义
** 形 74 未定义
** 形 49 未定义
** 形 54 未定义
** 形 58 未定义
** 形 74 未定义
** 形 49 未定义
** 形 54 未定义
** 形 58 未定义
** 形 54 未定义
** 形 48 未定义
** 形 48 未定义
** 形 54 未定义
** 形 48 未定义
** 形 48 未定义
** 形 54 未定义
** 形 48 未定义 试了一下效果不错就是太贵了要2个明经币 http://v1.freep.cn/3tb_1411122315053su1512293.jpg http://v1.freep.cn/3tb_1411122315053su1512293.jpg 支持下你 本帖最后由 SunSpring 于 2014-11-15 17:52 编辑
很早之前写的,有需要的下载看看吧。可自动识别沉头孔和螺纹孔。选择的左下角点为原点。
虽然收币,但也应该,毕竟源码。我的币只有五个,还是买了!试试看!谢谢! SunSpring 发表于 2014-11-13 18:52
很早之前写的,有需要的下载看看吧。
亲,我试用了你的程序,有表格出来,但是没有任何字符列出来啊!!!!亲看看怎么回事?测试环境 autoCAD2004,有VB,c++。 SunSpring 发表于 2014-11-13 18:52
很早之前写的,有需要的下载看看吧。
亲,我试用了你的程序,有表格出来,但是没有任何字符列出来啊!!!!亲看看怎么回事?测试环境 autoCAD2004,有VB,c++。 SunSpring 发表于 2014-11-13 18:52 static/image/common/back.gif
很早之前写的,有需要的下载看看吧。
这个圆心坐标,不知道能不能统计圆大小和数量....谢谢