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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
通过对话框选择多个点实例9 [6 k) U( [  N( d3 ?6 h* O
* t2 u, S; P+ I1 W. G2 H8 C0 b9 V& y
9 o+ w0 b  ~3 j5 N0 n
Option Infer On, w3 ~* _& q6 h" O
Imports Snap, Snap.Create0 j9 l' \( q! N) q' M5 O
$ m; q" R+ T7 F5 ~
' This is a very simple example showing you how to use a Snap.UI.BlockForm
5 m- f# L. d: [4 c# i' to create a dialog that enables the user to select multiple point locations at once.+ Q" N7 W5 r' K5 g; H$ Y

1 ~% I! y" X9 m1 @- I/ ?Public Class SnapBlockFormApplication2 : Inherits UI.BlockForm
; I  p# r1 M# c9 t, T
# x; [, p! B1 c+ v% b/ x# u    ' Declarations of the blocks on the dialog" I7 R' L3 K/ o9 v# e3 p
+ j9 t- j8 @4 P+ k  i, ^! |" L
    Dim ptsBlock As UI.Block.SelectObject
' D6 s# A3 E; U0 Q8 I" x9 e4 w- W  S3 S. _, i! ~; v" {
    ' Constructor for a dialog object
" B+ {0 R: N  c* l    Public Sub New()3 [, F% {, |9 p3 V: [1 c, ^
2 h. A6 Y* V: y1 u/ a
        Me.Title = "Select Multiple Locations"  ' Text to be shown in title bar of dialog
& V. O. r' z  T) J9 o; o        Me.Cue = "Please select some locations"   ' Text to be shown in cue line
; G% h/ F; S  `( F) M1 k  Q4 Z1 Q  y1 @2 P9 |% j
        ptsBlock = New UI.Block.SelectObject# k, V$ J6 j2 h( G! ?* _
        ptsBlock.AllowMultiple = True6 V4 O0 r" a) o  w4 _
        ptsBlock.MaskTriples =
0 `* a" U" K9 v. f+ u  z0 X7 r/ i            {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}- c5 g  r6 x1 ?. e2 x6 O# J* `
        ptsBlock.LabelString = "Select locations"& t8 v. c9 K3 f  E: s
        ptsBlock.PointOverlay = True
7 f; }9 L! Z+ H% m- w/ Q* L4 m        ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
' V; L0 h8 M- }) |! J& v2 p( ~        ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
: c' n9 d4 R) |0 C. o' O' v4 ^
7 h: T1 @; ~5 k/ m6 I3 c6 ]6 C2 A, S        ' Add the block to the BlockForm
; k/ w$ J8 _6 k* m        Me.AddBlocks(ptsBlock)
, O/ B' y6 {, ?0 B# H, j6 `1 l1 k$ R( ~  f9 g; ^
    End Sub
+ p) p2 z4 w. p, ~) Y8 P) B/ k4 W4 b1 O. @2 ?9 G1 C
    Public Shared Sub Main()
: S9 V" q$ q3 t9 S$ }  \$ k$ ^& p% _# P
        ' Create and display a dialog* T* O4 w, C- p: j+ B+ O
        Dim myForm = New SnapBlockFormApplication2()8 \' O$ @- R3 b/ R# o$ x" U! k7 a
        myForm.Show()4 c) U6 `, F$ x7 k% h0 o

+ T4 _- [+ c3 x3 J    End Sub
  m$ |3 U% `2 D9 B2 t% ^5 W1 Q$ L8 \% u/ q
    Public Overrides Sub OnApply()
3 I' ~, I- @: F  F  x5 y. k0 S- b  {0 s" K* l! _$ y7 f8 g
        InfoWindow.WriteLine("You selected these locations:")8 C: r, r) p& o2 g
( v0 v2 G( Q- k8 Q: B
        For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects1 f$ g. P5 J3 n* S! W
            InfoWindow.WriteLine(anObj.Position)  T9 F/ r& n2 F: S" }- A! E
        Next
0 _0 o# `) u% U6 o: Q$ y
/ h  r" ^1 X/ c# W    End Sub; c) F2 N) m& p+ u4 ]% A& B8 W

4 W, b$ E8 Z6 l% u7 ?3 p    Public Overrides Sub OnUpdate(changedBlock As UI.Block.General)) P1 |0 |% ?: Y6 Y1 J; w+ p
  ^3 H# L7 v4 S- Q) H) Z
        ' This is going to be annoying so don't really do it!
9 ~# ?+ J  Q/ t+ ^: T! B        If changedBlock = ptsBlock Then
; P9 b4 s3 z" D% ~: c0 U            If ptsBlock.SelectedObjects.Length = 1 Then; c- B; n4 {' o% T
                InfoWindow.WriteLine("You picked a Location")% }3 T8 [, f% e1 \+ a
            Else
  K! L4 J0 Q$ h) N& a% k                InfoWindow.WriteLine("You picked another Location")
/ D  P) b5 \# n  J' T4 j0 d- R$ m            End If
$ p3 m: s: J2 A( b. G/ q* q: N        End If) s+ B' J9 l  s
. f9 `3 G# s+ \  L
    End Sub
. v6 w5 d: R) F6 C, C9 l
! J6 E  Y! K+ Q! I+ m1 a    Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer
/ c, q9 G' \6 u' U6 L" _( E        Return Snap.UnloadOption.Immediately: E. t0 m/ ]- X9 W8 k
    End Function
1 v: ^7 ^) L9 m/ _/ P. g7 ?7 E1 Z
/ j+ Z" Y; ?2 K2 t* ~0 qEnd Class- Y; B& \4 ?- I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了