|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例5 s' X, v3 X& d& m- W5 S7 |4 v. f
2 b. e/ P& D0 ~: z( D+ T. r
5 l) `5 a) g! @" X4 N6 l
Option Infer On
8 r# t0 \/ k `" ]) x: FImports Snap, Snap.Create! B2 V( [: t) m, i0 Q
+ ~8 i" s3 x9 `% a8 v
' This is a very simple example showing you how to use a Snap.UI.BlockForm
. \7 Q! b# l: ~7 ? F; J* \# Q9 `( E9 K' to create a dialog that enables the user to select multiple point locations at once.
1 {% S6 t- B- ?# {: T D6 E0 w7 Q
4 |8 [/ G! J% |( b5 w0 q) \3 C2 bPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm
1 c6 B, L/ L b$ H2 _
/ u) x- B/ L1 o8 L7 B3 }0 w! S ' Declarations of the blocks on the dialog
/ u0 ^! v" X- L7 o+ K6 X) L8 a4 h9 e4 p
Dim ptsBlock As UI.Block.SelectObject
) r* E2 V! |: P2 i) h
/ Z& f8 D' X1 i l) p ' Constructor for a dialog object
8 h* k0 q k% t6 _: s Public Sub New()$ K* p" h0 ]: l: g
, X/ E" X% T$ Y4 {7 t
Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog
% x# Q3 F8 \4 i Me.Cue = "Please select some locations" ' Text to be shown in cue line+ J6 |; u* o7 ]( ? w
6 n0 v1 p. P, t$ F% c o- `) c
ptsBlock = New UI.Block.SelectObject
, b- O% ~! [/ y- n6 T3 V ptsBlock.AllowMultiple = True
* G( E, y; m4 B# i3 J ptsBlock.MaskTriples =' W. G9 S8 N t& C6 r1 B! m! \
{New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}) R Y/ k+ e3 Z: L$ f
ptsBlock.LabelString = "Select locations"
9 h- q; _3 E. _$ E9 o: B- q; g ptsBlock.PointOverlay = True! U5 M+ m; M. s4 m1 [1 V! H
ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
4 T( @0 E6 }0 g% ^ ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly8 I- W% l; o# p( V; `6 D
3 N: k" v- D0 l; M
' Add the block to the BlockForm5 U) ~ J$ Z5 Y
Me.AddBlocks(ptsBlock)+ B; P& r; y9 ?% X# Q# R: p V! P
7 {: Z1 a2 [9 N3 V- o; k8 ?) ? End Sub4 y3 S3 L* E, f/ a
7 |5 ]% }" e8 y5 ?; ]8 k1 B" U0 M Public Shared Sub Main(). F4 W" ^! q* ^, ~, R% s" T6 @
1 |* I3 S5 r6 R C, E3 E( k
' Create and display a dialog
+ P E3 u: Y* t8 O& n- k Dim myForm = New SnapBlockFormApplication2(): z: _2 W4 p* p9 z' N7 n' ~# `0 u
myForm.Show()
, ]$ x" K" s3 h3 n
" a7 t r9 Y+ }7 i# u' q# K End Sub
- k; B: k& J" W2 S) O$ J0 y. d4 `& e, h G! {0 }+ h/ @
Public Overrides Sub OnApply()
! e a/ n* T u/ m2 E' I
# G3 k1 m% [$ p: U" Y InfoWindow.WriteLine("You selected these locations:") f$ I/ I+ u# U$ N" j4 @
! v# Y; ]4 \ |4 @ For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects
1 g# A4 [ N2 q' ^5 H8 Z. R$ t InfoWindow.WriteLine(anObj.Position)
+ p) r+ c) i6 l6 w7 V5 J, h Next8 r& U' K6 l( K: d8 }4 V5 j
, f$ G! J5 x1 b! A/ J
End Sub% |. y! @) V% L6 }
! T, R$ K8 {0 y' L b$ j Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)
! n" \! D0 N8 J% r3 B% U# K0 ?! R! V! q# f) V/ n
' This is going to be annoying so don't really do it!
6 f. x& B$ X3 V o# M h% u2 z( V If changedBlock = ptsBlock Then
# B, W/ q* b4 E# f4 X4 }9 ]1 M If ptsBlock.SelectedObjects.Length = 1 Then
: A0 M" G: G' q8 h7 X& A InfoWindow.WriteLine("You picked a Location")) I. K( f. K: Y+ k+ {3 w& v" j
Else' P9 y! ?& l+ V) f
InfoWindow.WriteLine("You picked another Location")+ J \1 \) r5 p" t8 d6 g
End If1 Z2 m5 q. @3 z7 ?7 U2 o2 W; X
End If
* ]0 `1 @3 o, @) `# X9 _0 c' ~3 \+ n7 J6 J
End Sub2 \& v4 Z/ X2 ?. \9 H. u! C3 N
* w+ s; O/ H0 n z* a. k
Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer
* w5 k' I) C3 W0 V R' A2 C Return Snap.UnloadOption.Immediately
* m: m' R/ M; E! d* Q+ t End Function
, K; H" I! Z/ `2 g/ @4 ]8 U! o8 j) c1 `# z; e' ^
End Class" @# q8 G; t; o0 n; K
|
|