|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例
& X. c( U5 N) D5 P7 d
% v6 e6 f7 Q, ?* N: G c* N6 x7 c
: W3 Y) m, _1 @9 w! xOption Infer On
; `) Q% Y( U4 p' hImports Snap, Snap.Create
0 l, t/ b) t2 C8 z/ R; n$ m/ ~( `8 u+ q5 N& T" \
' This is a very simple example showing you how to use a Snap.UI.BlockForm9 }% ^4 c3 D2 {: M& q0 C& e$ E
' to create a dialog that enables the user to select multiple point locations at once.
% V& h$ n! s1 E' h6 g# K! R" b. v. q* f: E$ Y$ ?$ l
Public Class SnapBlockFormApplication2 : Inherits UI.BlockForm4 F* K4 u3 R% h
0 R9 c. y7 I" w5 D7 q ' Declarations of the blocks on the dialog. E& t' S6 g1 A, E
/ L" [/ X* d0 l Dim ptsBlock As UI.Block.SelectObject3 w& r* n# f( }2 q+ H5 f
7 g4 H- L9 C: L3 ] ' Constructor for a dialog object; U9 u. Y/ a- t/ R+ F K
Public Sub New()( s C4 ]5 k! w) b4 u/ L
# ?8 D6 l5 u4 N3 ~( K: f Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog
- c( m/ R7 h* M+ h" b Me.Cue = "Please select some locations" ' Text to be shown in cue line3 g4 q: M0 t0 q
! D2 q+ |$ J: S: j- }1 R' ?
ptsBlock = New UI.Block.SelectObject+ t+ j1 D% m+ x5 Z' l1 H6 m, J8 C
ptsBlock.AllowMultiple = True
( L; B1 X5 H% Y" n) Z( P4 ]* t ptsBlock.MaskTriples =
. l: Z2 h) n- H2 C1 `. D( d* c+ O3 X {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}
7 i7 W1 y8 p3 J3 k7 Y! B0 u7 B3 _ ptsBlock.LabelString = "Select locations"
" c. J4 r4 f! h7 O$ R7 F9 A ptsBlock.PointOverlay = True
5 a* {8 |) ^2 l6 k8 n# I4 u2 g9 o3 v& ] ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
$ F: H6 G. L. b% Q7 V ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
1 |5 g. `& W% }# }
' n$ \2 W# t C( m7 A# l ' Add the block to the BlockForm
; d. y* r, w! O7 n Me.AddBlocks(ptsBlock)% n" D; p/ V9 b" Z
1 g) b" F W. Z& ^
End Sub. m( g/ N& W$ x
% F- \/ {3 l# f8 c/ c X. P Public Shared Sub Main()
7 A" {8 i, ]2 Y2 H9 K2 ~& d
8 `0 ?+ A* m3 q4 h+ U: b ' Create and display a dialog
+ p6 z/ A2 ^: B+ {, z4 p Dim myForm = New SnapBlockFormApplication2()7 ?) g( V8 V; q6 {$ F( j8 f7 M
myForm.Show()
) g' O! v! ]+ ` e; L8 `4 H. Y2 N' e T8 i& K9 u3 Q, F9 y
End Sub2 v& O1 s% |. u' \
! r9 ~4 v; l/ r2 T. \, g
Public Overrides Sub OnApply()
8 | b; f& m, a; p2 Y5 [6 x+ j
InfoWindow.WriteLine("You selected these locations:"): K/ f: j9 c* w, L, {2 X
" f' c7 w7 |1 \ For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects
/ O# i- X; U6 S8 n$ ^! e8 a( J6 B InfoWindow.WriteLine(anObj.Position)
. f' i3 X3 L5 H7 V( p. ` Next
* T% F+ O$ f& G4 ~, z! w$ K0 Y0 p( v1 Y+ g
End Sub/ F& A0 D: y( H, k* |: }: {
' B; E- i; q* r2 A Public Overrides Sub OnUpdate(changedBlock As UI.Block.General): l" B3 ^5 ?9 I. u
1 b$ X L1 w) J8 t1 K* o7 `9 |. a ' This is going to be annoying so don't really do it!5 Q3 N5 Y: V: [* u0 q+ {; n N
If changedBlock = ptsBlock Then. m7 Q7 f" k A8 V$ i
If ptsBlock.SelectedObjects.Length = 1 Then; U: z+ B: ?' U# ?
InfoWindow.WriteLine("You picked a Location")0 {" \ Z* |1 d8 s0 ]; t
Else! ]: W# }. ^3 r8 c7 l5 `
InfoWindow.WriteLine("You picked another Location"), h0 B+ }6 ?5 ^2 t$ T: X% N
End If+ I. T; |/ A, q# ~
End If
& C$ q* J1 e1 f5 X6 R
& Z, S. y; i) k- I: X End Sub
8 D9 x7 V! S8 j* o2 v! I+ u* F1 v7 m l% W
Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer
( m' @& L' X6 j0 |; U Return Snap.UnloadOption.Immediately; I$ H8 g6 D' f6 Q/ B5 c( v4 X
End Function
9 L) I- Z: R: b5 c3 A: R
0 u: P/ G$ e0 b/ d& LEnd Class
Y% Q c. o: l |
|