|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例9 ]3 }. a* C/ ?& M1 F! G; p* t
}# N/ Z3 ~! \9 d8 |/ O4 q, c# U& B! K
Option Infer On& U1 Y9 |7 o$ V- ^
Imports Snap, Snap.Create
! C, w# |$ }7 l8 \* k! a( m4 t4 ~$ V' u. O1 d7 _
' This is a very simple example showing you how to use a Snap.UI.BlockForm
, g, i/ }5 X$ N) |' to create a dialog that enables the user to select multiple point locations at once.8 t. J7 x1 }$ @
- b" b- L: ]) D2 V# j' L1 E1 C
Public Class SnapBlockFormApplication2 : Inherits UI.BlockForm
4 t$ E h9 b. g! e* F! ?$ f7 t
/ v5 K% p$ x1 k0 v6 T$ C3 d" Y" x ' Declarations of the blocks on the dialog
, @- a5 f. v4 r1 N* g8 F' z" q, a* F% F8 P$ s
Dim ptsBlock As UI.Block.SelectObject5 X9 X# t3 e- h0 M$ _
$ D& _9 r& @+ }2 P5 L
' Constructor for a dialog object+ H' P4 ~& i7 l3 F
Public Sub New()
) [) y# l& c" V2 x3 P7 m# w8 p$ \6 ^$ R; B: L9 m
Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog# X: [) T" l' b! z' s3 G! t v
Me.Cue = "Please select some locations" ' Text to be shown in cue line
# `* m- d a' W
9 z$ `( L/ Y5 \ ptsBlock = New UI.Block.SelectObject4 T8 D: K) F7 H7 P# l$ D) f
ptsBlock.AllowMultiple = True
4 o. ^/ Y5 p( a2 c, L ptsBlock.MaskTriples =2 a; h( z7 ]. W1 p t0 _1 M- x
{New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}. D) N; q; i7 Y' U& F) B: G2 A
ptsBlock.LabelString = "Select locations"
- D$ u& W$ `% |4 _' L2 Y2 U- a; v ptsBlock.PointOverlay = True/ j! i& \3 W$ P! O, |, o) v, n" Q
ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)9 e- ^" I7 @$ h) d6 L2 P
ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
8 d6 V( k" h( y1 x3 R& E! T3 s! X' U* C5 Y
' Add the block to the BlockForm) X3 d, [8 ^4 j# o; R1 c+ v
Me.AddBlocks(ptsBlock)
' Y/ |- N: X7 D! X% S1 j4 B+ \5 o* g
End Sub
6 Z: ]( v2 }2 u" ]9 ^& X! @& n( u
5 H; _) t( n. b2 D9 o Public Shared Sub Main(): ~$ [* j; d( u U& q
: O2 L; j; ]. E. x: z+ A% T
' Create and display a dialog7 _5 I8 a5 J1 g. d
Dim myForm = New SnapBlockFormApplication2()' x0 _) Q N5 m/ x% P
myForm.Show()5 ?/ E4 R% D0 x
) S$ H$ l1 @' O' ]9 g4 M0 w, Q End Sub
( ?% ^% S, O/ z( B+ e" n* Q* ]9 x! a: C/ f, O5 K) s( K
Public Overrides Sub OnApply()
- O2 ~2 ^ E: z8 c# }/ r4 @: z. A M7 x0 E. {
InfoWindow.WriteLine("You selected these locations:")
8 u9 T8 f. s6 n- ]* V* X3 j+ P o8 u: y
For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects- g" I& O- p" a7 T
InfoWindow.WriteLine(anObj.Position); R8 u8 n8 T; M4 \ M1 A
Next
& S$ Z7 N7 @5 l# ~0 ?9 \# q; M3 ]2 ^ T/ _* ?
End Sub& l" b, T, u9 c5 R
( _& ~# [1 H+ J$ M3 X Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)/ C# X4 t+ b0 X3 [ c2 Z
( ]5 y' k; m) U0 F8 Y
' This is going to be annoying so don't really do it!; m7 ] h! e1 E" e2 A
If changedBlock = ptsBlock Then
6 X4 |# W- C6 q If ptsBlock.SelectedObjects.Length = 1 Then
/ W8 s7 k, }. z4 `, G' S InfoWindow.WriteLine("You picked a Location")1 v7 N# f' A# A
Else
; ~0 h& Y C3 G( l& i9 n4 T$ z j, k InfoWindow.WriteLine("You picked another Location")
! {. D6 f2 f% x" Y& ? End If) u$ M2 f4 {/ D8 ?: `# z3 }7 l# l H6 J* F
End If
0 |( l* y2 ~1 \
- m# l/ D* F2 F _9 R6 h End Sub
3 t" [. y1 o ? S8 ?
* p2 J& `7 c& `" Z" o Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer
- h6 O" \1 `3 f2 E Return Snap.UnloadOption.Immediately; Q$ J2 k/ I' Z- O0 T7 h
End Function
, a+ `: ^, k2 T0 O' H8 ?$ A, C( J& r' t( F3 J0 P
End Class
$ J( n5 W2 @0 k- w |
|