|
|

楼主 |
发表于 2009-4-11 12:19:44
|
显示全部楼层
来自: 中国北京
多谢版主详尽的指导和提供的学习资料,受益颇多。
' d# Z- i! A; m) c这些天总是想在版主49楼的方法中再完善一下,可总不能实现,无奈再次请教:
3 Q, s' o/ a% J8 o- Y问题见下面程序中括号内的标注:1 G2 v7 R h2 v
------------------------------------------------------------------------------------------------------------------------
* A. h8 P0 t, r9 q" JACAD的VBA并没有提供“孤岛检测”的方法,不过可以照下面的调用图形界面的“边界”命令实现它。' p! p; @% N$ {" S/ h% E
Dim I As Integer, SS As AcadSelectionSet, FT(0) As Integer, FD(0) As Variant, P As Variant, LP As AcadLWPolyline" U9 I R, K8 K( W# h
With ThisDrawing
" M+ ]( v* S3 s On Error Resume Next
, z7 F; G$ z) J. t Set SS = .SelectionSets.Add("SS" )
1 F& N5 Z O' b FD(0) = "lwpolyline"7 d! Z+ R% G$ |
Do
7 j9 |! ^; A$ `3 h6 K7 d P = .Utility.GetPoint(, vbCrLf & "拾取内部点:")
( `; `; G3 b! L* [& s( c2 I If Err Then Exit Do
T' o3 O5 _0 }, N; |9 Y .SendCommand "-boundary " & P(0) & "," & P(1) & " "3 E8 p& d9 ?( T9 k- S, @
SS.Select acSelectionSetLast, , , FT, FD6 @. A. e r1 r+ R4 k9 ?
If SS.Count = I Then% g) |. f/ _1 `
.SendCommand "n "
8 w' d7 o) m# i! Z. \ Exit Do& Y/ D7 z/ P3 w2 x2 g' k$ ?
Else
4 E+ T7 T, j4 C0 q, L! u SS.Item(I).Highlight (True) '选择集的最后一个元素即新创建的多段线用高亮显示
6 _# l6 Q4 _. b& C+ A (请问在此处能实现将点击的图形,填充图案或填充底色的语句)
3 I+ R; w1 J) [+ { I = I + 1* B2 N8 r Z1 | r
End If0 l6 e& s) u4 c, e# u$ E9 Q
Loop! i% H1 S; C+ u. k) e0 a
4 A N" W( i; q/ r( x[ 本帖最后由 koutx 于 2009-4-11 14:10 编辑 ] |
|