手心の今天 发表于 2014-7-17 10:49:35

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

请教大神,删除块中的圆怎么做。不是人机交互式的选取块,而是要利用代码选取块。

雪山飞狐_lzh 发表于 2014-7-17 10:57:36

1获取块表 bt
2获取块表记录 btr = bt [块名]
3历遍 btr

ivde 发表于 2014-7-17 12:07:11

允许子实体选择可以吗?

手心の今天 发表于 2014-7-18 13:38:18

雪山飞狐_lzh 发表于 2014-7-17 10:57 static/image/common/back.gif
1获取块表 bt
2获取块表记录 btr = bt [块名]
3历遍 btr

有没有相关的例子,至少给个遍历块中的所有图元,然后根据图元的图元名修改图元的例子。麻烦大神

雪山飞狐_lzh 发表于 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 static/image/common/back.gif
AutoCad.Net开发手册的内容




大神,为什么acDoc.Database里没有LayerTableId

雪山飞狐_lzh 发表于 2014-7-21 17:02:33

你应该使用BlockTableId
页: [1]
查看完整版本: 请教大神,删除块中的图形