|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例9 f: C* S t2 r/ k7 t
) q; Y6 Y# ^ M& k/ r. G( D
% U/ ^3 ?1 J; z4 u6 y' V. zOption Infer On& \6 `- a3 x) s; x0 `
Imports Snap, Snap.Create
$ G. i; E1 D; M! ]8 |- B2 `3 c7 F/ b
; d9 P1 m: t3 u) [/ u; r8 }' This is a very simple example showing you how to use a Snap.UI.BlockForm
6 d: f, b! ~- c9 G( b' to create a dialog that enables the user to select multiple point locations at once.
7 M+ f( ]1 x: X+ A' M" M6 U
1 Z& ?3 H! W, j8 z; o+ tPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm8 p* d% ]3 r+ @7 O) h
1 W0 D7 y" ~2 c. p# s( z) ~. U ' Declarations of the blocks on the dialog4 U( N5 w7 Z/ d$ P2 }" g; i
- W) O1 m% Y! c4 z/ Q Dim ptsBlock As UI.Block.SelectObject* |/ t" l4 ]. n0 R) @" A/ X& o6 z- b: Q
8 f5 c! G5 S/ v/ A5 ~9 P0 N
' Constructor for a dialog object
) ]) }: j" V5 H8 D' o. B+ F+ r Public Sub New()
# @8 B2 b5 B" B; s- q) i1 |4 L
) W6 f& b1 D3 U8 y3 _; C1 Q7 o Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog. h3 \ C5 j- z" ^
Me.Cue = "Please select some locations" ' Text to be shown in cue line
+ N% G3 y$ \* u v6 E& Z2 Y; u
ptsBlock = New UI.Block.SelectObject
0 |- Z6 s. Z- K) ` ptsBlock.AllowMultiple = True
6 M7 @; Y7 g' y B2 \3 u$ c: y ptsBlock.MaskTriples =
* u. }" h3 N* N q! |$ {1 Q {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}/ S& G" q e% V% W! Q
ptsBlock.LabelString = "Select locations"$ s: X( G/ U( l3 v
ptsBlock.PointOverlay = True6 ?+ }5 o+ S4 ], |/ u
ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
) Z! w+ C9 T z" k4 o6 x ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
! S- E# V% ]/ h, _5 s8 `9 E* P: u- d6 ~% n3 p
' Add the block to the BlockForm) }2 O. E6 t) X) V
Me.AddBlocks(ptsBlock)" d- F0 Y0 r# Z9 x
( U# F2 I, I9 _5 K" I$ i
End Sub
% b" l) H. w% t6 @( z* e) [! }: |! g# ?
Public Shared Sub Main()
, o2 s# G5 C; j4 ]4 @7 r2 `0 e
6 i# l# C5 E& h3 |1 u ' Create and display a dialog
1 q* j6 H- i# h+ [. J8 B3 e Dim myForm = New SnapBlockFormApplication2()% k5 ]! g, O7 ~3 I5 o( |
myForm.Show()
6 q# p' u9 J$ g
' k2 v3 v4 w1 w6 d8 H; R End Sub% x- G* j) m" @" T5 |1 q
0 Z* ]0 u& X; \3 ^' o o+ |3 A- `0 H
Public Overrides Sub OnApply()- ?! X Y* I% a9 U- L
0 |& R8 N R7 N {
InfoWindow.WriteLine("You selected these locations:")
7 c# U& E$ P D `) ^$ a9 t6 h6 P7 y, A; J- B) E- }$ F9 m7 g
For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects
9 N, O. \% C* Z) t# q InfoWindow.WriteLine(anObj.Position)
2 L# j& ~' v' S2 c* p, ^ Next! q$ x' }+ `% [0 W& f
* d, h* s3 V0 L- I9 [ End Sub
. J/ o7 ]0 R2 A, x' N( A4 L: b
& Z$ d. J: Q/ W, } Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)
# R( I- r* F' h
- {8 e; h" v3 X ' This is going to be annoying so don't really do it!+ Q+ N7 Z% N3 `- }# u/ u4 j- _
If changedBlock = ptsBlock Then
; S4 E' x! O7 s! R3 e If ptsBlock.SelectedObjects.Length = 1 Then; u! `: a% M Y/ V
InfoWindow.WriteLine("You picked a Location")9 J/ I9 i7 _6 | U
Else1 p! {4 T, o S; ]2 D9 S
InfoWindow.WriteLine("You picked another Location")
7 T' Z/ c# Q% O# E( M& b W End If
/ n/ O, ], g: t& @ End If
% w# Z* C. `1 K* Y0 L: q5 L3 K
2 Z* \/ k5 S4 z8 y End Sub$ f9 V7 u+ R. h% @9 e1 i, c2 ~5 e' u9 [
9 f5 L# |9 }9 _6 a5 A7 [
Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer# e4 E+ O" d: M6 B/ U6 o# P2 [
Return Snap.UnloadOption.Immediately
1 ^ u) z0 V. z! w4 r: i2 {, h End Function
e" {* F4 C7 y% V: _' S. y! F5 D) R2 j* y E/ `* B7 N7 P( n
End Class
0 u" M6 Z. R" @) U2 I |
|