|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例* Y6 N, ^! T7 m0 P9 C
$ ~* I+ v% O" u0 k' U1 F
% v0 ~- c1 N; \" x. pOption Infer On
" u; i& ]$ N0 `) `7 `5 b, hImports Snap, Snap.Create5 C5 B: Q- A# |
8 V+ i: a4 `$ W! e6 p& n' This is a very simple example showing you how to use a Snap.UI.BlockForm& O, i p, ~3 z- X
' to create a dialog that enables the user to select multiple point locations at once.
" F& U% o1 _# `$ O1 N
6 {3 G% X& B! E- uPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm
- o& h+ S% _& n: b Y& P. s
* M% Q3 t9 I, g2 m- {6 R ' Declarations of the blocks on the dialog
5 y/ R* h9 c1 _# I5 _4 k0 R' l1 a2 b
Dim ptsBlock As UI.Block.SelectObject9 n; d+ q1 [0 V* L3 U8 B
" W @1 v( q; {( G5 e ' Constructor for a dialog object6 ?2 `, c/ ^ _# k
Public Sub New()
6 {1 n& y0 v. F3 R, i4 Q; K1 @
/ ^1 v; @: L$ h1 {! l1 P Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog H/ w0 T Y+ F) c
Me.Cue = "Please select some locations" ' Text to be shown in cue line
. z2 K+ [' V) e+ z& D5 R& ]* Z8 o$ l8 a9 M& ~
ptsBlock = New UI.Block.SelectObject7 w6 N5 e( D7 q8 o1 Q8 g
ptsBlock.AllowMultiple = True% b% }1 F6 b% e b8 q! i
ptsBlock.MaskTriples =
- A+ d# _8 U* P! Q" g% N- n* J. ~. Z {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}
6 ]) g& \; i. Y; p9 \ ptsBlock.LabelString = "Select locations"% A2 l; g" D" ?3 ?
ptsBlock.PointOverlay = True
% |4 c; {9 `8 h( ^( n ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected), L- r! W9 I" k: L2 R3 U
ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly1 ? U( ]& j- S- `
. N3 F `! L' r ' Add the block to the BlockForm% K/ Q& V1 i4 T/ q4 P/ ]# l; V8 p6 {
Me.AddBlocks(ptsBlock) o) X, E6 D4 p: }: \7 J! A
6 D0 W9 O7 |/ B1 f) D7 S
End Sub
$ _- }# L) z# s% ~* Y$ Q& A" c) A, }: d, M* C$ L) e* ^
Public Shared Sub Main()$ J* B$ i+ o4 E
. \5 L2 ]; i2 ]/ x& V R( R ' Create and display a dialog6 s- ?; V5 E }9 n$ n/ P6 `
Dim myForm = New SnapBlockFormApplication2()5 C+ E# e0 b* J3 w
myForm.Show()
: x' y y q5 H/ i6 I( o5 H5 @" P/ Z+ B6 D
End Sub- b% D: U ^0 x. U5 C
4 Q) \% U4 x9 T Public Overrides Sub OnApply()
, s' q" a% a* `5 R; h" B" F6 Z' B Q5 J
InfoWindow.WriteLine("You selected these locations:")/ T: a9 w7 C/ g' Y/ }, q8 A
5 T) }, N! G6 i9 t# M( C" @: R0 Z For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects
4 O7 G" l' D" Q) F( Q# v InfoWindow.WriteLine(anObj.Position)
j0 Q3 T( Z- K4 { Next1 F& y) c* I9 S4 w% H
, m( p7 D; d/ B' q& |
End Sub+ P7 Y2 @# Q* B" l
, B3 v" W4 }: m( p/ g } Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)8 n' S) Z! m7 Z
x3 h9 {2 T s ' This is going to be annoying so don't really do it!0 _/ p" X2 s [. ~
If changedBlock = ptsBlock Then
+ h# L* S# r8 A8 f If ptsBlock.SelectedObjects.Length = 1 Then
/ Z$ |% ^% Q5 q# F InfoWindow.WriteLine("You picked a Location")
! d/ m; b$ S4 i# w8 A Else k2 a, ?) {/ I, Q
InfoWindow.WriteLine("You picked another Location")7 l% s2 b! O, n# T6 Q3 v
End If R0 T6 |% M1 z! u0 T$ Z2 V
End If
$ o6 `' h1 ~0 g4 P2 e9 I y
6 ]$ [$ |6 j# m7 x5 n6 m, \ End Sub
: k# I2 J! Q) R# \6 ]9 N- v, m$ _, L4 D
Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer" _& n% ^- {8 o0 m7 l
Return Snap.UnloadOption.Immediately
" r$ u0 F+ U" u1 v7 E2 \ End Function
! l1 P( b0 i5 i( z1 i, P2 _. J# i1 |1 l r
End Class
, Q# e9 T) s. E; I! n- P |
|