查看: 4338|回复: 0

[图文教程] 通过对话框选择多个点实例

[复制链接]

4

主题

3

回帖

44

积分

管理员

积分
44
发表于 2017-1-16 15:27:51 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

×
通过对话框选择多个点实例
& G6 F- ?! _% D7 k$ \" S& c6 a0 r' u* R: `4 S4 o+ y

4 R% k4 f  l( M7 HOption Infer On
# r& s! @1 ^4 p9 s5 K$ N$ UImports Snap, Snap.Create* h" T. N; m5 \9 P: K; u+ P! @- A

: R0 \) V4 Q) G/ N9 `; f' This is a very simple example showing you how to use a Snap.UI.BlockForm
7 L" A8 @4 |! G0 N, R' to create a dialog that enables the user to select multiple point locations at once.
  i' s+ Z  ], p+ v* ]2 H  i
' m7 n2 U4 d; p* \5 K9 W7 d8 H# OPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm
! g- Z. @9 r0 X  ]0 y& y! y0 i; E) q, a/ ]0 z2 t/ x
    ' Declarations of the blocks on the dialog8 Y9 {# z% f9 _- n

* x, h9 w1 P7 m    Dim ptsBlock As UI.Block.SelectObject9 C3 @" _8 q, y; v- Z7 r. A

- s# m2 |+ ~. @    ' Constructor for a dialog object, d3 |8 S3 g$ O/ e8 }
    Public Sub New()% Y# @8 _3 a. d# a1 a* \
# L1 P' N5 R0 {4 i# V5 A9 I- L: ?
        Me.Title = "Select Multiple Locations"  ' Text to be shown in title bar of dialog2 j# H9 w5 c+ _
        Me.Cue = "Please select some locations"   ' Text to be shown in cue line  M- Z$ j# X  x
0 K9 n3 q! `9 d5 Y
        ptsBlock = New UI.Block.SelectObject
5 j; s6 @0 R1 h6 `" {& t        ptsBlock.AllowMultiple = True
. C' {5 {2 S9 J2 i* o! x' b+ H7 K        ptsBlock.MaskTriples =  \8 o4 }+ t2 i( |# A
            {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}- c0 r* B% c4 A7 j1 ?& v6 v
        ptsBlock.LabelString = "Select locations"
' z8 [8 g3 m9 ?$ k! u8 k' p/ ~0 a        ptsBlock.PointOverlay = True
3 F( U2 b( p% `3 b4 w* M        ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected); ^% @7 v4 N; z$ v  S" U
        ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
& X; r% w$ W0 ^6 `  e: W7 i, Q% j: G- `2 B* _
        ' Add the block to the BlockForm
5 g; E, y. e4 i$ B% }2 @& y        Me.AddBlocks(ptsBlock)- j8 {5 K0 N1 O* J( ]& U" f

! [  b6 A' N# y& @    End Sub& ]% r# K) G/ c- d6 H7 x

& x8 x2 `% `  b4 \    Public Shared Sub Main()+ z1 c* _- J% D. a/ s9 g- I9 F

- r- w5 r* Y' m" l& ~# L! W0 {        ' Create and display a dialog1 S; w1 r7 B, g
        Dim myForm = New SnapBlockFormApplication2()
' O* E5 e3 ]- r1 [. ?2 u, j        myForm.Show()
' M2 P7 ~4 ]- D3 O/ X( K. e, m8 O+ R
    End Sub; Z- t# e  l1 n
- y8 y6 i  i/ F1 H( s
    Public Overrides Sub OnApply()
9 T2 X2 l( B: A& Q7 O- B' X7 l( Y- q/ v3 l$ V( i
        InfoWindow.WriteLine("You selected these locations:")1 i5 B+ z6 k$ ^* i8 f( J
2 N; H- P5 q+ g
        For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects3 y6 f2 q% |5 p- ?
            InfoWindow.WriteLine(anObj.Position)
5 i' A* [4 i; ?- H/ c+ W( y% c( H        Next
* T1 m  t) p) j) {* @+ z% y* R- k4 C) i1 A0 Z* H
    End Sub
5 @' m6 M% m. R9 k6 R9 _9 z  O( q& A5 F9 P0 A# m* q' R
    Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)$ s" C6 w  ?- M' c2 f$ |0 x, p0 R& Y6 y

1 T5 g( n, |" {. @. N0 U6 f        ' This is going to be annoying so don't really do it!
! c' w) L& _# }7 s        If changedBlock = ptsBlock Then
6 m! v8 Z% O. _( {& s  v6 }" N            If ptsBlock.SelectedObjects.Length = 1 Then& [# I" |: ^; q3 A1 O4 \$ M0 g
                InfoWindow.WriteLine("You picked a Location")5 E& m5 L3 P. K1 L  L, h
            Else
3 e6 p0 e6 X" [9 s$ _                InfoWindow.WriteLine("You picked another Location"): X3 i/ D, ^9 z2 \
            End If6 z+ O  A+ v) G4 Z  r
        End If2 q, G/ N; W/ G( Q1 T9 `. F

4 I: ]6 ]: N& ~9 M    End Sub1 B* D7 G% A& r; A. Q

0 O6 j8 V' D  o9 A+ D9 i    Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer5 \: u7 c" |+ J' {: m* g) d9 x8 Q
        Return Snap.UnloadOption.Immediately
) d% Y1 L. A" T- a    End Function
2 V( x) k) S2 U4 R6 I
' N8 L( m) Z  g( r8 Z/ \7 ^End Class1 T+ I$ z) G( I2 k
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部