将程序中'((0 . "CIRCLE"))改成'((0 . "INSERT"))即可
大神点评“论坛有,找找看。”
只找着了统计相同矩形数量的lsp (http://bbs.mjtd.com/forum.php?mod=viewthread&tid=102361)
能否实现统计封闭多线段内各相同圆的数量呢?
万分感谢! 本帖最后由 fan_zh 于 2014-12-9 13:28 编辑
;;;统计相同矩形边长的数量.
;;;编写日期2013-07-05
;;;编写: CADMAN
;;;子函数 (求矩形边长)
;(defun qbc (pts / b h)
;(setq b (distance (car pts) (cadddr pts)))
;(setq h (distance (car pts) (cadr pts)))
;(cons (max b h) (min b h))
;);结束qbc
(defun c:tg ( / bclst pts ss el bc_new i p2 p3 m x1 x2)
(princ "\n请框选:")
(setq ss (ssget '((0 . "circle"))))
(setq i 0 bclst nil pts nil)
(repeat (sslength ss)
(setq el (entget (ssname ss i)))
(setq pts nil)
(foreach pt el (if (= (car pt) 40) (setq pts (cons (cdr pt) pts))))
(setq bclst (cons pts bclst))
(setq i (1+ i))
);repeat
(setq bc_new nil)
(while bclst
(setq m (car bclst) x1 (length bclst))
(setq bclst (vl-remove m bclst))
(setq x2 (length bclst))
(setq n (- x1 x2))
(setq bc_new (cons (list m n) bc_new))
)
(setq p2 (getpoint "\起始位置"))
(setq p3 (polar p2 0 3000))
(command "_.TEXT" "c" (polar p2 (* pi 0.5) 800) "300" "0" "半径");指定书写标题的位置
(command "_.TEXT" "c" (polar p3 (* pi 0.5) 800) "300" "0" "数量")
(foreach bg bc_new ;设定重复次数为新表的长度
(command "_.TEXT" "c" p2 "300" "0" (strcat (rtos (car (car bg)) 2)))
(command "_.TEXT" "c" p3 "300" "0" (cadr bg))
(setq p2 (polar p2 (* pi 1.5) 800))
(setq p3 (polar p2 0 3000))
)
(princ)
)
fan_zh 发表于 2014-11-28 13:32 static/image/common/back.gif
;;;统计相同矩形边长的数量.
;;;编写日期2013-07-05
;;;编写: CADMAN
美中不足就是,不是以表格样式进行统计 fan_zh 发表于 2014-11-28 13:32
请教下大神,框选范围怎么改成封闭多线段范围呢?
因为多数情况下圆种类、数量要统计的范围,都是用封闭多线段来划分的不规则图形,不好框选,
如果改成统计所选封闭多线段范围内各种圆的直径、数量并列表,就方便很多了。万分谢谢!谢谢!! 找个钣金类的圆统计标注找不到
页:
1
[2]