PLM之家PLMHome-工业软件践行者

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

[复制链接]

2017-1-16 15:27:51 4176 0

admin 发表于 2017-1-16 15:27:51 |阅读模式

admin 楼主

2017-1-16 15:27:51

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

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

x
通过对话框选择多个点实例5 s' X, v3 X& d& m- W5 S7 |4 v. f
2 b. e/ P& D0 ~: z( D+ T. r
5 l) `5 a) g! @" X4 N6 l
Option Infer On
8 r# t0 \/ k  `" ]) x: FImports Snap, Snap.Create! B2 V( [: t) m, i0 Q
+ ~8 i" s3 x9 `% a8 v
' This is a very simple example showing you how to use a Snap.UI.BlockForm
. \7 Q! b# l: ~7 ?  F; J* \# Q9 `( E9 K' to create a dialog that enables the user to select multiple point locations at once.
1 {% S6 t- B- ?# {: T  D6 E0 w7 Q
4 |8 [/ G! J% |( b5 w0 q) \3 C2 bPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm
1 c6 B, L/ L  b$ H2 _
/ u) x- B/ L1 o8 L7 B3 }0 w! S    ' Declarations of the blocks on the dialog
/ u0 ^! v" X- L7 o+ K6 X) L8 a4 h9 e4 p
    Dim ptsBlock As UI.Block.SelectObject
) r* E2 V! |: P2 i) h
/ Z& f8 D' X1 i  l) p    ' Constructor for a dialog object
8 h* k0 q  k% t6 _: s    Public Sub New()$ K* p" h0 ]: l: g
, X/ E" X% T$ Y4 {7 t
        Me.Title = "Select Multiple Locations"  ' Text to be shown in title bar of dialog
% x# Q3 F8 \4 i        Me.Cue = "Please select some locations"   ' Text to be shown in cue line+ J6 |; u* o7 ]( ?  w
6 n0 v1 p. P, t$ F% c  o- `) c
        ptsBlock = New UI.Block.SelectObject
, b- O% ~! [/ y- n6 T3 V        ptsBlock.AllowMultiple = True
* G( E, y; m4 B# i3 J        ptsBlock.MaskTriples =' W. G9 S8 N  t& C6 r1 B! m! \
            {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}) R  Y/ k+ e3 Z: L$ f
        ptsBlock.LabelString = "Select locations"
9 h- q; _3 E. _$ E9 o: B- q; g        ptsBlock.PointOverlay = True! U5 M+ m; M. s4 m1 [1 V! H
        ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
4 T( @0 E6 }0 g% ^        ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly8 I- W% l; o# p( V; `6 D
3 N: k" v- D0 l; M
        ' Add the block to the BlockForm5 U) ~  J$ Z5 Y
        Me.AddBlocks(ptsBlock)+ B; P& r; y9 ?% X# Q# R: p  V! P

7 {: Z1 a2 [9 N3 V- o; k8 ?) ?    End Sub4 y3 S3 L* E, f/ a

7 |5 ]% }" e8 y5 ?; ]8 k1 B" U0 M    Public Shared Sub Main(). F4 W" ^! q* ^, ~, R% s" T6 @
1 |* I3 S5 r6 R  C, E3 E( k
        ' Create and display a dialog
+ P  E3 u: Y* t8 O& n- k        Dim myForm = New SnapBlockFormApplication2(): z: _2 W4 p* p9 z' N7 n' ~# `0 u
        myForm.Show()
, ]$ x" K" s3 h3 n
" a7 t  r9 Y+ }7 i# u' q# K    End Sub
- k; B: k& J" W2 S) O$ J0 y. d4 `& e, h  G! {0 }+ h/ @
    Public Overrides Sub OnApply()
! e  a/ n* T  u/ m2 E' I
# G3 k1 m% [$ p: U" Y        InfoWindow.WriteLine("You selected these locations:")  f$ I/ I+ u# U$ N" j4 @

! v# Y; ]4 \  |4 @        For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects
1 g# A4 [  N2 q' ^5 H8 Z. R$ t            InfoWindow.WriteLine(anObj.Position)
+ p) r+ c) i6 l6 w7 V5 J, h        Next8 r& U' K6 l( K: d8 }4 V5 j
, f$ G! J5 x1 b! A/ J
    End Sub% |. y! @) V% L6 }

! T, R$ K8 {0 y' L  b$ j    Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)
! n" \! D0 N8 J% r3 B% U# K0 ?! R! V! q# f) V/ n
        ' This is going to be annoying so don't really do it!
6 f. x& B$ X3 V  o# M  h% u2 z( V        If changedBlock = ptsBlock Then
# B, W/ q* b4 E# f4 X4 }9 ]1 M            If ptsBlock.SelectedObjects.Length = 1 Then
: A0 M" G: G' q8 h7 X& A                InfoWindow.WriteLine("You picked a Location")) I. K( f. K: Y+ k+ {3 w& v" j
            Else' P9 y! ?& l+ V) f
                InfoWindow.WriteLine("You picked another Location")+ J  \1 \) r5 p" t8 d6 g
            End If1 Z2 m5 q. @3 z7 ?7 U2 o2 W; X
        End If
* ]0 `1 @3 o, @) `# X9 _0 c' ~3 \+ n7 J6 J
    End Sub2 \& v4 Z/ X2 ?. \9 H. u! C3 N
* w+ s; O/ H0 n  z* a. k
    Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer
* w5 k' I) C3 W0 V  R' A2 C        Return Snap.UnloadOption.Immediately
* m: m' R/ M; E! d* Q+ t    End Function
, K; H" I! Z/ `2 g/ @4 ]8 U! o8 j) c1 `# z; e' ^
End Class" @# q8 G; t; o0 n; K
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了