|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例: ^* o2 {+ n) @' b4 x" F
: p S; d' K2 Y, \" I3 ]+ }
0 b4 G! P" v5 YOption Infer On* ?+ I+ u* u% c- y. N
Imports Snap, Snap.Create0 P4 x: ^2 E8 Q" ]
: e! E% R* k' l
' This is a very simple example showing you how to use a Snap.UI.BlockForm
. s$ \/ G% ^0 O2 A" E I* c1 P4 R' to create a dialog that enables the user to select multiple point locations at once.
6 ?" {( `9 r1 ~, n; ?3 R) W7 J7 `( M% _( G
Public Class SnapBlockFormApplication2 : Inherits UI.BlockForm4 V2 W4 x) y/ ]# m! o
* C" n8 t& u5 J7 ^$ i4 k! q1 V
' Declarations of the blocks on the dialog
: S/ q. v* o: C* W) ~% [6 p! v2 T
* y Q. {7 \2 `2 p! L1 j Dim ptsBlock As UI.Block.SelectObject7 T9 @& p' d6 q
1 y& \4 }9 m0 u( q3 _1 B; F# J+ E. u4 p ' Constructor for a dialog object/ b# N5 }" B( R+ H4 C% l0 J' X; X
Public Sub New()
4 r2 _0 x* s% b; L6 A9 R# V( k. _5 C5 I5 `
Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog: n B1 y$ W w" d5 H
Me.Cue = "Please select some locations" ' Text to be shown in cue line. n' e* i o2 C; k) k
7 y& Z2 g: b7 X3 c8 m9 m) E R ptsBlock = New UI.Block.SelectObject4 A( G O2 r5 x7 u8 U8 y# ~3 {/ b
ptsBlock.AllowMultiple = True% k" K5 \7 B" ]) l Q# \
ptsBlock.MaskTriples =
+ {' c; B4 _$ d2 ]: \ {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}5 Y8 U H3 }" M3 J6 w
ptsBlock.LabelString = "Select locations"2 V1 K. D1 M+ [( J
ptsBlock.PointOverlay = True4 h9 U, g+ ]/ {2 v; V1 K
ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)$ Y6 [3 F5 @+ B
ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
6 {8 A O- U5 {& N8 E
: S/ Y# Q/ c+ U" C8 W* j ' Add the block to the BlockForm( P; c- y' x: B. n
Me.AddBlocks(ptsBlock)
9 l& }3 Q+ U) z! n3 q
/ ^1 m$ M* A# s3 B' } End Sub
2 N/ x6 @0 D6 R" k3 p
1 i; e. _ V. ~7 S' X$ A/ ^! u Public Shared Sub Main()
' t( C- o6 j' M) N( T3 C. b1 j9 b) d4 R f
' Create and display a dialog
+ q) D& d- O6 ]& a8 s/ l; ` Dim myForm = New SnapBlockFormApplication2(): Z) g' e* T+ r1 A5 a2 X- ]: \
myForm.Show()) Q0 s; T. j1 q- x8 i
7 a N+ w1 P+ ? Y0 O2 O1 o
End Sub
3 d* r7 d5 B0 X% F9 y
( W { U+ |) s6 [+ p* Z' B! R; | Public Overrides Sub OnApply()
( a: C$ A) r( t& c9 C; C$ ?& m% L& ?: U! x! @3 |8 w! r
InfoWindow.WriteLine("You selected these locations:")7 I5 l; z( m7 L1 Q* P2 B5 W2 R; W
2 @1 t6 Z- H* h! n& {* S; ^
For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects$ P5 j o+ C8 l% h
InfoWindow.WriteLine(anObj.Position)
* F: R0 m8 U) X- K Next
" ^- A6 {) z* [+ c/ J! A; h1 \
& r$ ?9 W, y4 n* m End Sub' ?* [) U8 ~+ F5 A* }
$ b& B* }% C3 a0 {4 q G/ Y
Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)
! U" k# M) E0 z% d0 E( @9 ?; X0 p7 }2 g+ J2 Y4 y
' This is going to be annoying so don't really do it!
! Y1 {) W0 A& S: x* z/ x( ~ If changedBlock = ptsBlock Then1 N* V2 e% E; R5 X
If ptsBlock.SelectedObjects.Length = 1 Then
0 `2 Y0 a; W) U InfoWindow.WriteLine("You picked a Location")
; p E2 E# i" X; j: | Else
, D1 A6 N5 J7 L% e8 C InfoWindow.WriteLine("You picked another Location")( R3 i; R7 W6 z
End If
$ I, s# X0 _$ Q& H. `" F End If6 }3 Y8 {/ K" v6 s* b; I
8 r: d; m a& ?; [5 ^* o End Sub
" G1 F4 m. R6 M, ?, |3 Y) x n" l# T5 n5 K q7 M
Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer
0 D% _+ S/ {- ?8 L Return Snap.UnloadOption.Immediately
6 Z8 x+ c% | B8 \ End Function! B4 ^" V% \: w$ ~+ s8 h/ r
# O% J6 ~' ^! ?/ }! r: `' X/ K2 yEnd Class- h$ ]. Q7 u( G0 z- ?6 L
|
|