|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例
. A/ j0 R7 e: P+ t% `; c. ?$ U" O6 ?$ H. ]
$ z: b- B8 U! {* lOption Infer On
7 \4 c$ D, ]6 h. I6 A8 D7 w$ hImports Snap, Snap.Create
+ E; ^- O% S7 F; M- P
/ A4 e) d- A" E8 e2 Q' This is a very simple example showing you how to use a Snap.UI.BlockForm
% G; a# I# p. U' to create a dialog that enables the user to select multiple point locations at once.
/ f6 N! W9 F" C" u' A
3 |+ K8 ^ x: Z3 IPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm
) p# ]+ ^; h* l5 w
$ r; [ g; a% ]! E+ a/ T ' Declarations of the blocks on the dialog5 B4 Q* N e' L$ u! R" G
: H w0 w1 b( e* A- Q Dim ptsBlock As UI.Block.SelectObject( A ^% v" S" }
- Z3 k- M5 t3 _1 k+ ^5 w7 l% W5 y, F ' Constructor for a dialog object
9 p1 f' i) e9 o1 u( D# S7 ^ Public Sub New() q3 C) t5 }" N: ~- X9 F, f
: h+ R0 D; w) ~! `. [ Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog6 P" t" K9 @, p4 X2 u y5 d
Me.Cue = "Please select some locations" ' Text to be shown in cue line6 D8 x" _$ x/ w6 p% e
! e; M+ {. B3 J9 p1 Z8 Y& e
ptsBlock = New UI.Block.SelectObject! B1 Z, u/ |, }% g+ P# U% R1 A
ptsBlock.AllowMultiple = True
2 V) @' f( K3 u, b* W, x ptsBlock.MaskTriples =
% p; n7 J+ k3 \ {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}
8 A. v4 I& p/ K" Q, B ptsBlock.LabelString = "Select locations"
x/ h5 N8 |3 ] ptsBlock.PointOverlay = True( |8 R/ l9 o3 b7 W: N i& W
ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)! K; ^( f, U* Q+ z1 Z. ?
ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly! d1 u% d0 p% `9 y3 n! z
2 s7 d; y- `$ m, X
' Add the block to the BlockForm; y# o4 g! ?% S, K/ s
Me.AddBlocks(ptsBlock)/ A" Z2 q* t+ H+ d" m! ~+ Z
" F+ _/ w4 T, W: L$ G s7 V. A
End Sub6 u, i: G* R/ e0 l
7 I' g" V) A* z8 c* X# D3 S2 ?6 Y
Public Shared Sub Main(), n7 j4 N! E1 Z# ]8 Y% A
+ B+ B, q# i' V9 P2 y2 x ' Create and display a dialog
( J% a g" J1 r; y4 A G" @& Y Dim myForm = New SnapBlockFormApplication2()% s4 W* A3 B K4 Y: Y( U' N" [
myForm.Show()
: V) N. I$ w: S0 o
2 ?0 |, ~' {' L5 S6 J0 `! ] End Sub
* w' R0 @' y0 \4 J7 x. P* @5 N6 p4 h# o6 C/ G4 {+ M; F
Public Overrides Sub OnApply()
. F, K# }2 `2 F7 `2 U& k4 ^4 ^. }1 q, B+ i( v
InfoWindow.WriteLine("You selected these locations:")
9 ~% b; b# @; O g3 Y/ Z- h' z& e
6 q3 `1 b5 i) a$ o/ p8 z For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects$ A4 B9 h% h, Q) s# X/ k3 K/ j
InfoWindow.WriteLine(anObj.Position)
1 F7 ]$ j: X0 ^( ? Next
% j: A' x2 j' H3 a" q+ A% r; ^+ i
End Sub
' Z: { h' Q, I9 {9 o
3 h% J' }5 Y) O6 {9 S5 J2 M Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)) W1 C5 X9 C: v5 S) B; M/ }4 p" V) S8 H
9 E& o( z' [6 g r ' This is going to be annoying so don't really do it!, `( W w- |* { u
If changedBlock = ptsBlock Then
& X+ n1 L- N4 j If ptsBlock.SelectedObjects.Length = 1 Then" |- O o, S; b
InfoWindow.WriteLine("You picked a Location")
$ h, ]' F( u( F5 Y- T3 W Else
$ x- y& ?8 y8 d; J0 |; x5 A InfoWindow.WriteLine("You picked another Location")
/ o4 \2 G+ |6 u8 c" ]4 _; \* g End If0 ^0 [* Z; ]. w5 ]( d F6 i" L
End If
; K$ C) o. j f& b6 y* |& p5 P" ?! n$ _7 a/ ?8 @* ?! N) c s
End Sub
9 H! ^$ D/ z+ B3 d" h& b) Z2 u
$ ?; ?( z9 h+ u& K! M M# j+ ~ Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer# ^/ P! c$ c+ }0 g
Return Snap.UnloadOption.Immediately; d, A3 R8 l. r
End Function) [- d( t% v7 U* e6 T
+ h4 x6 g$ Q' l" I+ W4 ?+ \# u: N, KEnd Class
" n; C) R- j V8 V, h |
|