|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例
6 N* U. m2 e' b5 \+ r
# j4 P, o; p' a% V) B
2 x/ d V5 n, _! j; G# hOption Infer On+ V; @6 Z* I# @2 h. X! p/ W. G
Imports Snap, Snap.Create4 x2 W# G" n* ^4 g3 F5 y9 E
; N7 o3 {/ g& n5 c( X- N) e0 [
' This is a very simple example showing you how to use a Snap.UI.BlockForm
/ p9 \2 _& A" b- |% g( n' to create a dialog that enables the user to select multiple point locations at once.# K& |. Y& r6 n# Q* y- \
- X6 F @4 |$ B2 K; ^Public Class SnapBlockFormApplication2 : Inherits UI.BlockForm( V: { w1 }6 d2 Y, Z' [
) s( T. u" C5 ]5 J, H7 A4 n
' Declarations of the blocks on the dialog m( U4 l6 X* @* t8 p
$ F: s7 G& a8 p& s5 L- n" d! n V Dim ptsBlock As UI.Block.SelectObject/ }. W6 f9 x' N- G8 y
4 B! | u& z( K& e5 V2 m
' Constructor for a dialog object+ I- P$ t( g H: q) M+ J$ r
Public Sub New()
+ }# Q9 b) V, D. D3 k% `7 a" x8 n: I* M9 H4 [ D X3 a
Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog
: W$ S2 s& v0 A5 Z# U8 \0 z Me.Cue = "Please select some locations" ' Text to be shown in cue line( L5 t8 Y* q- j2 f
9 j- y* g9 f" {2 @: n/ H. Z
ptsBlock = New UI.Block.SelectObject
" l6 {! L: F) j5 a ptsBlock.AllowMultiple = True
' b M1 ?* g4 O ptsBlock.MaskTriples = C& j& |, L! `( y
{New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}
8 m( S/ Y0 G) ?' @9 S9 t5 z ptsBlock.LabelString = "Select locations"
( t& }6 P3 F1 k. Q& \ ptsBlock.PointOverlay = True
L8 u- [+ `9 Z) R8 L# M& @ ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)- w0 I# j6 Y5 o( q6 E* R* w+ G5 x
ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly0 m6 Z/ u8 B& Z2 S% @
0 @ z$ Q: @0 B4 i/ e! b ' Add the block to the BlockForm' h, i: f5 D& x( |. [4 m
Me.AddBlocks(ptsBlock)4 C6 _1 s/ F: G- q
$ K5 d) v8 @) F: t1 E; {( [ End Sub
5 M& e$ Z$ k+ c/ R8 t
! E4 b7 _; i$ K* B$ A9 B$ k Public Shared Sub Main()
- e) ?: m% a7 p/ M8 x$ X- e
% _# f- F% x5 c ' Create and display a dialog
' M; a' H0 s' N: f5 k/ l& i3 n Dim myForm = New SnapBlockFormApplication2()" V5 B! c# G! g v' [6 N6 k" w1 }
myForm.Show()
* z' N9 l3 j$ H, X U8 P4 f9 p, m8 R
6 j/ ^1 f) w& R, x/ n End Sub' Z( Z0 u" D, N. }) ^5 K
2 X# T( B& ]- g: {) O8 Q6 Q# W& z Public Overrides Sub OnApply()3 w8 T- P- u- x; `+ e- W- w/ I- {: K
. T& W3 w1 c: u" m+ } InfoWindow.WriteLine("You selected these locations:")
3 R) S! E( s! N+ z) m% c1 `# y; o, P2 X+ j
For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects; J$ z; s" J0 u1 @1 u6 N2 y% h
InfoWindow.WriteLine(anObj.Position)+ Y# ]- r/ Q$ b: Q2 v) q
Next
" ?5 f' p" i. H: `6 A
2 C" L% d: M4 \0 m End Sub# ?$ i# k) Z, D* j/ B0 C" P/ E6 M- s
1 ?- j$ R- j0 ]. b; f
Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)
: F. Y6 \6 [/ P) }+ ^5 o/ T0 E, t' m9 w4 {' o3 k% P/ u
' This is going to be annoying so don't really do it!
2 k# T6 t- N! ^5 Z/ Y! M8 ~ If changedBlock = ptsBlock Then/ z- J' W3 O9 z, j
If ptsBlock.SelectedObjects.Length = 1 Then
, h |7 j* O8 f5 N! Y InfoWindow.WriteLine("You picked a Location")
# D6 H7 C2 O& _ Else1 }) \ V7 \7 _
InfoWindow.WriteLine("You picked another Location")8 y7 k: l- W1 J0 n3 F/ X
End If
) }; e& `2 I1 s1 [2 b End If) x0 w$ u& p4 J1 \5 y8 B6 y& L
* f2 l" h% G* f
End Sub) u; ^0 K, t$ w" ]5 T6 z3 { U& ]. Z
1 @) W' o, x- P% h0 G. k! g
Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer
) f. b3 b) u$ o8 y2 a' G7 ^ Return Snap.UnloadOption.Immediately
! L- H& F% Z/ R End Function
' Y2 f9 i9 H# Q" G/ l4 Y6 h4 O% [4 ?: R; y$ |8 N$ f4 u
End Class
4 `0 j# }- Y7 H+ U) @ |
|