davehuhudave 发表于 2010-7-30 11:29:00

关于块定义AttributeDefinition

<p>为什么块定义<font face="Verdana">AttributeDefinition</font>建立之后不能修改其Position,即使修改提交了还是变回原来的,</p>
<p>。。。。</p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attref.Position = New Point3d(p.X, p.Y, 0)------此时已经变掉<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trans.Commit()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dim p as Point3d=attref.Position ---------此时又恢复了</font></p>

davehuhudave 发表于 2010-7-30 16:01:00

该如何修改已存在的<font face="Verdana">AttributeDefinition</font>的Position啊???

雪山飞狐_lzh 发表于 2010-7-31 10:27:00

<p>是属性定义还是属性参照?</p>

davehuhudave 发表于 2010-8-2 08:45:00

属性定义,属性参照也一样改不了

雪山飞狐_lzh 发表于 2010-8-2 09:55:00

<p>如果是改def,ref是不会跟着改的</p>
<p>直接改ref</p>
<p>另外,最好把定义和参照的含义先搞清楚</p>

davehuhudave 发表于 2010-8-2 10:03:00

是,我知道得自己写程序改,但是不知道怎么改,因为我直接改掉commit之后没有被修改掉,还出现上面那个情况

雪山飞狐_lzh 发表于 2010-8-2 11:27:00

我这没有问题



      
      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();
            }

      }

davehuhudave 发表于 2010-8-2 13:06:00

我也很纳闷,对于TextString,角度,颜色,大小等都能改掉,就Position改不掉,见鬼了

davehuhudave 发表于 2010-8-2 15:58:00

<p>是不是块也得做什么变动啊</p>

雪山飞狐_lzh 发表于 2010-8-2 22:31:00

<p>我测试的结果是改掉了。。。。。。</p>
<p>你的Cad版本?</p>
页: [1] 2
查看完整版本: 关于块定义AttributeDefinition