|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
通过对话框选择多个点实例
& G6 F- ?! _% D7 k$ \" S& c6 a0 r' u* R: `4 S4 o+ y
4 R% k4 f l( M7 HOption Infer On
# r& s! @1 ^4 p9 s5 K$ N$ UImports Snap, Snap.Create* h" T. N; m5 \9 P: K; u+ P! @- A
: R0 \) V4 Q) G/ N9 `; f' This is a very simple example showing you how to use a Snap.UI.BlockForm
7 L" A8 @4 |! G0 N, R' to create a dialog that enables the user to select multiple point locations at once.
i' s+ Z ], p+ v* ]2 H i
' m7 n2 U4 d; p* \5 K9 W7 d8 H# OPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm
! g- Z. @9 r0 X ]0 y& y! y0 i; E) q, a/ ]0 z2 t/ x
' Declarations of the blocks on the dialog8 Y9 {# z% f9 _- n
* x, h9 w1 P7 m Dim ptsBlock As UI.Block.SelectObject9 C3 @" _8 q, y; v- Z7 r. A
- s# m2 |+ ~. @ ' Constructor for a dialog object, d3 |8 S3 g$ O/ e8 }
Public Sub New()% Y# @8 _3 a. d# a1 a* \
# L1 P' N5 R0 {4 i# V5 A9 I- L: ?
Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog2 j# H9 w5 c+ _
Me.Cue = "Please select some locations" ' Text to be shown in cue line M- Z$ j# X x
0 K9 n3 q! `9 d5 Y
ptsBlock = New UI.Block.SelectObject
5 j; s6 @0 R1 h6 `" {& t ptsBlock.AllowMultiple = True
. C' {5 {2 S9 J2 i* o! x' b+ H7 K ptsBlock.MaskTriples = \8 o4 }+ t2 i( |# A
{New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}- c0 r* B% c4 A7 j1 ?& v6 v
ptsBlock.LabelString = "Select locations"
' z8 [8 g3 m9 ?$ k! u8 k' p/ ~0 a ptsBlock.PointOverlay = True
3 F( U2 b( p% `3 b4 w* M ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected); ^% @7 v4 N; z$ v S" U
ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
& X; r% w$ W0 ^6 ` e: W7 i, Q% j: G- `2 B* _
' Add the block to the BlockForm
5 g; E, y. e4 i$ B% }2 @& y Me.AddBlocks(ptsBlock)- j8 {5 K0 N1 O* J( ]& U" f
! [ b6 A' N# y& @ End Sub& ]% r# K) G/ c- d6 H7 x
& x8 x2 `% ` b4 \ Public Shared Sub Main()+ z1 c* _- J% D. a/ s9 g- I9 F
- r- w5 r* Y' m" l& ~# L! W0 { ' Create and display a dialog1 S; w1 r7 B, g
Dim myForm = New SnapBlockFormApplication2()
' O* E5 e3 ]- r1 [. ?2 u, j myForm.Show()
' M2 P7 ~4 ]- D3 O/ X( K. e, m8 O+ R
End Sub; Z- t# e l1 n
- y8 y6 i i/ F1 H( s
Public Overrides Sub OnApply()
9 T2 X2 l( B: A& Q7 O- B' X7 l( Y- q/ v3 l$ V( i
InfoWindow.WriteLine("You selected these locations:")1 i5 B+ z6 k$ ^* i8 f( J
2 N; H- P5 q+ g
For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects3 y6 f2 q% |5 p- ?
InfoWindow.WriteLine(anObj.Position)
5 i' A* [4 i; ?- H/ c+ W( y% c( H Next
* T1 m t) p) j) {* @+ z% y* R- k4 C) i1 A0 Z* H
End Sub
5 @' m6 M% m. R9 k6 R9 _9 z O( q& A5 F9 P0 A# m* q' R
Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)$ s" C6 w ?- M' c2 f$ |0 x, p0 R& Y6 y
1 T5 g( n, |" {. @. N0 U6 f ' This is going to be annoying so don't really do it!
! c' w) L& _# }7 s If changedBlock = ptsBlock Then
6 m! v8 Z% O. _( {& s v6 }" N If ptsBlock.SelectedObjects.Length = 1 Then& [# I" |: ^; q3 A1 O4 \$ M0 g
InfoWindow.WriteLine("You picked a Location")5 E& m5 L3 P. K1 L L, h
Else
3 e6 p0 e6 X" [9 s$ _ InfoWindow.WriteLine("You picked another Location"): X3 i/ D, ^9 z2 \
End If6 z+ O A+ v) G4 Z r
End If2 q, G/ N; W/ G( Q1 T9 `. F
4 I: ]6 ]: N& ~9 M End Sub1 B* D7 G% A& r; A. Q
0 O6 j8 V' D o9 A+ D9 i Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer5 \: u7 c" |+ J' {: m* g) d9 x8 Q
Return Snap.UnloadOption.Immediately
) d% Y1 L. A" T- a End Function
2 V( x) k) S2 U4 R6 I
' N8 L( m) Z g( r8 Z/ \7 ^End Class1 T+ I$ z) G( I2 k
|
|