关于块参照的属性
有没有办法快速得到某块参照的某属性tag为a的值或者设置值??我现在是遍览属性定义,这样太慢 另外还有一个问题一起问吧:<font face="Verdana">Extents3d</font>所有实体<font face="Verdana">AddExtent后,即使我的实体全部在第一象限,但是总是minpoiint是0,0,0,如何正确取范围啊?</font> 第二个问题,我这里是正常的,你的Cad版本?public static void test25()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Editor ed = doc.Editor;
Database db = doc.Database;
using (var tr = db.TransactionManager.StartTransaction())
{
Extents3d ext = new Extents3d();
var btr = tr.GetObject(db.CurrentSpaceId, OpenMode.ForRead) as BlockTableRecord;
foreach (ObjectId id in btr)
{
var ent = tr.GetObject(id, OpenMode.ForRead) as Entity;
if (ent != null)
{
ext.AddExtents(ent.GeometricExtents);
}
}
ed.WriteMessage("\nExtents:{0}", ext);
}
}
命令: tt5
Extents:((1E+20,1E+20,1E+20),(-1E+20,-1E+20,-1E+20))
命令: l LINE 指定第一点:
指定下一点或 [放弃(U)]:
指定下一点或 [放弃(U)]:
命令:LINE 指定第一点:
指定下一点或 [放弃(U)]:
指定下一点或 [放弃(U)]:
命令: tt5
Extents:((621.135244985941,418.306146554517,0),(1597.42082141753,1073.70278557906,0))
<p>第一个看不懂了</p>
<p><font face="Verdana">AttributeReference</font>是有Tag属性的</p> 第一个问题:一个块参照可以有<font face="Verdana">AttributeCollection</font>,即有很多<font face="Verdana">AttributeReference,如何快速得到tag为a的那个,</font> <p>第二个代码:</p>
<p><font face="Verdana"> Dim ext As New Extents3d</font></p>
<p><font face="Verdana">Dim ed As Editor = AcadApp.DocumentManager.MdiActiveDocument.Editor<br/> Dim db As Database = AcadApp.DocumentManager.MdiActiveDocument.Database<br/> Using trans As Transaction = db.TransactionManager.StartTransaction()<br/> Dim btr As BlockTableRecord = trans.GetObject(db.CurrentSpaceId, OpenMode.ForRead)<br/> For Each id As ObjectId In btr<br/> Dim ent As Entity = trans.GetObject(id, OpenMode.ForRead, False)<br/> If Not ent Is Nothing Then<br/> ext.AddExtents(ent.GeometricExtents)<br/> End If<br/> Next<br/> End Using</font></p> 上面代码调试发现,new的时候minpoiint就是0,0了,那新加的第一象限估计也不可能改变她了 <p>你的Cad版本?</p>
<p>如果确定不行</p>
<p>可以先获取第一个的范围,再依次加入其余的</p> 2007 版主关于第二个问题的extend获取方法很好,谢谢,第一个问题版主再帮我看看啥
页:
[1]
2