首页 > 编程语言 >Aveva Marine VBNET 编程系列===>读取drawing explorer的第一层级 view

Aveva Marine VBNET 编程系列===>读取drawing explorer的第一层级 view

时间:2023-10-01 13:33:21浏览次数:46  
标签:index Imports DraftApp Aveva Try amEnv VBNET view

今天我们研究下读取drawing expolrer的第一层级:view

下面的图纸的层级目录示意图,我们今天需要获取所有的view

 

主要用到2个方法:

1# 获取第一个元素

MarDrafting.ElementChildFirstGet Method ()

 

2# 获取相邻的元素

MarDrafting.ElementSiblingNextGet Method 

 

Imports Aveva.ApplicationFramework.Presentation
Imports Aveva.Marine.Drafting
Imports Aveva.Marine.UI ' marAPI.dll
Imports Aveva.Marine.Utility ' marAPI.dll

Imports System.IO
Imports System.Reflection
Imports System.Windows.Forms

Public Class 读取DrawingExplorer
    <MyAmFunctionAtt(NameOf(读取DrawingExplorer), NameOf(读取视图名称))>
    Public Sub 读取视图名称(wm As WindowManager)
        Try
            Dim amEnv As New AmEnvironment()
            '检查是否已经开了图纸
            If Not amEnv.DraftApp.DwgCurrent() Then MsgBox("当前未开启任何图纸,结束命令!", MsgBoxStyle.Critical) : Exit Sub
            '读取第一个view
            Dim vh As MarElementHandle, index As Integer = 1
            Try
                vh = amEnv.DraftApp.ElementChildFirstGet()
                amEnv.MarUI.MessageNoConfirm($"第{index}个view的名字是:" + amEnv.DraftApp.SubpictureNameGet(vh) + Environment.NewLine)
                index += 1
            Catch ex As Exception
                MsgBox("图纸中无任何内容!", MsgBoxStyle.Critical) : Exit Sub
            End Try
            '读取第2个view
            Dim nextVh As MarElementHandle
            Try
                nextVh = amEnv.DraftApp.ElementSiblingNextGet(vh)
                amEnv.MarUI.MessageNoConfirm($"第{index}个view的名字是:" + amEnv.DraftApp.SubpictureNameGet(nextVh) + Environment.NewLine)
                index += 1
            Catch ex As Exception
                MsgBox("图纸中无任何内容!", MsgBoxStyle.Critical) : Exit Sub
            End Try
            Dim errFlag As Boolean = True
            Do
                Try
                    nextVh = amEnv.DraftApp.ElementSiblingNextGet(nextVh)
                    amEnv.MarUI.MessageNoConfirm($"第{index}个view的名字是:" + amEnv.DraftApp.SubpictureNameGet(nextVh) + Environment.NewLine)
                    index += 1
                Catch ex As Exception
                    errFlag = False
                End Try
            Loop While errFlag
        Catch ex As Exception
            MsgBox(ex.StackTrace)
        End Try

    End Sub
End Class

程序运行结果如下:

标签:index,Imports,DraftApp,Aveva,Try,amEnv,VBNET,view
From: https://www.cnblogs.com/NanShengBlogs/p/17738787.html

相关文章

  • Aveva Marine VBNET 编程系列-封装一个类
    由于AM的marapi的大部分类实现了IDisposable接口,所有避免内存过大,用了一般需要dispose下微软官方的解释:https://learn.microsoft.com/zh-cn/dotnet/api/system.idisposable?view=net-7.0 以下是MarDrafting类的定义,很显然它实现了IDisposable接口 ImportsSystem.Reflec......
  • Aveva Marine VBNET 编程系列-创建曲线
    显现的效果 代码实现:<MyAmFunctionAtt(NameOf(绘图控制),NameOf(新建曲线))>PublicSub新建曲线(wmAsWindowManager)DimdraftAppAsNewMarDraftingDimuiAsNewMarUi'ImportsAveva.Marine.UIDimutilyAsNewMarUtil'ImportsA......
  • c#开发学习之listview连接SQLserver并将数据放到listview里显示
    usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceW......
  • Aveva Marine VBNET 编程系列-新建图纸,创建文字
    根据MarApi,创建图形文件,新建文字ImportsAveva.ApplicationFramework.PresentationImportsAveva.Marine.Drafting'marAPI.dllPublicClass绘图控制<MyAmFunctionAtt(NameOf(绘图控制),NameOf(新建图纸))>PublicSub新建图纸(wmAsWindowManager)Di......
  • Aveva Marine VBNET 编程系列-修改程序快捷键
    修改HullDesign程序的主题以及菜单项的快捷键 引用的dll文件下面的是代码和快捷键配置文件:https://files.cnblogs.com/files/NanShengBlogs/AMShortCut.HullDesign.zip?t=1695908179&download=trueImportsAveva.ApplicationFramework.PresentationImportsAveva.Applic......
  • Aveva Marine VBNET 编程系列-搭建开发框架
    引用的DllAveva.ApplicationFramework.dllAveva.ApplicationFramework.Presentation菜单展示效果创建Attribute,用于反射来动态创建菜单,不用每次都去写commandPublicClassMyAmFunctionAttInheritsAttributePrivate_menuNameAsStringPublicPropertyM......
  • wpf ListViewItem 怎么设置圆角并有阴影效果,请给出 详细的 xaml代码
    以下是一段详细的XAML代码示例,展示了如何为WPF的ListViewItem设置圆角和阴影效果:<ListView><ListView.ItemContainerStyle><StyleTargetType="ListViewItem"><SetterProperty="Template"><Sette......
  • VBNET AUTOCAD 单行文字OBB有向包围盒的计算
    遇到要求单行文字包围和的需求,发现AutoCAD自带的算法仅能求出正交包围盒,如下图所示的粉色矩形我想获取下图下图所示蓝色矩形的部分及OBB计算方法图形示例:下面是完整的代码,其中求D点的坐标p1涉及到向量定比分点公式<CommandMethod(NameOf(TT_SingleTextOBB))>SubTT......
  • Android Activity setContentView流程解析
    ActivitysetContentView流程解析参考图解:自主生码.jpg1.当MainActivity直接继承自Activity时此时会执行Activity类的setContentView方法:publicvoidsetContentView(@LayoutResintlayoutResID){getWindow().setContentView(layoutResID);initWindowDecorActi......
  • 多线程Review-926-01
    一、进程与线程1、进程:①电脑管家等软件我们运行的应用程序②在内存中正在运行的程序2、线程:①进程中的一个最小执行单元。一个进程最少得有一个线程②软件中的每一个功能,如电脑管家中的清理垃圾、杀毒、软件搜索二、线程的创建方式1、继承Thread类  :优点——代码......