|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例* R1 s' I+ h# ?+ z* z
0 p1 v2 T$ p. l; f
: X. `5 ~9 U9 s4 |# q
Option Infer On
" l; h3 C; \& o) C$ _Imports Snap, Snap.Create
, i. ~) j( i) ]- v
5 E4 V: _3 {2 z' This is a very simple example showing you how to use a Snap.UI.BlockForm0 K# q7 ]2 y' ^ |4 g$ p3 V R
' to create a dialog that enables the user to select multiple point locations at once.
8 F8 R9 K) l x. P' }- T$ D4 f* A6 P3 R; ~9 Y8 j/ T
Public Class SnapBlockFormApplication2 : Inherits UI.BlockForm
; B! q* [# x% X/ ^: s m4 _0 T9 l. a; W* ~+ O9 f6 o6 X6 J
' Declarations of the blocks on the dialog
# x* o& R7 v8 E$ F4 `. c, h6 e9 n2 m! s- h2 i
Dim ptsBlock As UI.Block.SelectObject
- Q& T. ^# Y& k9 j+ d: y! Y
; k$ s* b* X/ R& k+ j6 @1 f4 B8 H ' Constructor for a dialog object" ~9 H+ y5 [2 |$ e$ b4 N
Public Sub New()7 m+ _4 |' s( t f: j
# y2 A% Y) P/ [0 z9 I
Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog5 {7 u0 O+ \! b8 X, Y
Me.Cue = "Please select some locations" ' Text to be shown in cue line
V! D0 e/ L& c+ v$ U- `4 M: g7 k# G, z
ptsBlock = New UI.Block.SelectObject
4 \6 D* J* w Y& \% ? ptsBlock.AllowMultiple = True5 I: c" _7 |- u8 D& J) i |
ptsBlock.MaskTriples =
2 u( Y$ I3 f7 {1 I t5 D {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}
# \* v9 v, _, Z) W5 F9 v ptsBlock.LabelString = "Select locations"2 L; U, T( V$ q1 w3 r' x- L) C
ptsBlock.PointOverlay = True
5 D2 R1 x# W8 I# Y ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
1 z; T/ z! v( V `2 H- F8 P2 Z ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
7 \! O7 s0 G) E' Z T l. z
" J* E' ], B {+ y7 t, d9 j+ G ' Add the block to the BlockForm1 a0 Y+ g# {! g
Me.AddBlocks(ptsBlock)" V1 w' ?- Y% A9 S$ e3 }( t
( r# @2 R3 V) q+ O/ j End Sub& f; p3 r6 G% y- F3 o2 J- l
! G% @! X5 m- m9 \+ I8 d Public Shared Sub Main()' l* N) }# f, m! r; O) B, R( s
4 \1 N4 T1 i8 l! T- g ' Create and display a dialog1 d X- C9 E! W( i
Dim myForm = New SnapBlockFormApplication2()
+ E, E$ R5 B- I; c2 ]& E! i myForm.Show()( W& V5 A; G# E- H8 ?1 n+ b- G
) `" q3 m _# @1 a End Sub- `* u( p6 X m8 B" H4 \' [" p- X3 m
0 O! g" J/ E$ B( D
Public Overrides Sub OnApply()0 V2 V) {( `6 @+ F
$ b7 u- g" {% F4 f$ N- C( X& w
InfoWindow.WriteLine("You selected these locations:"): r! E- e9 B. d1 Y% k+ I0 H& p0 S
" a6 K7 r2 b. z( a For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects
( H2 l/ z% y! t5 g InfoWindow.WriteLine(anObj.Position)
) }+ U3 l6 _& ~- F+ T Next# Z' s( O8 \2 @- H6 f* V! c
( v: |0 o5 t J5 @
End Sub: y0 E: q* G+ y/ T; |
; H7 I1 m' Q8 h+ N3 \ Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)' a# r# J' G C* T* Q; f
7 L: x- ^: K! p. i8 x* P$ Z6 c3 T ' This is going to be annoying so don't really do it!
5 ~6 ]5 ?/ a" @. k( ? If changedBlock = ptsBlock Then
Q C! l9 {5 p) i. h If ptsBlock.SelectedObjects.Length = 1 Then8 a1 {3 Q& t8 Z/ V4 Z, H1 f
InfoWindow.WriteLine("You picked a Location")
* W( O9 X3 T6 x" G7 D6 C. \) X Else2 l! r" e: N% ]4 ?6 `
InfoWindow.WriteLine("You picked another Location")/ y! m2 w: `+ ~8 T d0 }/ V
End If
8 a" }% y% O. [: W4 K R End If" F, w" V: m, F* E
& d3 q& \$ j/ u# a# T8 o
End Sub
; ]' T) Q0 \: r
, T$ I& T F5 h+ K3 C Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer) k( z+ O- [- r3 |
Return Snap.UnloadOption.Immediately
& Z! O) y+ k6 s$ }' d End Function3 k/ T* M2 g2 m1 b" B _
* s& g; `* u9 C: l0 ]End Class( y4 D; R; p4 l. s+ ?) O
|
|