|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
通过对话框选择多个点实例9 `! R6 U+ u, ~6 l) `, ^0 D
6 U& q4 q; K' R! D) T3 O% s) m) @' K% q' S! L+ n, p/ o
Option Infer On% ]; R5 y. |3 x3 [! c
Imports Snap, Snap.Create2 {: b8 @+ @, J$ g! L0 J$ p
7 B6 d4 j0 V3 w* f1 t, T' This is a very simple example showing you how to use a Snap.UI.BlockForm
9 T6 P: P4 B6 D" \% n' to create a dialog that enables the user to select multiple point locations at once.4 J: X% B7 Y$ ]2 }9 W6 k* H
@8 i$ E) L; _8 ]5 a% |
Public Class SnapBlockFormApplication2 : Inherits UI.BlockForm$ H1 G4 P6 a9 }* }% u6 x
: l. q1 [4 y7 r# M: c% e! F ' Declarations of the blocks on the dialog0 `6 l- C% a0 G [: I+ _; c" k$ @
$ f6 ~3 U5 [' u6 p9 A: H
Dim ptsBlock As UI.Block.SelectObject
. J% {% Q4 c. y, ?, n
0 ~% y. N3 I0 P/ \ ' Constructor for a dialog object& v, n4 M* r' h6 U; h% q
Public Sub New()
+ `, g" D4 Q- v. C ~4 Y7 ?4 T7 k" B! x8 k( ^& S
Me.Title = "Select Multiple Locations" ' Text to be shown in title bar of dialog2 {. ~; l# v+ M1 v# @# T( d+ W
Me.Cue = "Please select some locations" ' Text to be shown in cue line- x: P+ N2 ^# K4 r- ^
6 z# X2 a6 b/ x5 W8 B& _ X! ^, c( L1 X( y ptsBlock = New UI.Block.SelectObject
0 b( q, M# \& y. h" n9 _$ T) U; A9 I ptsBlock.AllowMultiple = True
) F1 R3 q% H' }$ w ptsBlock.MaskTriples =7 s7 d0 U- X# g7 a4 @; C4 s) m7 w
{New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}- P+ e# h& E: Z+ g) w4 y0 B
ptsBlock.LabelString = "Select locations"
& _# ^* R U$ {% G& T' I0 T2 Q ptsBlock.PointOverlay = True/ c$ C0 }/ k8 W w" g
ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
3 ?) B: o% ^5 R0 ]) I3 A ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly$ ^- \- D# J- z! q7 Q
& f: L1 Z5 o; Q! d7 v: g
' Add the block to the BlockForm7 B1 t y/ B3 d8 k" b5 Y
Me.AddBlocks(ptsBlock)/ h) C: [/ N3 G, {
5 }2 Q5 D3 g/ O% H \ End Sub
1 p' p+ F0 f) e; F! o, }$ o+ E1 t
# ~; [$ j6 x% @$ j) v! F Public Shared Sub Main()
- R! y: z+ J+ B6 a7 v+ g9 j% X; ~5 F4 X
' Create and display a dialog
, s) p/ u1 r( M6 Y& p) L Dim myForm = New SnapBlockFormApplication2()
/ T, q: B0 _2 ~7 u. C myForm.Show()$ U5 X& f$ Z( g9 |$ J# c; A& D% d
$ y; ]1 C% Z6 E5 B End Sub( v S5 |4 N6 z$ r& t" T0 w; z# H
. k4 l# s' C+ }( B Public Overrides Sub OnApply()
9 P1 @, E8 b T e) Z9 v" V( M; Z/ n- V# i. c
InfoWindow.WriteLine("You selected these locations:")
Z9 D; t$ F5 ~' [* d3 k e
8 b: Z: e, g/ ?1 k For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects
. u3 K8 a R3 @. i$ x; G InfoWindow.WriteLine(anObj.Position)
0 ~' i" M% F' H; N. s Next
0 o7 q8 V" O4 K7 m) O, Q2 \; w. ?. G8 y1 o7 y" L( Q
End Sub
1 m7 m, G( h% [: q+ p5 h4 N- S2 |, n; U9 W/ U7 V% B
Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)+ B/ B9 q! {. W( [+ p
4 }% }& N$ |) O0 `+ C( K ' This is going to be annoying so don't really do it!1 }+ L- o% k; P
If changedBlock = ptsBlock Then
. c% w9 z: r2 [% m: ] If ptsBlock.SelectedObjects.Length = 1 Then% W1 _3 O5 R7 Q8 E3 E% H
InfoWindow.WriteLine("You picked a Location")
+ e" A) t* C1 G8 B# N9 E Else% X" r& \$ t0 H+ R3 d5 R% n, @
InfoWindow.WriteLine("You picked another Location")
/ f0 V) P' @9 S2 y: \% i$ @ End If
5 B. j$ c9 C( a7 U End If
& O1 H1 c" R6 [3 |- T7 J/ e* Q( T$ i6 Y5 @
End Sub( K& z7 z; l/ R+ O5 O* V
+ v) z* w3 I& `& `. P( [ Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer% L3 X: L2 Z5 l) n1 c2 Q6 i# ?: q
Return Snap.UnloadOption.Immediately
: I" [4 M1 ]; N5 _/ D6 x End Function, V9 _ R; c2 E4 q
# Q2 i$ n3 f! E8 `# z, G
End Class
3 l/ M% P* P2 P/ M2 | |
|