PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2017-1-16 15:27:51

请使用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
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了