|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
通过对话框选择多个点实例
2 F* e# L: T* ]$ y( e
5 O: R; K7 @* y3 v! V0 L$ p0 y1 b' j% i, ^% d# W
Option Infer On
7 |: V, C$ S! r g- P+ E. {Imports Snap, Snap.Create
" d, l6 Y6 |2 i4 _% b9 D& X' w2 _# m0 [+ i9 A0 C9 c C& q" E8 P
' This is a very simple example showing you how to use a Snap.UI.BlockForm
5 Y$ \* l' Y5 c) f0 `# N( u' to create a dialog that enables the user to select multiple point locations at once.
4 r. c5 b$ E1 Z& d+ ]
, G) R; ]; x6 oPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm
( V' p/ x0 G; C4 \7 ]- W
# B; y+ Q5 \% r( } ' Declarations of the blocks on the dialog1 ?7 u& B" O( H& ?9 J9 z
9 m9 g4 c S! @, D3 ]! R1 H0 x Dim ptsBlock As UI.Block.SelectObject
# x6 W: p( w, U; l% A
! Q8 R; ^5 i6 V2 f$ [ ' Constructor for a dialog object
5 r. O& R! G6 J5 q Public Sub New()
6 ^" D! ?8 w8 N$ |% [+ E! h% H& L' U
Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog/ n$ `! [! Y) ?% L$ X) m5 v: W
Me.Cue = "Please select some locations" ' Text to be shown in cue line; ~ u+ \! h" ?1 ]) H- A2 h! I
; t; {" [! K6 o6 o; M ptsBlock = New UI.Block.SelectObject
* D5 E, g( _8 i% B ptsBlock.AllowMultiple = True
3 Q7 t6 ]: W# j+ U/ N0 x ptsBlock.MaskTriples =
+ w! a6 ^: C, u5 {+ B8 A {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}" ]9 j) \3 l2 w
ptsBlock.LabelString = "Select locations"3 c) r) m# f( Y6 I9 N2 U
ptsBlock.PointOverlay = True3 I! t: [! G4 V. c7 t7 L% L& Z
ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)- S+ e% v5 s+ ~
ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
# j; P4 g8 I+ d, _6 W3 X: o% ^: b' P; r m5 b
' Add the block to the BlockForm
- T& S! D( [ d5 r; R' j Me.AddBlocks(ptsBlock)& x2 T5 I* W2 |. J% ~' p: v5 o+ {
. M8 Z( J T$ ~! u3 r0 T) g* q0 {
End Sub
3 n: V9 ?1 ~' w8 ~) R
8 R' O) a& f! Z; I. S w3 i/ y) V6 r5 M Public Shared Sub Main()
+ p$ D: ^2 k/ f1 A
- L5 T" E+ e j! I- M ' Create and display a dialog2 [* E$ K' L3 |* X- Z& Z/ x( u5 x
Dim myForm = New SnapBlockFormApplication2(): W! B& ^0 O6 b0 c% O) g
myForm.Show()( a6 T; C) I8 ]( r/ G
( i( g6 _1 Y! W' f, l- r End Sub1 ^2 V9 ~7 T" Z9 G- E0 p
; d& ?5 C$ B7 j( k1 T/ i Public Overrides Sub OnApply()2 i3 b4 v7 m8 `/ `( H( C7 B/ |) U
9 ]0 S) W9 k8 F+ ^& r- E
InfoWindow.WriteLine("You selected these locations:")
4 _+ p2 e m7 \2 E4 I3 z0 |) X! x3 c# x/ V$ _
For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects- ^5 R& x3 ^8 z( ]
InfoWindow.WriteLine(anObj.Position)
) v$ i- f7 a! y" f7 a( G( D Next
0 z& B0 D2 A% d3 o1 t/ P
G' K4 \) e+ y% F | End Sub
! K$ Q3 y% q" H7 x0 u4 K' q9 [% j+ s
Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)$ j6 U4 }, r) N
/ `0 L! U r. b* f
' This is going to be annoying so don't really do it!0 @7 a9 {7 v* Q& D" m. P
If changedBlock = ptsBlock Then
4 T- V$ Z. e* ~" l e' ]4 s If ptsBlock.SelectedObjects.Length = 1 Then0 ?0 `8 n1 E# ^+ K, L7 c
InfoWindow.WriteLine("You picked a Location")
, q1 O+ v7 \1 ?0 S" O9 x Else
: k8 `# F3 m7 `7 ^ InfoWindow.WriteLine("You picked another Location")6 y3 i& V) W0 b' `3 M* u
End If
- z) M9 S0 ^% g. E. i End If
+ B0 a& ~ \6 B. R" o4 J3 z
, r3 j3 } y9 h6 m End Sub
; A# U. @) }4 c+ z* G2 n3 }+ k' _, q$ I R
Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer4 A3 I1 s+ `" o8 Y- m
Return Snap.UnloadOption.Immediately" O4 A( M2 `7 ?; }! d; J h; Q' g) F( j
End Function, H9 {. b O0 G9 W# \% `) c
6 l( A5 D0 G8 V9 OEnd Class' k2 R* m5 ~' r$ r5 h4 j3 x
|
|