查看: 4389|回复: 0

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

[复制链接]

4

主题

4

回帖

52

积分

管理员

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

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

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

×
通过对话框选择多个点实例8 i2 Z7 y; X# w! U

$ m! k/ d" D" S9 t7 I3 M- O0 H3 q' p+ V5 c9 R+ x
Option Infer On) w5 _4 }$ {& {0 a! y
Imports Snap, Snap.Create' W$ f( ]7 ], |& a: o
' b( b+ ?6 P4 J. [3 p$ m3 ]# o
' This is a very simple example showing you how to use a Snap.UI.BlockForm
9 L5 h- P+ [) k5 u( x/ c* u' H# Y' to create a dialog that enables the user to select multiple point locations at once.
! x3 h$ W; s1 W* K
" k% C6 i9 @3 V. xPublic Class SnapBlockFormApplication2 : Inherits UI.BlockForm
$ p, k& L9 M! ]. S1 P/ U4 q$ P% O7 t( D, t6 @2 @
    ' Declarations of the blocks on the dialog' ?* F$ B3 h3 m

% ]. ?- w! ~* L, q  G    Dim ptsBlock As UI.Block.SelectObject+ j  R) c" B) z( c% P

* W. t  c, v! M; u: Q    ' Constructor for a dialog object9 o# m7 N. t: v
    Public Sub New()* S0 x5 ?4 H$ B* v5 D( g
9 |; U2 z+ h% h, v* A
        Me.Title = "Select Multiple Locations"  ' Text to be shown in title bar of dialog# V. g3 S- X3 n6 }2 v" _9 e
        Me.Cue = "Please select some locations"   ' Text to be shown in cue line
9 y" r0 u8 [2 T- Y: A) ^- r& ]. @7 i
        ptsBlock = New UI.Block.SelectObject
+ Y, O$ O5 X2 U; `4 B8 `* T* ~        ptsBlock.AllowMultiple = True
+ ]# o( H$ I3 J( K1 T& E4 p        ptsBlock.MaskTriples =
$ M' b! z1 v1 O7 G2 a' D            {New NXOpen.Selection.MaskTriple(NXOpen.UF.UFConstants.UF_point_type, 0, 0)}4 ]' {6 \9 t% s: o9 p2 C5 Q
        ptsBlock.LabelString = "Select locations"
8 Z; c( }- X" }7 N  A0 x. {        ptsBlock.PointOverlay = True- M+ _. P! k# t8 d9 z# P& ]' c- H
        ptsBlock.SnapPointStates.SetAll(UI.Block.SnapPointState.Selected)
6 x  ]. t3 w$ D        ptsBlock.MaximumScope = UI.Block.SelectionScope.AnyInAssembly
/ _; O# z) A* C  n6 j% t4 j" J# f7 y, B% v
        ' Add the block to the BlockForm
' V4 K4 G) a0 e) q! U5 B7 g. o        Me.AddBlocks(ptsBlock)
. b. K/ T9 `$ }! [: _! W3 S
. s: B* }0 \2 n6 S; a    End Sub
8 k$ e0 [5 X% l: b
4 N( f" e1 v  P3 o5 H5 r% K    Public Shared Sub Main(); X) Y0 ?8 ~/ V7 x% n  ?+ N' G
1 r+ Z3 @7 i! Y0 n
        ' Create and display a dialog/ C  `$ I% C6 O
        Dim myForm = New SnapBlockFormApplication2()
* T; U$ T, P: s+ d        myForm.Show(). D2 k0 z4 J+ r9 P4 b5 I7 v
5 O2 f- s  V6 c5 j  R! L
    End Sub
1 R7 \4 H/ E  T  ~8 {$ ~6 R* @4 X" m) F; W* a1 [3 x/ K
    Public Overrides Sub OnApply()
3 Y" B9 ]/ g% K  V) p  u& \) K4 y- D1 @
        InfoWindow.WriteLine("You selected these locations:")
9 |9 H5 m' A3 }1 `$ p! D& F7 }$ }( n- n. A+ V# v
        For Each anObj As Snap.NX.Point In ptsBlock.SelectedObjects6 \& p/ L# l1 m. l6 m. v
            InfoWindow.WriteLine(anObj.Position)
0 w. M5 s: `, X8 Y# k3 `        Next$ ?* y" b$ Z# n7 e5 V: B0 c
& M1 O; C4 A" ^& W
    End Sub' e4 R# F) ]; {; O/ h

& g$ H- v7 u! |. U1 ?- e6 t3 K    Public Overrides Sub OnUpdate(changedBlock As UI.Block.General). s1 }  _9 ]; W+ i4 g
  w5 T  y' f  V/ e  N9 L$ F$ ]% B
        ' This is going to be annoying so don't really do it!
; T; U6 j$ ]: L: c; U" }( f; A, e        If changedBlock = ptsBlock Then
- {6 T; b4 D$ j+ `6 y            If ptsBlock.SelectedObjects.Length = 1 Then
. A+ H! g  G: E; e" t) @9 v                InfoWindow.WriteLine("You picked a Location")
7 ~" Q; g* z7 O/ F! ]0 E) ]            Else- {- t- u: K7 S; c& n$ i
                InfoWindow.WriteLine("You picked another Location")5 J  a, ^4 S) i- J1 q% q) M% c
            End If
5 e' Y- y* p3 w& d( r        End If! p; m) D1 d9 l3 ]3 R* x) v2 K
9 f/ K& i' M0 E. [/ ?: `( x
    End Sub
1 r  ^5 S- k  o/ V) @* K  _/ O- e, v9 K4 q  x, y" M* r
    Public Shared Function GetUnloadOption(ByVal dummy As String) As Integer2 W- j! {; n3 D0 m
        Return Snap.UnloadOption.Immediately
, T# M* V+ D; X$ U2 O9 T7 r" D8 i& u    End Function
3 \  h) W5 T# R2 N. a) {2 _
6 @( z! c3 q$ f* bEnd Class
6 y9 G/ {5 W6 d# @2 X$ T8 e
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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