|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例
+ g( R7 ]3 a0 }9 F: j
' q R8 V1 O5 `9 r1 _ w
4 j. j* v8 t9 T* B3 kOption Infer On
4 H! |* Y8 t. G, i+ [Imports Snap, Snap.Create
# ^7 O. }1 W$ P, }9 D! ^8 @0 V/ t0 t8 V. v; k+ w3 P
' This is a very simple example showing you how to use a Snap.UI.BlockForm. q' G- y0 O" ]- T4 ?4 [$ F
' to create a dialog that enables the user to select multiple point locations at once.9 V0 Q, a1 ^1 w+ _7 h
& G0 k8 s6 m5 _# t5 ^0 L$ b
Public Class SnapBlockFormApplication2 : Inherits UI.BlockForm
/ n! x. w& [' m3 b0 g2 f" ~# L& H& g$ N5 U
' Declarations of the blocks on the dialog0 D: N, R Q% @* J% N
- z; `5 I+ {, @3 _6 ?, d1 r Dim ptsBlock As UI.Block.SelectObject$ v& k8 G! r8 D' l7 c7 w5 B# f
( V7 H- I& K5 X/ a0 H: Z+ s ' Constructor for a dialog object' I% N5 ^3 X5 p2 x) K H
Public Sub New()- k0 v B1 R! {
! p7 L% ^+ r# F' Q6 M Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog+ _( M+ s* N9 x" b/ y1 }% x' w
Me.Cue = "Please select some locations" ' Text to be shown in cue line+ l$ j1 M: {( N( z- f- ]. U
& H3 P* d/ ?. ~' ?' s ptsBlock = New UI.Block.SelectObject' J2 ]7 ]8 U6 U. {7 P }9 W
ptsBlock.AllowMultiple = True
# Y$ l8 t9 j5 X! H; i ptsBlock.MaskTriples =
/ `. C3 U' X1 R" [! F8 o {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}
9 I; `& r8 o, M4 @: l) }; F ptsBlock.LabelString = "Select locations"
( O2 s X3 {( I( C# y7 w; z ptsBlock.PointOverlay = True& c6 R+ U% l% o2 f1 \8 a
ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected), B. c7 t7 x% ~, V
ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly5 _9 G& ?+ l" R& ~+ o; b
8 i) l5 H; R% I3 B
' Add the block to the BlockForm: a% m: j+ F3 q/ \+ u
Me.AddBlocks(ptsBlock)4 S" `7 z3 Q0 R# `
, M! S) y5 Q4 b- e) L3 D End Sub5 A- ^3 Q9 H+ Q: S5 {: K5 c& S' O
) H. S, L, ~" E: h" N1 k Public Shared Sub Main()
% l! e; w% t( a: {6 r; V" \. c3 ~, c3 h( ]
' Create and display a dialog
4 M& l5 q0 O, r Dim myForm = New SnapBlockFormApplication2()
: y; W* c6 F+ U; i+ ] myForm.Show()
( [$ f3 l2 e, F, R# u+ }5 T1 {/ M: r! P+ H/ A: |
End Sub5 }3 i% n H o& g6 X3 o
: f I/ y9 C, W/ ~* S
Public Overrides Sub OnApply()9 `) T9 L! q7 B* u* T! j
, _: e9 a% n- f
InfoWindow.WriteLine("You selected these locations:")9 ?0 q! f- e* m3 m4 o# }
2 t* C* O! I$ j! [/ i
For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects
$ X1 g) I3 b W( x+ S& a2 I3 T InfoWindow.WriteLine(anObj.Position)
}* S. h, O* F( X3 J Next
4 r1 s7 M" z" @# O8 I+ q! Q3 v" [3 j8 P5 f
End Sub
# ^$ B) l3 s9 s" h
; Y1 C1 ]$ q9 Z. Z& W+ x Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)8 P+ z: _6 T1 ~" f# H+ k: ?- ]
! D1 N0 S. w) l, l2 _: ~2 o+ x ' This is going to be annoying so don't really do it!
, B2 _* I% h* r* X! J3 X If changedBlock = ptsBlock Then
- ]5 I. T Y# a If ptsBlock.SelectedObjects.Length = 1 Then- u/ ^. g, U' M0 s
InfoWindow.WriteLine("You picked a Location")5 }, A9 E; T/ B$ [9 Q
Else* j5 y4 u6 J' F2 O$ {- J
InfoWindow.WriteLine("You picked another Location")$ y+ g9 O( H8 v8 j& R7 L
End If
% B/ Q% N1 ^+ M/ f" A: `: o End If4 v0 d: A: F6 f% R5 {/ ]
1 G* }* V z; S0 T0 W End Sub
: S9 g) G. r- K/ B4 M' h( h0 X* d: B: V, i/ \
Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer& H$ T A( T1 r: k q: ]
Return Snap.UnloadOption.Immediately
0 C( ]* i5 U# M! q7 g5 t5 V; e End Function% v; A2 L1 r- C% E
# ^1 {0 p) r, {+ W. _0 a) M
End Class, i% Q( i4 k: T5 l/ s) F6 ?
|
|