xhbhh 发表于 2010-4-21 17:08:00

[求助]超级难的问题,统计非块图形,如两个交叉的圆组合这样的图形,谢谢

超级难的问题,统计非块图形,如两个交叉的圆组合这样的图形,谢谢

ZZXXQQ 发表于 2010-4-21 19:51:00

本帖最后由 作者 于 2010-4-22 8:39:30 编辑

换个角度想一想,试下看

;统计非块图形 明经 ZZXXQQ 2010.4.21
(defun c:tt ()
(setvar "CMDECHO" 0)
(command ".undo" "be")
(if (and (setq pt1 (getpoint "\n窗选第一点 :"))
(setq pt2 (getcorner pt1 "\n窗选第二点 :"))) (progn
(setq ss1 (ssget "W" pt1 pt2))
(command ".rectang" pt1 pt2)
(if (setq pt (getpoint "\n选择域内空白处一点 :")) (progn
   (command "BPOLY" pt "")
   (setq ss2 (ssget "W" pt1 pt2))
   (setq ss4 (ssget "W" pt1 pt2 '((0 . "INSERT"))))
   (command "select" ss2 "r" ss1 "")
   (setq ss3 (ssget "P"))
   (command ".undo" "e" "u")
   (setq num (- (sslength ss3) (if ss4 (sslength ss4) 0) 2))
   (alert (strcat "选中非块物体组:" (itoa num)))
))
))
(setvar "CMDECHO" 1)
(princ)
)

客人 发表于 2010-4-21 20:13:00

<p>&nbsp;错误: 参数类型错误: lselsetp nil</p><p></p><p>我的意思是如何统计非块的图形组成数量</p>

xhbhh 发表于 2010-4-21 20:13:00

<p>&nbsp;错误: 参数类型错误: lselsetp nil</p><p>&nbsp;</p><p>我的意思是如何统计非块的图形组成数量</p>

狂刀无痕 发表于 2010-4-21 22:02:00

<p>难的不是编程,难的是分类。要有明确无歧义的界定,才可以编程。</p><p>也就是说,你要把你的要求讲清楚,编程就不难了(cad能力以外的要求除外)</p>

xhbhh 发表于 2010-4-21 22:33:00

<p>图中都不是块,如何统计完整的圆有多少个,圆中有直线的圆有多少个</p>

ZZXXQQ 发表于 2010-4-22 08:40:00

2楼已改,再试试。
对楼上的问题可以这样:

(defun c:tt ()
(princ "\n选择物体 :")
(setq ss1 (ssget))
(setq ss2 (ssget "P" '((0 . "LINE"))))
(- (sslength ss1) (if ss2 (* (sslength ss2) 2) 0))
)

xhbhh 发表于 2010-4-22 10:31:00

<p>如果是统计这样的图形组合,有几个双环呢,我的意思是在图中如何统计由两个或两个以上的图形组合成的形状数量,谢谢版主!</p>

liminnet 发表于 2010-4-22 11:29:00

ZZXXQQ 发表于 2010-4-22 18:57:00

<p>回7楼,2楼程序可以做到。</p>
页: [1] 2
查看完整版本: [求助]超级难的问题,统计非块图形,如两个交叉的圆组合这样的图形,谢谢