netdragon16888 发表于 2023-10-13 15:37:40

修改polyline的颜色autoCAD崩了,求问原因

      
      public void GetPolyline()
      {
            Document acDoc = Application.DocumentManager.MdiActiveDocument;
            Editor acEd = acDoc.Editor;

            // 提示用户选择一条Polyline
            PromptEntityOptions peo = new PromptEntityOptions("\n请选择一条Polyline");
            peo.SetRejectMessage("\n所选对象不是Polyline,请重新选择");
            peo.AddAllowedClass(typeof(Polyline), true);
            PromptEntityResult per = acEd.GetEntity(peo);

            if (per.Status == PromptStatus.OK)
            {
                using (Transaction acTrans = acDoc.TransactionManager.StartTransaction())
                {
                  // 打开并锁定选中的Polyline
                  Polyline acPoly = acTrans.GetObject(per.ObjectId, OpenMode.ForRead) as Polyline;

                  if (acPoly != null)
                  {
                        // 将选中的Polyline赋值给polyEnt变量
                        Polyline polyEnt = acPoly;
                        //// 改变Polyline的颜色为红色
                        acPoly.Color = Color.FromColorIndex(ColorMethod.ByColor, 1);
                        // 更新图形和刷新显示
                        acEd.UpdateScreen();
                        // 在控制台输出选中的Polyline的长度
                        acEd.WriteMessage("\n已选择的Polyline长度:{0}", polyEnt.Length);
                  }

                  acTrans.Commit();
                }
            }
      }
以上代码是在autoCAD2016 vs.net2017下的项目测试 红色代码删除就可以运行,不删除autoCAD就会崩了 出现如下图
http://bbs.mjtd.com/forum.php?mod=image&aid=130005&size=300x300&key=bae923bdb2e0aa86&nocache=yes&type=fixnone
这是什么原因,我哪个环节出问题了,不能直接修改颜色吗?


要怎么改?求指导一下

netdragon16888 发表于 2023-10-13 15:40:41

晕倒,忘记ForWrite了

闻人南131 发表于 2023-10-13 16:36:00

给你一个眼神你自己体会

d1742647821 发表于 2023-10-16 11:57:40

谜底就在迷面上是吧
页: [1]
查看完整版本: 修改polyline的颜色autoCAD崩了,求问原因