|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例- F% E% n+ _6 v
' c- Z+ f2 N/ a/ n/ C# w! L6 d7 f
* v" C7 O8 I9 u* ~ O8 v6 n2 WOption Infer On3 _$ K% f1 Q! Z! Y/ n8 l
Imports Snap, Snap.Create
' I! { q9 Z$ m$ H) _7 ]( y3 u0 p" t. l: t" q
' This is a very simple example showing you how to use a Snap.UI.BlockForm
6 j9 v) V) ^2 G% h1 J; w$ ]' to create a dialog that enables the user to select multiple point locations at once.0 a! l5 t0 y+ o3 e5 B' g
# X! t, \: e$ |4 G, @3 |$ ePublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm+ l7 h* ]/ l' x4 c% r4 t5 h" X) B
6 t+ J+ N6 _/ h7 k; ~! U" G$ H# j
' Declarations of the blocks on the dialog0 v3 N9 E# ]6 N: n6 i- X/ d
4 p3 R) f# J5 I* |) \, @
Dim ptsBlock As UI.Block.SelectObject
# q f1 \2 R: h' J+ O+ g' z0 `, N
7 V/ Q+ w }4 i" Y: l( Q4 k ' Constructor for a dialog object
' n+ y Q% x: t$ | Public Sub New(). w, b& A% Y" x* @" H( g/ P) d
& C; W; L8 A5 e }1 z7 r Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog2 ^- w' q" h4 H
Me.Cue = "Please select some locations" ' Text to be shown in cue line
2 t; u, f( m7 n' e' ?$ w' Q5 D/ ]$ A8 D) \ l
ptsBlock = New UI.Block.SelectObject" n# h% F) P, T/ t- ~3 I1 u
ptsBlock.AllowMultiple = True$ n" H/ z3 P1 s9 z" Q
ptsBlock.MaskTriples =- \+ e3 {7 }+ a) y9 h
{New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}8 y' l) A f- Z7 F$ T
ptsBlock.LabelString = "Select locations"& ]0 Z* R4 q. {# H4 T+ G- M
ptsBlock.PointOverlay = True: d. ?2 C5 n/ r
ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)! V8 O: `* f: j/ ~! q9 J
ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly, t+ z6 o5 l* g# w
' F5 _5 I8 Y7 s2 \
' Add the block to the BlockForm. |: Z0 `0 k' v) ]) `
Me.AddBlocks(ptsBlock)
9 {& l+ O: @: k
! D7 L: y" Z! _ End Sub
, U) F+ l* G; o8 s5 c5 B3 D7 q1 n% U+ Y- {8 r1 o g0 D: S. y
Public Shared Sub Main()8 C* g# L0 I; q4 D: C2 I2 U- y' y1 w+ ~" k
: o: x! U4 I6 R3 W4 ?, z- _ ' Create and display a dialog/ M2 O+ }/ F' D/ D
Dim myForm = New SnapBlockFormApplication2()
; k* g* A( [$ q6 M) e6 C1 w+ p& O' ?* M myForm.Show()
" o7 k# J, Q$ J& c# m
, f# q: A, P4 C6 {7 ]6 p ~ End Sub7 f3 J/ Z$ W' o5 j
1 G: u+ g9 E& b' l
Public Overrides Sub OnApply()
, f' T, q7 Y I) Q, E# ?
* w3 p. H$ b8 X InfoWindow.WriteLine("You selected these locations:")$ W, t/ g) u9 A: r8 }5 D
) J/ q: G! N5 {* j! H0 Z
For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects8 f/ J7 C+ u: I, I, D( Z7 _
InfoWindow.WriteLine(anObj.Position)+ \/ J k' P$ N5 n2 }/ {
Next3 \. U- @9 u7 g5 T/ ?' ^. ?1 [
% H8 B4 O8 u/ O4 `" F End Sub
0 Q" q. d4 p, p% n1 R. g4 r6 G6 U6 o3 `0 {; i) G
Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)
7 q) J; N. p3 ]" Y# z9 r. y4 o4 F7 a3 j
' This is going to be annoying so don't really do it!! N2 L4 L }5 Y6 H' s1 m }
If changedBlock = ptsBlock Then
3 M& x4 m& S9 H; H( j. k If ptsBlock.SelectedObjects.Length = 1 Then3 z' }# P! B/ S
InfoWindow.WriteLine("You picked a Location")) G. n% ^# ?" e1 m1 \$ N3 Y7 a: I
Else
8 @/ Y) S/ p f3 n3 i( ? InfoWindow.WriteLine("You picked another Location")
0 ~1 N) A) X/ D End If$ ?2 V6 m: L9 { V. W. [. M! x) b
End If
3 i4 s( p4 ] A0 b8 z0 [% z
6 F2 i/ P8 f+ K/ m0 O" y2 R: ^ End Sub8 K; u6 r+ q v' [
8 G" t- ?% R; J. |3 A
Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer
6 o* G v! R/ x# e { Return Snap.UnloadOption.Immediately
# F4 h9 t5 b1 m& K End Function, G8 A" t* K( m
: }7 P- ]! x4 k/ ]* XEnd Class
& R6 f. m/ I+ C6 `' n5 q |
|