明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1512|回复: 3

如何判断布局是否已经存在

[复制链接]
发表于 2012-11-23 09:03:00 | 显示全部楼层 |阅读模式
如:Layout1
发表于 2012-11-23 19:18:58 | 显示全部楼层
public Autodesk.AutoCAD.DatabaseServices.ObjectId LayoutDictionaryId { get; }
    Autodesk.AutoCAD.DatabaseServices.Database 的成员
public bool Contains(string entryName)
    Autodesk.AutoCAD.DatabaseServices.DBDictionary 的成员
发表于 2012-11-23 19:21:38 | 显示全部楼层
另外有个苯办法是,遍历块表,把里面是布局的块记录取出,进而取得其布局;
public bool IsLayout { get; }
    Autodesk.AutoCAD.DatabaseServices.BlockTableRecord 的成员
public Autodesk.AutoCAD.DatabaseServices.ObjectId LayoutId { set; get; }
    Autodesk.AutoCAD.DatabaseServices.BlockTableRecord 的成员
 楼主| 发表于 2012-11-27 16:49:08 | 显示全部楼层
sieben 发表于 2012-11-23 19:21
另外有个苯办法是,遍历块表,把里面是布局的块记录取出,进而取得其布局;
public bool IsLayout { get;  ...

多谢多谢,用笨办法搞定!
''' <summary>
    ''' 判断布局是否存在
    ''' </summary>
    ''' <param name="layName">布局名字</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function LayoutNameIndexOf(ByVal layName As String) As Boolean
      
        Dim doc As Document = Application.DocumentManager.MdiActiveDocument
        Dim db As Database = doc.Database
        Dim b As Boolean = False
        Using trans As Transaction = db.TransactionManager.StartTransaction()
            Dim lydiid As ObjectId = db.LayoutDictionaryId
            '获取数据字典
            Dim lydi As DBDictionary = trans.GetObject(lydiid, OpenMode.ForRead)
            '字典计数器
            Dim di As DbDictionaryEnumerator = lydi.GetEnumerator()
            '遍历布局
            While (di.MoveNext())
                Dim lyid As ObjectId = di.Value
                '获取布局
                Dim lyt As Layout = trans.GetObject(lyid, OpenMode.ForRead)

                '因此处区分大小写,所以将名字都转化为大写后再比较
                If UCase(lyt.LayoutName) = UCase(layName) Then
                    b = True
                    Exit While
                End If                           
            End While
        End Using
        Return b
    End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-29 08:22 , Processed in 0.165008 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表