|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例. p- x% j4 n$ @ Z9 o3 V2 M; l
) g' t4 x% M2 j) v2 Z
& w( R3 N/ v: N+ \1 g4 O& sOption Infer On
8 ? R( x% ^. s6 M! eImports Snap, Snap.Create+ L6 O; {- u; w! ^
5 `: P8 S! g8 P# L" ^
' This is a very simple example showing you how to use a Snap.UI.BlockForm
* i2 ?" X4 \0 f- j- H' to create a dialog that enables the user to select multiple point locations at once.; Q# q1 i/ M# x/ z \
* [+ o; @, }4 [Public Class SnapBlockFormApplication2 : Inherits UI.BlockForm
* ?, j) H( B; [1 j- w% h( O
) l" Y: U% `" m3 V) n# H; ? ' Declarations of the blocks on the dialog, n6 [7 y; g. C d8 P5 G
: S1 O4 F- c. R& z( I
Dim ptsBlock As UI.Block.SelectObject, k5 \3 e% l5 j5 G( @5 k" W& @ T [
+ q* t$ c- {1 v: l7 a5 @
' Constructor for a dialog object" ]6 i. Z4 ~/ v5 a( L6 o
Public Sub New()' w/ R2 N! T1 s! ]6 D7 Q
. C" G1 s8 G' ~6 W3 m
Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog
- p. `# N7 f9 r Me.Cue = "Please select some locations" ' Text to be shown in cue line! U1 P j& e3 E2 o
; e& m T2 G1 _& m! P7 A+ A ptsBlock = New UI.Block.SelectObject6 K# I; n; K: T5 p- \ D7 Y* e
ptsBlock.AllowMultiple = True
( D6 H! q$ G4 Y6 n2 B ptsBlock.MaskTriples =" B# p! I* d T" U6 D: g
{New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}
9 i9 c6 y/ N$ [* z' J2 ?4 K ptsBlock.LabelString = "Select locations"7 i* t$ K* d# k
ptsBlock.PointOverlay = True0 F7 c0 [7 M3 T4 d+ m
ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected); Q- Y( X& d- C5 y0 j
ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly" |" b' k( T+ X5 l) v
2 u$ A5 X1 T. z. U
' Add the block to the BlockForm
: R# d6 T9 L$ v$ z6 O& P9 k Me.AddBlocks(ptsBlock)1 r( N% o2 o5 C' X+ o1 J+ ]2 m
2 b3 i& @4 T1 n' G) r7 a8 w
End Sub- s$ @; t4 W( `0 Y
* R( x& }0 Y, @7 [6 I& ~
Public Shared Sub Main()
) }- r; }$ ^+ u6 p' m% q8 E" d4 Y5 y8 S4 g/ e# t) p+ e4 O
' Create and display a dialog
p) t# Z2 E6 ?$ V Dim myForm = New SnapBlockFormApplication2()2 D9 L1 F. c* C: @2 ^) F$ o
myForm.Show()
. U& h* X Q* g$ |6 U7 d% @* k$ @2 _* y" n1 i5 Q) g, r
End Sub
9 L: S- u; a4 K: O) |% }
, e* r" G- W) q$ l6 _& @ Public Overrides Sub OnApply()
3 i) e8 s: \2 X& B8 T; m* u% q5 C5 f* Z+ d
InfoWindow.WriteLine("You selected these locations:")
8 t% ~# b& q) t4 K3 `" Q2 e+ n3 Z. ^
3 Z1 [* V3 U! z m$ e6 T For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects# [+ X+ Q- C5 R$ O" C
InfoWindow.WriteLine(anObj.Position)( m9 R% Z4 o8 n8 c4 y2 [5 a2 Y
Next+ U* y, v" z! i% i. ]
0 y; E" ?: i5 c/ N" K+ z- n7 ` End Sub; R* \8 e2 J) E( A! d
. I8 {& j3 t- w7 n y% f8 N2 i) M Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)
+ o" [5 S: f* |1 p$ l0 _+ V. g% b3 u* O
' This is going to be annoying so don't really do it!
: O6 s% p1 ^0 V& T( v, w& s$ U# N If changedBlock = ptsBlock Then. K5 ^3 V% l3 d5 i% [- |+ C
If ptsBlock.SelectedObjects.Length = 1 Then3 _# W, D" h$ ?' t
InfoWindow.WriteLine("You picked a Location")7 ?/ U, A0 Y& m& u7 u: g% c$ F- @+ N
Else- {) z! d2 s9 d: U
InfoWindow.WriteLine("You picked another Location")' w# B! v/ R# A, f2 d
End If
* o M, e4 i$ O3 g! _* H8 C End If
' O- F8 @# E+ s0 X. |7 z9 {0 D3 W
5 u0 I. C. g5 R8 j- U# f End Sub( r Q3 x" \9 i3 h, r
0 g$ n! W! |) ]2 [6 u( \3 K& u
Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer3 m) d# A: Z6 g* p/ o% F
Return Snap.UnloadOption.Immediately
0 K( ]4 i" K3 N End Function/ x- g/ U; ?+ _8 C
, n$ x, C3 }4 [
End Class; W. ~- s9 c7 E% J4 g
|
|