关于块定义AttributeDefinition
<p>为什么块定义<font face="Verdana">AttributeDefinition</font>建立之后不能修改其Position,即使修改提交了还是变回原来的,</p><p>。。。。</p>
<p><font face="Verdana"> attref.Position = New Point3d(p.X, p.Y, 0)------此时已经变掉<br/> trans.Commit()<br/> dim p as Point3d=attref.Position ---------此时又恢复了</font></p> 该如何修改已存在的<font face="Verdana">AttributeDefinition</font>的Position啊??? <p>是属性定义还是属性参照?</p> 属性定义,属性参照也一样改不了 <p>如果是改def,ref是不会跟着改的</p>
<p>直接改ref</p>
<p>另外,最好把定义和参照的含义先搞清楚</p> 是,我知道得自己写程序改,但是不知道怎么改,因为我直接改掉commit之后没有被修改掉,还出现上面那个情况 我这没有问题
public static void test25()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Editor ed = doc.Editor;
Database db = doc.Database;
using (var tr = db.TransactionManager.StartTransaction())
{
var bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
var btr = tr.GetObject(bt["A"], OpenMode.ForWrite) as BlockTableRecord;
foreach (var id in btr)
{
var attdef = tr.GetObject(id, OpenMode.ForWrite) as AttributeDefinition;
if (attdef != null)
{
attdef.Position += new Vector3d(10, 10, 0);
}
}
tr.Commit();
}
}
我也很纳闷,对于TextString,角度,颜色,大小等都能改掉,就Position改不掉,见鬼了 <p>是不是块也得做什么变动啊</p> <p>我测试的结果是改掉了。。。。。。</p>
<p>你的Cad版本?</p>
页:
[1]
2