关于块定义AttributeDefinition
为什么块定义AttributeDefinition建立之后不能修改其Position,即使修改提交了还是变回原来的,。。。。
attref.Position = New Point3d(p.X, p.Y, 0)------此时已经变掉
trans.Commit()
dim p as Point3d=attref.Position ---------此时又恢复了
该如何修改已存在的AttributeDefinition的Position啊??? 是属性定义还是属性参照?
属性定义,属性参照也一样改不了 如果是改def,ref是不会跟着改的
直接改ref
另外,最好把定义和参照的含义先搞清楚
是,我知道得自己写程序改,但是不知道怎么改,因为我直接改掉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改不掉,见鬼了 是不是块也得做什么变动啊
我测试的结果是改掉了。。。。。。
你的Cad版本?
页:
[1]