明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1270|回复: 6

请教大神,删除块中的图形

[复制链接]
发表于 2014-7-17 10:49:35 | 显示全部楼层 |阅读模式
请教大神,删除块中的圆怎么做。不是人机交互式的选取块,而是要利用代码选取块。
发表于 2014-7-17 10:57:36 | 显示全部楼层
1获取块表 bt
2获取块表记录 btr = bt [块名]
3历遍 btr
发表于 2014-7-17 12:07:11 来自手机 | 显示全部楼层
允许子实体选择可以吗?
 楼主| 发表于 2014-7-18 13:38:18 | 显示全部楼层
雪山飞狐_lzh 发表于 2014-7-17 10:57
1获取块表 bt
2获取块表记录 btr = bt [块名]
3历遍 btr

有没有相关的例子,至少给个遍历块中的所有图元,然后根据图元的图元名修改图元的例子。麻烦大神
发表于 2014-7-18 15:46:49 | 显示全部楼层
AutoCad.Net开发手册的内容


集合对象是一种对象类型,它包含许多相似的实例对象。以下是在 AutoCAD .NET API 中能找到的集合对象的列表:

Block Table Record
包含一个特定块内定义的所有图元。

Block Table
包含图形中的所有块。

Named Objects Dictionary
包含图形中的所有字典。

Dimension Style Table
包含图形中的所有标注样式。

Document Collection
包含当前进程中打开的所有图形。

File Dependency Collection
包含“文件依赖性”列表中的所有项。

Group Dictionary
包含图形中的所有编组。

Hyperlink Collection
包含给定图元的所有超链接。

Layer Table
包含图形中的所有图层。

Layout Dictionary
包含图形中的所有布局。

Linetype Table
包含图形中的所有线型。

MenuBar Collection
包含 AutoCAD 中当前显示的所有菜单。

MenuGroup Collection
包含 AutoCAD 当前加载的所有自定义组。自定义组表示加载的 CUIx 文件,它可以包含 菜单、工具栏 和 Ribbon 选项卡等元素定义的用户界面。

Plot Configuration Dictionary
包含图形中的命名打印设置。

Registered Application Table
包含图形中所有注册的应用程序。

Text Style Table
包含图形中的所有文字样式。

UCS Table
包含图形中的所有用户坐标系 (UCS)。

View Table
包含图形中的所有视图。

Viewport Table
包含图形中的所有视口。


下面的例子通过 LayerTable 遍历对象并显示所有层表记录的名称:

VB.NET

Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices

<CommandMethod("IterateLayers")> _
Public Sub IterateLayers()
  ''获得当前文档和数据库,并启动一个事务   Get the current document and database, and start a transaction
  Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
  Dim acCurDb As Database = acDoc.Database

  Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
      ''这个例子返回当前数据库的层表  This example returns the layer table for the current database
      Dim acLyrTbl As LayerTable
      acLyrTbl = acTrans.GetObject(acCurDb.LayerTableId, _
                                   OpenMode.ForRead)

      '' 遍历层表并输出每一个层的名称 Step through the Layer table and print each layer name
      For Each acObjId As ObjectId In acLyrTbl
          Dim acLyrTblRec As LayerTableRecord
          acLyrTblRec = acTrans.GetObject(acObjId, OpenMode.ForRead)

          acDoc.Editor.WriteMessage(vbLf & acLyrTblRec.Name)
      Next

      '' 销毁事务  Dispose of the transaction
  End Using
End Sub
 楼主| 发表于 2014-7-21 14:26:31 | 显示全部楼层
雪山飞狐_lzh 发表于 2014-7-18 15:46
AutoCad.Net开发手册的内容

大神,为什么acDoc.Database里没有LayerTableId
发表于 2014-7-21 17:02:33 | 显示全部楼层
你应该使用BlockTableId
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 12:28 , Processed in 0.139896 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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