|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例2 J6 K. x5 u1 U! W9 Q. D3 ?
+ k7 A# P+ y# z
d, V% `+ M4 ]& C+ T: Q: k6 o
Option Infer On* ?8 s N3 o- H3 F. U+ {
Imports Snap, Snap.Create
* [9 B& ?! C' P1 y. w( B1 J
9 ?) I3 o% g+ x0 t- M' This is a very simple example showing you how to use a Snap.UI.BlockForm" C! Q0 u, A$ ]2 A4 `( o0 ?) c
' to create a dialog that enables the user to select multiple point locations at once.
8 o. y! r: Q0 G# b1 U+ f
9 l+ h% C# m6 O! }1 LPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm! ~ n( T2 i6 C% J& k
! E0 n$ h$ g `. I+ j ' Declarations of the blocks on the dialog/ M. e1 u5 ]# ]9 w2 C [- S. k
/ b, v# T* ^( K9 o0 I+ d% T Dim ptsBlock As UI.Block.SelectObject0 l% }. u! G4 Z1 k$ L6 T
: A# K6 v. G3 `" _; M
' Constructor for a dialog object$ i/ z! V6 W3 s( x. k1 ^, d) T6 f
Public Sub New()
O5 {' ?+ h3 ~2 E* A7 @
( K9 R8 ~+ c5 c; I. r Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog
8 o5 d$ m9 f2 S6 l; ]6 g6 n Me.Cue = "Please select some locations" ' Text to be shown in cue line
6 ?: i. q0 S9 @0 `1 m% a+ `9 y' @* u/ c' ]2 M/ u1 U" L
ptsBlock = New UI.Block.SelectObject
s0 j# N) O' D2 s2 e5 R; v ptsBlock.AllowMultiple = True
% x2 U* N. K9 L; [- \- y ptsBlock.MaskTriples =7 w' ]/ V; Q6 H* H
{New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}: `, p- \8 _7 G8 H3 n
ptsBlock.LabelString = "Select locations"
; x J; R* b( {0 d5 T5 D ptsBlock.PointOverlay = True
" n0 e( X2 [/ Z- t$ h ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
5 K6 D; F: m! D2 n1 A/ |! \0 l1 m9 z ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly4 `3 ]5 x' A$ T. W* _7 c
+ e- {! I/ h0 L* b, b ' Add the block to the BlockForm' w; E# |( z( d! \- _* N; y1 w
Me.AddBlocks(ptsBlock)# ^* k; i+ N- r5 w8 E# m0 B+ G
* E1 g3 z& V1 D0 i End Sub. ?- U* p0 A1 P- t: K! \- P
0 b% l; e6 ]+ \ m0 a0 G Public Shared Sub Main()3 F$ c1 g h/ t k0 S0 ?: ~
* d4 k( O _. w) k ' Create and display a dialog
% U# b7 |' F+ W' N8 R Dim myForm = New SnapBlockFormApplication2()0 Y5 r- A- U- f, k" A
myForm.Show()6 B+ i* g; j0 x" W
1 L5 } m9 }2 a# [8 o! O* v End Sub
- `6 ^: L6 L$ I- }8 s
" n4 j" r( r5 k5 A2 p Public Overrides Sub OnApply()4 {7 p8 p5 T: D3 P. ~
: S v3 S: n4 W% r' e6 e InfoWindow.WriteLine("You selected these locations:")
4 _: X2 Z/ O; C$ @; K; ~& I. v# X, |; G: _3 X8 H, P
For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects7 H; Y( _8 B. A3 J7 _& c! d
InfoWindow.WriteLine(anObj.Position)
1 W7 P* D/ {# K4 f Next
0 h; B7 v+ W, Y& w; g1 a! M- G2 t4 E$ w
End Sub
' K; w- d2 y6 ^: e, d1 s: ~, {0 n% ~# C) h) [; p
Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)
; _2 E6 N4 W3 H; w4 t! p, }! x8 d' Y0 h: ?' X4 H) [
' This is going to be annoying so don't really do it!8 e8 l( ]" L9 g% J: W ~5 T
If changedBlock = ptsBlock Then
0 B- g0 v* Q# t! I. F If ptsBlock.SelectedObjects.Length = 1 Then! I& O V ~/ r2 R& i
InfoWindow.WriteLine("You picked a Location")
, D' J) q) |1 x# R8 T Else
4 r; a+ j3 I- C8 |. ` InfoWindow.WriteLine("You picked another Location")
4 _- k4 g* P4 q v1 Y End If
: C. L1 P* ]7 } End If
; A7 O' _8 W& x2 f; r$ a9 H; e- e4 t7 {
End Sub# f+ [3 O; C+ {& `6 }. }
0 c8 G# s3 l- u6 ]$ M9 P; n4 x Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer
7 W3 H2 Y3 ^5 u+ W' q6 C+ h8 r Return Snap.UnloadOption.Immediately
' c6 [) @% ~0 k9 K% x) i+ e1 b End Function
8 [$ f2 M2 I2 \# X+ ]' X- `2 ^4 y' n0 t
End Class
. |8 d- M* T T7 m |
|