|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
通过对话框选择多个点实例8 i2 Z7 y; X# w! U
$ m! k/ d" D" S9 t7 I3 M- O0 H3 q' p+ V5 c9 R+ x
Option Infer On) w5 _4 }$ {& {0 a! y
Imports Snap, Snap.Create' W$ f( ]7 ], |& a: o
' b( b+ ?6 P4 J. [3 p$ m3 ]# o
' This is a very simple example showing you how to use a Snap.UI.BlockForm
9 L5 h- P+ [) k5 u( x/ c* u' H# Y' to create a dialog that enables the user to select multiple point locations at once.
! x3 h$ W; s1 W* K
" k% C6 i9 @3 V. xPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm
$ p, k& L9 M! ]. S1 P/ U4 q$ P% O7 t( D, t6 @2 @
' Declarations of the blocks on the dialog' ?* F$ B3 h3 m
% ]. ?- w! ~* L, q G Dim ptsBlock As UI.Block.SelectObject+ j R) c" B) z( c% P
* W. t c, v! M; u: Q ' Constructor for a dialog object9 o# m7 N. t: v
Public Sub New()* S0 x5 ?4 H$ B* v5 D( g
9 |; U2 z+ h% h, v* A
Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog# V. g3 S- X3 n6 }2 v" _9 e
Me.Cue = "Please select some locations" ' Text to be shown in cue line
9 y" r0 u8 [2 T- Y: A) ^- r& ]. @7 i
ptsBlock = New UI.Block.SelectObject
+ Y, O$ O5 X2 U; `4 B8 `* T* ~ ptsBlock.AllowMultiple = True
+ ]# o( H$ I3 J( K1 T& E4 p ptsBlock.MaskTriples =
$ M' b! z1 v1 O7 G2 a' D {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}4 ]' {6 \9 t% s: o9 p2 C5 Q
ptsBlock.LabelString = "Select locations"
8 Z; c( }- X" }7 N A0 x. { ptsBlock.PointOverlay = True- M+ _. P! k# t8 d9 z# P& ]' c- H
ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
6 x ]. t3 w$ D ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
/ _; O# z) A* C n6 j% t4 j" J# f7 y, B% v
' Add the block to the BlockForm
' V4 K4 G) a0 e) q! U5 B7 g. o Me.AddBlocks(ptsBlock)
. b. K/ T9 `$ }! [: _! W3 S
. s: B* }0 \2 n6 S; a End Sub
8 k$ e0 [5 X% l: b
4 N( f" e1 v P3 o5 H5 r% K Public Shared Sub Main(); X) Y0 ?8 ~/ V7 x% n ?+ N' G
1 r+ Z3 @7 i! Y0 n
' Create and display a dialog/ C `$ I% C6 O
Dim myForm = New SnapBlockFormApplication2()
* T; U$ T, P: s+ d myForm.Show(). D2 k0 z4 J+ r9 P4 b5 I7 v
5 O2 f- s V6 c5 j R! L
End Sub
1 R7 \4 H/ E T ~8 {$ ~6 R* @4 X" m) F; W* a1 [3 x/ K
Public Overrides Sub OnApply()
3 Y" B9 ]/ g% K V) p u& \) K4 y- D1 @
InfoWindow.WriteLine("You selected these locations:")
9 |9 H5 m' A3 }1 `$ p! D& F7 }$ }( n- n. A+ V# v
For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects6 \& p/ L# l1 m. l6 m. v
InfoWindow.WriteLine(anObj.Position)
0 w. M5 s: `, X8 Y# k3 ` Next$ ?* y" b$ Z# n7 e5 V: B0 c
& M1 O; C4 A" ^& W
End Sub' e4 R# F) ]; {; O/ h
& g$ H- v7 u! |. U1 ?- e6 t3 K Public Overrides Sub OnUpdate(changedBlock As UI.Block.General). s1 } _9 ]; W+ i4 g
w5 T y' f V/ e N9 L$ F$ ]% B
' This is going to be annoying so don't really do it!
; T; U6 j$ ]: L: c; U" }( f; A, e If changedBlock = ptsBlock Then
- {6 T; b4 D$ j+ `6 y If ptsBlock.SelectedObjects.Length = 1 Then
. A+ H! g G: E; e" t) @9 v InfoWindow.WriteLine("You picked a Location")
7 ~" Q; g* z7 O/ F! ]0 E) ] Else- {- t- u: K7 S; c& n$ i
InfoWindow.WriteLine("You picked another Location")5 J a, ^4 S) i- J1 q% q) M% c
End If
5 e' Y- y* p3 w& d( r End If! p; m) D1 d9 l3 ]3 R* x) v2 K
9 f/ K& i' M0 E. [/ ?: `( x
End Sub
1 r ^5 S- k o/ V) @* K _/ O- e, v9 K4 q x, y" M* r
Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer2 W- j! {; n3 D0 m
Return Snap.UnloadOption.Immediately
, T# M* V+ D; X$ U2 O9 T7 r" D8 i& u End Function
3 \ h) W5 T# R2 N. a) {2 _
6 @( z! c3 q$ f* bEnd Class
6 y9 G/ {5 W6 d# @2 X$ T8 e |
|