找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1893|回复: 0

是否可以使用AutoCAD .NET API模拟命令LIVESECTION

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2021-1-27 00:19:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Is it possible to emulate command LIVESECTION with AutoCAD .NET API

This question is coming from one of our beloved Forum contributor and Mentor Alexander Rivilis


  1. I am working with code which change color of Intersection Fill of Live Section. But although the color is changed, but this is not visible on the screen until I turn off and turn LIVESECTION:
  2. I made slight changes to have this working

  3. Note: To work this make sure LIVESECTION is not turned on

  4. This code will change color of SECTION which converted to LIVESECTION
复制代码


  1. public void SetSectionColor()
  2.        {
  3.           Document doc = Application.DocumentManager.MdiActiveDocument;
  4.           if (doc == null) return;
  5.           Editor ed = doc.Editor;

  6.           PromptEntityOptions peo =
  7.                 new PromptEntityOptions("\nSelect section: ");
  8.           peo.SetRejectMessage("\nIt is not a section!");
  9.           peo.AddAllowedClass(typeof(Section), true);
  10.           PromptEntityResult per = ed.GetEntity(peo);
  11.           if (per.Status != PromptStatus.OK) return;
  12.           ObjectId idSecSets = ObjectId.Null;
  13.           using (Transaction tr =
  14.           doc.TransactionManager.StartOpenCloseTransaction())
  15.           {
  16.               Section sec =
  17.               tr.GetObject(per.ObjectId,
  18.                            OpenMode.ForWrite) as Section;
  19.               sec.IsLiveSectionEnabled = true;               
  20.               idSecSets = sec.Settings;
  21.               tr.Commit();
  22.           }
  23.         using (Transaction tr = doc.TransactionManager
  24.                                      .StartOpenCloseTransaction())
  25.         {
  26.           SectionSettings secset = tr.GetObject(idSecSets,
  27.                                    OpenMode.ForWrite) as SectionSettings;
  28.           secset.CurrentSectionType = SectionType.LiveSection;
  29.           Color clr = secset.Color(SectionType.LiveSection,
  30.                                    SectionGeometry.IntersectionFill);
  31.           ColorDialog cd = new ColorDialog
  32.           {
  33.               Color = clr
  34.           };
  35.           System.Windows.Forms.DialogResult dr = cd.ShowDialog();
  36.           if (dr != System.Windows.Forms.DialogResult.OK) return;
  37.           ed.WriteMessage("\nSelected Color: " + cd.Color.ToString());
  38.           clr = cd.Color;
  39.           // Define that color we change
  40.           secset.SetColor(SectionType.LiveSection,
  41.           SectionGeometry.IntersectionFill, clr);
  42.           tr.Commit();
  43.         }  
  44.     }

Gif






论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-14 04:51 , Processed in 0.379207 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表