|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例
- l1 b6 ^4 N1 e+ Y3 J3 H% Y0 ?5 E% N' B- j0 L4 S( @& A
7 \/ ^& {8 X7 Y4 p! W+ `8 I. b* F5 bOption Infer On$ [6 S, A1 _: L# Y" s; }
Imports Snap, Snap.Create0 k6 G& _, l/ I$ e# F
! @, T4 p7 s7 i" a Y, j# ^9 W
' This is a very simple example showing you how to use a Snap.UI.BlockForm9 I, O& u; s" [/ {' O8 e5 y
' to create a dialog that enables the user to select multiple point locations at once.
" }" L2 x1 H" J) b% [, z: X
8 z% k( y) h' ^5 vPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm( A7 a5 F! R2 x
5 _! k, |$ d# n* A/ v6 ?1 i C
' Declarations of the blocks on the dialog+ j: d/ l* S8 ] ^ Q' R
8 |3 y( E a, u3 R+ ~9 k
Dim ptsBlock As UI.Block.SelectObject
/ f' s& g( u- G2 f* i1 D- `( k G* r* o/ F- Q
' Constructor for a dialog object
: k- C; R; U1 N, ^. g Public Sub New()
8 \; u m* T, w7 q$ @9 Z
; V# }2 k$ i2 G# b7 c1 N P6 C Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog: @0 G5 J- k$ H8 q6 f& r) d
Me.Cue = "Please select some locations" ' Text to be shown in cue line
# _( K, X( y' t/ Y1 M- c v$ [( J' o# p
ptsBlock = New UI.Block.SelectObject3 \- r j. B% x8 v8 l' b$ L
ptsBlock.AllowMultiple = True: W }; t$ H) q+ J
ptsBlock.MaskTriples =
$ T5 B# i# l" A$ Q/ n {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}6 k6 `* M2 A8 K5 a. E
ptsBlock.LabelString = "Select locations"3 y! n0 o: {+ g0 \
ptsBlock.PointOverlay = True
3 J# J4 {5 Y8 } ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
9 ?. p/ @! j+ g- i7 y5 T7 I, [ ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
, K4 }/ W$ P$ @/ n
5 e$ ~& t. k8 e, Z; u ' Add the block to the BlockForm! s* y, p9 e7 c6 Y* R" s6 M! i; k
Me.AddBlocks(ptsBlock)
7 o4 K |: i6 x. h6 V8 l! m( i) p: j# Y+ c8 F
End Sub
! r& \+ r7 k8 I$ d+ E: g% A8 T
j/ q4 H& N3 V2 C+ ` Public Shared Sub Main()3 Q# e' s, S) O1 T6 E4 l
% v! b; p5 C3 x. X7 N; @2 \8 w E
' Create and display a dialog1 L6 r) G& X& ^$ w* a/ i4 K4 A8 S
Dim myForm = New SnapBlockFormApplication2()9 G& |1 {7 x2 `, [- {, a+ o
myForm.Show(). m7 I& n* H( E$ j b. N
0 K: X& r5 X8 W$ X. K( R- }* }! f
End Sub. O- _! N) z( o6 y) ?4 ]6 K
/ A& ^5 ~5 Z c* p0 w
Public Overrides Sub OnApply()
! @- m; ^7 R1 ~9 F5 T6 D; Y" |* N* J, J1 Y$ q$ F7 A
InfoWindow.WriteLine("You selected these locations:")
5 s8 A* j( f ?$ K1 e8 u! ^
, \# B, @: E6 x. B" E8 c6 Y) K For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects& ~; ]3 D, [ L( V; `
InfoWindow.WriteLine(anObj.Position)
% c* o8 i. d# k: ]; w& A; J Next* q" {+ D) M/ g+ p- L6 s
5 J* U. }# v1 s, p End Sub
- p1 P: ^7 n0 C, f
$ ]& S6 s; B9 R7 j% [5 ~" j$ K Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)
6 I1 T0 _- g+ ^% r4 r. W
+ b7 z0 C3 w, O$ { [/ ]9 Y ' This is going to be annoying so don't really do it!$ [' Y( x6 ^0 R8 l5 U
If changedBlock = ptsBlock Then
- ]3 h3 E, D& ~9 w- N9 H If ptsBlock.SelectedObjects.Length = 1 Then
) v$ v% i/ _1 w/ S9 L$ p InfoWindow.WriteLine("You picked a Location") A# O: ?+ {7 j
Else
6 H( ^" r6 x8 ?& v0 U InfoWindow.WriteLine("You picked another Location")7 ?- u5 V) F1 x# n) f; U5 k/ D4 n3 K
End If
& o1 u. f7 [5 N$ Q; V1 T) @. D4 D End If. ~# I9 `. l( y" s% `1 a1 N" ~/ |
3 Y( n! O) v* \- f$ e3 R7 l! O
End Sub8 A! n7 H- @& Y% R! h5 C
, T1 R1 X! u F+ k+ z Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer
: R& w: e: M; ^' J. [% c$ G7 e Return Snap.UnloadOption.Immediately- ~8 x: _8 I% _" p3 h- o
End Function* e8 k; A9 F; w/ C# d; A- O1 d
5 q& L+ R8 j0 y Q
End Class& L/ z) {6 x) H' {& m
|
|