如何查看块参照的内容
<p>using System;<br/>using System.Collections.Generic;<br/>using System.Linq;<br/>using System.Text;<br/>using Autodesk.AutoCAD.Runtime;<br/>using Autodesk.AutoCAD.ApplicationServices;<br/>using Autodesk.AutoCAD.DatabaseServices;<br/>//using Autodesk.AutoCAD.EditorInput;<br/>using Autodesk.AutoCAD.Geometry;</p><p></p><p>namespace gw<br/>{<br/> public class Class1ofgw<br/> {<br/> //画一个圆<br/> <br/> public void huayuan()<br/> {<br/> Document acDoc = Application.DocumentManager.MdiActiveDocument;<br/> Database acDd = acDoc.Database;<br/> using (Transaction acTrans=acDd.TransactionManager.StartTransaction())<br/> {<br/> BlockTable acBlkTbl = (BlockTable)acTrans.GetObject(acDd.BlockTableId, OpenMode.ForRead);<br/> BlockTableRecord acBlkTblRec = (BlockTableRecord)acTrans.GetObject((acBlkTbl), OpenMode.ForWrite);<br/> BlockTableRecord[] acBlkTblRecs=new BlockTableRecord;<br/> int i;<br/> i = 0;<br/> <font color="#f73809">foreach (ObjectId rec in acBlkTbl)<br/> {<br/> acBlkTblRecs=(BlockTableRecord)acTrans.GetObject(rec, OpenMode.ForRead);<br/> i++;<br/> }<br/></font> //Circle acCir = new Circle();<br/> //acCir.SetDatabaseDefaults();<br/> //acCir.Center = new Point3d(1, 1, 0);<br/> //acCir.Diameter = 100;<br/> //acBlkTblRec.AppendEntity(acCir);<br/> //acTrans.AddNewlyCreatedDBObject(acCir, true);<br/> //acTrans.Commit();<br/> }<br/> }</p><p> }<br/>}<br/></p><p></p><p>我用acBlkTblRecs数组来记录acBlkTbl 中的每一个BlockTableRecord </p><p>我在图形中手工加入了一个块定义b1(只有一个圆),还在模型空间中画了一个圆,但是执行后我发现acBlkTblRecs只有4个成员</p><p>他们的base.name分别是*Model_Space,*PaperSpace,*PaperSpace0,b1,前面3个的layout属性都是ture。怎么没有那个圆所属的BlockTableRecord呢?</p><p>还有,我想查看b1中所有的图形定义,怎么查看呢?难道是通过acBlkTblRecs【3】,也就是b1的BlockBeginID,BlockEndID?</p><p>谢谢!</p> <p>块定义b1也是一个集合</p><p>GetObject打开它,然后遍历</p><p>*Model_Space就是模型空间了</p> 那*PaperSpace,*PaperSpace0又分别是什么呢? <p>布局1和布局2了</p><p>*Model_Space,*PaperSpace,*PaperSpace0都是默认的</p><p>你要搞清楚块定义和块参照的关系</p><p>块定义是存储图形对象的地方</p><p>而块参照可以看成是定义的一个快照</p>
页:
[1]