|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例
! k3 i, n- N" \
4 j/ ~. e; W7 Q# r
3 b: M8 ]( q- R" q' H8 ROption Infer On
- t F( W U2 Q$ w4 xImports Snap, Snap.Create
$ K+ r+ B! H- u$ n7 D
( @ a) t" k% _+ V6 Z' This is a very simple example showing you how to use a Snap.UI.BlockForm3 J* ~2 G* I5 e
' to create a dialog that enables the user to select multiple point locations at once.
6 ?0 G. M G% \* I
. R4 {: ^% H0 c5 Z1 n: t, U. uPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm
" {) W6 T& Z& b+ t+ f7 Z8 m$ i
6 f8 ]3 k' A' W% u. c9 z ' Declarations of the blocks on the dialog) i; `1 b$ j" e9 \; Z" }3 H
9 T6 R2 @3 x4 t/ n; n q0 g Dim ptsBlock As UI.Block.SelectObject r) V& W1 `6 ?6 _1 a+ l
( b& q6 t3 P, |6 G ' Constructor for a dialog object
' v4 G& s: z9 @: }0 t# P6 ] Public Sub New(). n! F3 K) c, ~* |; j; z& v
- G9 B& _8 ?& R! C1 j( e8 ^6 C Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog
6 f; A8 p/ D! W! n" z2 ~ Me.Cue = "Please select some locations" ' Text to be shown in cue line
% u N, c1 x% W9 O2 y+ ^7 Y
- Z/ H% Y, ^8 |" r' T3 ]' z ptsBlock = New UI.Block.SelectObject) l0 h- c# Q$ o/ t8 K% h
ptsBlock.AllowMultiple = True
5 i3 t e. s4 j9 w ptsBlock.MaskTriples =* v) M* [9 Q+ D9 m4 y. c$ f
{New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}8 E* }( r+ {. L8 L, z& ?
ptsBlock.LabelString = "Select locations"
7 ^4 V, {9 T( z) N, ?0 [2 n ptsBlock.PointOverlay = True
5 r- r9 ^( V6 c) `/ v0 J9 F ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)! {0 u3 ?1 f w2 d) U5 A
ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
. O1 D9 `$ K/ {2 p, l/ P. N$ l. Y6 |3 _ F8 R
' Add the block to the BlockForm
' H* W5 a* x+ Q/ J( k' X. y Me.AddBlocks(ptsBlock)
1 \6 ^4 r i0 x% y s% t- {$ |+ t2 [" {3 ~+ z9 Y' X
End Sub' `) \' u$ J& K5 b r
$ M1 l# y" U9 k+ U$ ^+ l+ I E Public Shared Sub Main()
' s- G6 u0 g$ C& g7 v' l& |- I) H# }& ^4 w! ?0 b9 z; L
' Create and display a dialog
7 {9 z, w z. g7 [ Dim myForm = New SnapBlockFormApplication2()0 W: r7 B% ^) G9 h y
myForm.Show()
# K: d: ?8 d+ E) I. P
V/ a. W4 o0 P6 J4 w8 i End Sub
7 u- ^! L+ A( U4 c7 l7 {3 }" G0 R5 v4 X
Public Overrides Sub OnApply()
: w N' b0 E6 N* u% Q8 r# g5 b% F: Q; f9 w
InfoWindow.WriteLine("You selected these locations:")
* |/ `" P' f( v% b+ O, Y
7 N y( d( a6 X. u+ D( H* G: N' ~ For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects4 ]/ s0 |- }& ]. y0 L: J
InfoWindow.WriteLine(anObj.Position)
|; I! F, \ t0 o Next2 U4 {* k/ Y& T( b, M; v+ I1 p
( I4 p5 L. g. p2 ]! i4 X' | b
End Sub
" D7 }; e# e" u" k2 x& u: G P' o
Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)7 J2 N: M1 [- i9 \4 B
1 m9 g8 l# I% c
' This is going to be annoying so don't really do it!* I- X; {. @# _, Q3 H- @
If changedBlock = ptsBlock Then
4 X6 S% d$ N# {. @ If ptsBlock.SelectedObjects.Length = 1 Then
+ Y: Y1 P7 e' k InfoWindow.WriteLine("You picked a Location")
/ N/ P" P+ ^( d5 c* u% i! g1 B4 D Else
# c. U n2 ^7 k* z InfoWindow.WriteLine("You picked another Location")9 F5 ?, Q6 f) F, y
End If
$ d1 e+ k# ?( F1 u) D8 ?. N End If
8 C! i' ?9 }& q6 Q+ R
$ Y2 a) E4 t# U0 g# K) g2 E End Sub
, O* X) G! P3 b& e
" D* ]7 @" ?& @+ _9 f* k/ x Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer+ _1 z' I* p( G5 f" K6 X4 a7 G
Return Snap.UnloadOption.Immediately
& [# a N- M' g: g End Function# H- O4 i, r6 B. r; P( u- I2 O. C
$ v0 `( G# e2 P6 l: O4 v; CEnd Class+ Q# o N- F. c! r
|
|