|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例) Y8 i% X& M6 X2 e
' q; S/ w$ C; G( |+ a# ]
2 E" V3 e4 X+ E: @* f! r" MOption Infer On: ^! V G( L4 u/ ?( s, s
Imports Snap, Snap.Create, j9 \3 v& {% X8 Q
4 u/ M/ I" s+ \! V
' This is a very simple example showing you how to use a Snap.UI.BlockForm
! p' g; ^1 G Q4 }6 {4 n' to create a dialog that enables the user to select multiple point locations at once.
) S3 z9 N$ t2 H
$ c. s* U* w. B; |. H0 s% I) ~+ g6 k- PPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm1 j- |6 ?1 y2 H3 g: P7 N, v
, `( a3 v7 X6 p; q9 | ' Declarations of the blocks on the dialog
4 ]! S4 j- d' U" ~
1 S. V5 f2 c0 e0 b7 i Dim ptsBlock As UI.Block.SelectObject# Q! I3 X+ f0 l3 c D- t
7 l( ?. J# u; ?8 t S' ]9 S; x- A
' Constructor for a dialog object4 L1 K0 Z# ~; ]" v& Q* S8 y
Public Sub New()
* i# ]8 C6 |, S1 I# q( b8 w! c
1 [7 U8 c7 u# @9 B! W8 G9 x* `; [ Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog
7 z' `2 X8 x% k7 R Me.Cue = "Please select some locations" ' Text to be shown in cue line
# g. a4 H" T6 i) l4 c
: i" Z# v9 G/ b5 }# d& E2 B ptsBlock = New UI.Block.SelectObject2 l" x% @3 M9 r4 D
ptsBlock.AllowMultiple = True' v" k$ E6 U' [' Q) |8 ]# E0 y
ptsBlock.MaskTriples =
9 G5 Q7 ]/ e) U {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}
9 h7 ~& N9 {0 g) E1 z. ` ptsBlock.LabelString = "Select locations"7 ^1 z* U% Q: B- F, C7 b. ^
ptsBlock.PointOverlay = True
- ~( F; X3 v H- D2 k' \ C ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)5 ^$ n" S% h1 m. t
ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly( X8 A5 M7 W8 n" C4 a- f0 Q
0 ]! G+ [, Q5 P6 h2 I" G ' Add the block to the BlockForm
! Y% A# C& X! X6 @2 z% G4 J/ Y Me.AddBlocks(ptsBlock)$ W& g. C* j1 t6 E
5 g$ J, Z/ [4 I" |& `
End Sub3 W( A& j$ o. k, E& ?
/ v# F+ o4 v* w9 ^8 n6 z# d Public Shared Sub Main()
4 I* g3 E" j' A! n) H4 \* w8 p1 I6 P+ B/ i
' Create and display a dialog* l& O: ?6 L: n
Dim myForm = New SnapBlockFormApplication2()
6 @# J7 G1 o* z4 d% Q myForm.Show()
; u: {+ M9 {! E; c9 @3 D* H5 {& T1 G$ U9 S% i6 s7 K. s
End Sub
; U0 Y7 g9 C. K& V9 ?* t | \7 q% u, L! ?4 _ }# f2 [
Public Overrides Sub OnApply()
/ J2 R/ x$ z) g3 Y, j
8 M! d0 ?/ m+ q0 G, A" }- q7 k InfoWindow.WriteLine("You selected these locations:")# g8 q) U& y7 m
1 s8 i8 b" E, q3 |& k, |' e4 D# `
For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects
8 j7 H, D9 o k, T6 [ InfoWindow.WriteLine(anObj.Position)6 F8 K7 j8 Q5 g4 }8 l, Q
Next. J" ^! p7 K( Q, O5 E$ i
$ `* w, Y/ ~$ C% j7 T# j End Sub
4 o% q- l0 X) q0 H: G8 F: s3 Z ?8 H+ w4 S' A( w
Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)' B: e! X: M& u- o9 M
" K9 ~+ H: y, B# z3 j( E/ ^ v* K
' This is going to be annoying so don't really do it!$ `- S1 l, Q: H' T8 U% ?0 O4 b
If changedBlock = ptsBlock Then
0 c6 @% o, ^8 z% t If ptsBlock.SelectedObjects.Length = 1 Then. r, M2 J/ N) Z/ d6 z' f/ r/ Y$ ^: q
InfoWindow.WriteLine("You picked a Location")
( U1 r) Q2 Q2 E. e Else
- C+ o5 H0 ], w4 y InfoWindow.WriteLine("You picked another Location")
$ K1 t/ Y: z, _- n End If. o. ]" X5 [: @. n: Z& O% k# k
End If
( O! c- f3 l0 }! n6 X" O) y, c1 Z
End Sub) J2 f% ~2 t2 e/ h8 X& W; h# H
; i8 n9 J9 F$ w: a: U8 S0 ] Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer
+ S8 u/ p6 M; w _6 j6 x* a Return Snap.UnloadOption.Immediately4 b1 u' U9 v2 a: H0 x
End Function
! N; X E- \7 q: C v
6 V, w: P2 K! I% C; vEnd Class
0 e9 q, n7 o& K; m' F |
|