|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例' S: ?1 r5 @( {0 N+ P
" r1 N* V0 P! N
5 t! p( `( j+ ~; @; c( [Option Infer On
' _) w: O0 _7 h: I5 k6 v: hImports Snap, Snap.Create
5 V4 G& i% @+ ], [+ l
6 \7 u1 Y+ C; V' t' This is a very simple example showing you how to use a Snap.UI.BlockForm
: g- G( Y$ n, L: R- B) V) n' to create a dialog that enables the user to select multiple point locations at once.
8 W/ s& T4 F" ]% U% Q! _8 q1 b
# ^5 z/ x+ u; iPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm0 @! v, w r. R) J9 ?- M6 [8 U$ ]
+ C% N2 N8 e; {, ~7 b* t ' Declarations of the blocks on the dialog( F J* [% E& m/ C+ I2 Y
8 ]5 I' [; p8 N. u0 G( i8 t
Dim ptsBlock As UI.Block.SelectObject
9 | r; Y) d3 q) s; |9 U: F7 R' _. H3 u) k# W' t1 ^
' Constructor for a dialog object. z$ l' g# l: E
Public Sub New()
$ @3 M2 m( x* w$ U+ h: { Y
( o2 F, k1 W3 Z6 R, N0 ~ Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog
( O1 f' C4 n# `7 }- k( b Me.Cue = "Please select some locations" ' Text to be shown in cue line
' m1 l' y+ B; p+ V6 I! @0 m {0 L. Y. B. v5 `$ O2 n" k2 }
ptsBlock = New UI.Block.SelectObject
9 r1 o) _# @/ H0 O ptsBlock.AllowMultiple = True7 V9 ]/ {+ N% b6 S) W
ptsBlock.MaskTriples =
6 b2 i6 d! p' |/ `1 { {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}
2 B5 q# G+ l: }6 P! y/ P ptsBlock.LabelString = "Select locations"" m% A* s! [1 F3 ]2 T
ptsBlock.PointOverlay = True5 k9 N) h" _7 B+ L5 A+ n
ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
; W$ L2 G0 d) e% o$ t/ ] ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly9 T# \, T/ l8 k5 O- [+ U. p
! X4 R1 S6 A- T ]; `
' Add the block to the BlockForm
4 V1 Q# z" V5 R4 h5 M: r Me.AddBlocks(ptsBlock)
) Q5 ^7 A! a p+ T
, ? k$ n& k: _" ^" E End Sub
' I K' M+ O! N4 z8 m; x" U, z
- z3 y& T' p7 S0 ?! g* u1 | Public Shared Sub Main()) b2 O' t6 H% A/ A2 L
! W& z( ^: R @4 t. E6 r. G ' Create and display a dialog
7 U* b, I4 t3 z Dim myForm = New SnapBlockFormApplication2()
& P7 _8 v: |3 u& l: N$ z6 c0 D myForm.Show()0 r# h3 [6 F7 T( G0 J
6 Z4 c: E& F( V
End Sub
( @& T+ y+ u8 K1 R2 z" f4 Q- y. b( s L! a" p
Public Overrides Sub OnApply()
p. D8 I2 g. _: n. h
4 t4 @' f; c: G7 X2 c InfoWindow.WriteLine("You selected these locations:")
2 g3 h# l0 m0 _ t
+ A% H) B$ }8 P3 y- j For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects( `) E' O3 E: r" r f. `
InfoWindow.WriteLine(anObj.Position)3 {2 W. c% i* \$ k8 f% l
Next
6 Z% |+ X9 Q' y E3 h+ f6 |, Q9 }' Y
End Sub; q, k5 O# d+ Z/ q, U
+ w$ s+ r3 J! f4 f1 G
Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)7 F( {, M; `* T- @9 l
0 ^$ c0 T8 l3 f, i" I) I7 q: D0 F ' This is going to be annoying so don't really do it!. v9 g d2 ~ g' `& Y
If changedBlock = ptsBlock Then! m& I: R6 S; _) b* g. d
If ptsBlock.SelectedObjects.Length = 1 Then& m- o, v! Z. N8 j
InfoWindow.WriteLine("You picked a Location")2 ]# M W/ v" a$ V, A" z$ j# m. m
Else; ?/ g) M! S+ `% `2 c [
InfoWindow.WriteLine("You picked another Location")
+ B# k7 U6 A1 T( A0 [* z End If
Z3 @8 ~) L7 R8 X# L7 z9 N" L2 N1 ` End If F& a6 R) R& \% R2 H
' [: W+ z! A1 n }# { End Sub
: I) t' `1 ^) F9 Z1 j* m
) I ^2 i6 o' E0 w Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer
6 j0 ~5 p/ D6 ^. W0 S% C Return Snap.UnloadOption.Immediately' G6 ~5 U: `5 B- c% @2 V
End Function
8 G: G @4 b) y0 p. E
- j* _1 |8 m% s. U3 g+ _ Z9 l# o2 XEnd Class
1 e: d) z! {9 Z* k; Y- J4 e |
|