|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例# r, s" `& `8 m7 A; O5 T
S9 @! S- Y/ O% u
/ A* c8 ?5 o. F1 @6 f5 o: k/ I/ |Option Infer On
% T! S) a5 v2 c9 y% f; _; yImports Snap, Snap.Create6 s: @/ j1 ~ k
( o- l6 I% ]1 Z3 m3 }, W
' This is a very simple example showing you how to use a Snap.UI.BlockForm
1 `4 J3 g) a0 D' E& t8 x' to create a dialog that enables the user to select multiple point locations at once.
7 l4 {/ C4 ]6 O4 o. ]' N
- j% J9 `7 w" M: ^* J. K# XPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm
8 G( R9 u6 x$ S1 J* \8 K. P! r h3 D( ~# e9 f" q+ J" k
' Declarations of the blocks on the dialog& H& V2 m7 J- W
% B7 n: H" H. L2 E7 t% U
Dim ptsBlock As UI.Block.SelectObject2 b( ^/ O1 j0 N5 F
: O0 {6 ?- _7 ~. W t) @, W
' Constructor for a dialog object
9 o$ @- o8 I7 Q2 c7 u' d Public Sub New()
/ I2 C4 O( Y1 Q5 U) h3 l0 ^7 s! R. G R9 I3 R
Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog
+ y) ~$ `3 r4 c, A Me.Cue = "Please select some locations" ' Text to be shown in cue line
3 C, U; @7 u9 z5 r4 Y/ L
/ i* J( u; a% S% e b ptsBlock = New UI.Block.SelectObject
8 B5 \7 Y+ F8 l: i5 ^+ F2 S ptsBlock.AllowMultiple = True8 C% d/ A& t. W( a" d1 S
ptsBlock.MaskTriples =; X6 b3 |8 ]8 E
{New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}
+ ~: ^ c4 e$ g. l1 _% G* j0 Q ptsBlock.LabelString = "Select locations"
& e I$ w, C7 o/ m0 { ptsBlock.PointOverlay = True' ?; O& G ^$ P2 t Z5 |
ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
7 |5 j5 ^% {9 O! N a4 y: o' i ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly- D( [( s9 d9 c( l# s; O" p
2 l) ?0 G) ?5 @" R( S
' Add the block to the BlockForm% O4 o; f l2 C7 G2 n1 q$ Z
Me.AddBlocks(ptsBlock)" |% W* ?: ?" n+ [# I- k8 |
7 x( \1 C$ o) h
End Sub
0 Z" ?: W: [3 y' t5 v8 k. @% D/ j8 @, o1 d* @8 C7 X
Public Shared Sub Main()
, v& z* p: C3 a" V% X* H1 J
* j6 Y O( e/ ?- p3 d$ O ' Create and display a dialog9 k* L9 G4 E1 a& _; ?
Dim myForm = New SnapBlockFormApplication2()7 p5 O* P2 a! E% _( O! c" e
myForm.Show()
, b2 ~& S$ K1 D: Y: w2 |8 f
8 c- h# n: F ^4 M9 p; o% k; ^ End Sub) e4 H: j" w0 e; W( c& p
9 w5 w" }5 |" r6 a
Public Overrides Sub OnApply()! k3 O* Z r/ l! b) A2 k T
$ i- Q: ]0 Z6 b2 M2 x InfoWindow.WriteLine("You selected these locations:")
9 q! [7 u% _$ m0 b* G/ L+ _* b( k: E! _, D
For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects
2 P7 `" t7 o m6 Q6 e InfoWindow.WriteLine(anObj.Position)
% m( {) [# s9 \$ ] Next
/ _5 y# A) e5 e+ `4 R% X# T& O+ ^) t$ }. p" w, ^, T
End Sub
# e( m6 h5 t& V: R3 ?0 g; V: }& q: h! X& V
Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)
: j5 m+ J; [7 |
3 y% A' S" a3 ], _; W ' This is going to be annoying so don't really do it!
! \ }! g/ l# J1 T: I If changedBlock = ptsBlock Then
3 q$ t8 l( c( r2 ~- ` If ptsBlock.SelectedObjects.Length = 1 Then
8 M) W' h' v2 I0 O& h7 q: [ InfoWindow.WriteLine("You picked a Location")
. J. B* r Q. i P0 N Else
5 W$ f3 h; r. U/ ? InfoWindow.WriteLine("You picked another Location")4 R) g0 F3 u/ x2 Y' U, R
End If
% m3 I; v" v; w1 a7 o% n End If8 K$ v+ S8 I n1 g5 ~# S; H7 b' r& U
. j4 J- x% N, _9 M2 a0 k5 x8 m6 {5 {( w End Sub
% S; q4 ]/ w% @7 X' [, y) f2 N6 S1 t/ ]: H
Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer& }/ Y9 ~/ n0 r# Q+ U
Return Snap.UnloadOption.Immediately
" C" M% D/ {. A0 [5 b End Function0 g9 C+ r0 o' w1 a
. F* D1 K8 }. \4 O( d$ |
End Class
( N p3 R7 _. N3 m |
|