|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例9 [6 k) U( [ N( d3 ?6 h* O
* t2 u, S; P+ I1 W. G2 H8 C0 b9 V& y
9 o+ w0 b ~3 j5 N0 n
Option Infer On, w3 ~* _& q6 h" O
Imports Snap, Snap.Create0 j9 l' \( q! N) q' M5 O
$ m; q" R+ T7 F5 ~
' This is a very simple example showing you how to use a Snap.UI.BlockForm
5 m- f# L. d: [4 c# i' to create a dialog that enables the user to select multiple point locations at once.+ Q" N7 W5 r' K5 g; H$ Y
1 ~% I! y" X9 m1 @- I/ ?Public Class SnapBlockFormApplication2 : Inherits UI.BlockForm
; I p# r1 M# c9 t, T
# x; [, p! B1 c+ v% b/ x# u ' Declarations of the blocks on the dialog" I7 R' L3 K/ o9 v# e3 p
+ j9 t- j8 @4 P+ k i, ^! |" L
Dim ptsBlock As UI.Block.SelectObject
' D6 s# A3 E; U0 Q8 I" x9 e4 w- W S3 S. _, i! ~; v" {
' Constructor for a dialog object
" B+ {0 R: N c* l Public Sub New()3 [, F% {, |9 p3 V: [1 c, ^
2 h. A6 Y* V: y1 u/ a
Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog
& V. O. r' z T) J9 o; o Me.Cue = "Please select some locations" ' Text to be shown in cue line
; G% h/ F; S `( F) M1 k Q4 Z1 Q y1 @2 P9 |% j
ptsBlock = New UI.Block.SelectObject# k, V$ J6 j2 h( G! ?* _
ptsBlock.AllowMultiple = True6 V4 O0 r" a) o w4 _
ptsBlock.MaskTriples =
0 `* a" U" K9 v. f+ u z0 X7 r/ i {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}- c5 g r6 x1 ?. e2 x6 O# J* `
ptsBlock.LabelString = "Select locations"& t8 v. c9 K3 f E: s
ptsBlock.PointOverlay = True
7 f; }9 L! Z+ H% m- w/ Q* L4 m ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
' V; L0 h8 M- }) |! J& v2 p( ~ ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
: c' n9 d4 R) |0 C. o' O' v4 ^
7 h: T1 @; ~5 k/ m6 I3 c6 ]6 C2 A, S ' Add the block to the BlockForm
; k/ w$ J8 _6 k* m Me.AddBlocks(ptsBlock)
, O/ B' y6 {, ?0 B# H, j6 `1 l1 k$ R( ~ f9 g; ^
End Sub
+ p) p2 z4 w. p, ~) Y8 P) B/ k4 W4 b1 O. @2 ?9 G1 C
Public Shared Sub Main()
: S9 V" q$ q3 t9 S$ } \$ k$ ^& p% _# P
' Create and display a dialog* T* O4 w, C- p: j+ B+ O
Dim myForm = New SnapBlockFormApplication2()8 \' O$ @- R3 b/ R# o$ x" U! k7 a
myForm.Show()4 c) U6 `, F$ x7 k% h0 o
+ T4 _- [+ c3 x3 J End Sub
m$ |3 U% `2 D9 B2 t% ^5 W1 Q$ L8 \% u/ q
Public Overrides Sub OnApply()
3 I' ~, I- @: F F x5 y. k0 S- b {0 s" K* l! _$ y7 f8 g
InfoWindow.WriteLine("You selected these locations:")8 C: r, r) p& o2 g
( v0 v2 G( Q- k8 Q: B
For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects1 f$ g. P5 J3 n* S! W
InfoWindow.WriteLine(anObj.Position) T9 F/ r& n2 F: S" }- A! E
Next
0 _0 o# `) u% U6 o: Q$ y
/ h r" ^1 X/ c# W End Sub; c) F2 N) m& p+ u4 ]% A& B8 W
4 W, b$ E8 Z6 l% u7 ?3 p Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)) P1 |0 |% ?: Y6 Y1 J; w+ p
^3 H# L7 v4 S- Q) H) Z
' This is going to be annoying so don't really do it!
9 ~# ?+ J Q/ t+ ^: T! B If changedBlock = ptsBlock Then
; P9 b4 s3 z" D% ~: c0 U If ptsBlock.SelectedObjects.Length = 1 Then; c- B; n4 {' o% T
InfoWindow.WriteLine("You picked a Location")% }3 T8 [, f% e1 \+ a
Else
K! L4 J0 Q$ h) N& a% k InfoWindow.WriteLine("You picked another Location")
/ D P) b5 \# n J' T4 j0 d- R$ m End If
$ p3 m: s: J2 A( b. G/ q* q: N End If) s+ B' J9 l s
. f9 `3 G# s+ \ L
End Sub
. v6 w5 d: R) F6 C, C9 l
! J6 E Y! K+ Q! I+ m1 a Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer
/ c, q9 G' \6 u' U6 L" _( E Return Snap.UnloadOption.Immediately: E. t0 m/ ]- X9 W8 k
End Function
1 v: ^7 ^) L9 m/ _/ P. g7 ?7 E1 Z
/ j+ Z" Y; ?2 K2 t* ~0 qEnd Class- Y; B& \4 ?- I
|
|