找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 977|回复: 0

[分享] Create associative hatch

[复制链接]

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-6-7 01:25:08 | 显示全部楼层 |阅读模式

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

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

×
        [CommandMethod("CreateAssocHatch","cash", CommandFlags.UsePickSet)]
        public void testCreateAssocHatch()
        {
            Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;

            Database db = doc.Database;

            Editor ed = doc.Editor;

            ObjectId objId;

            Entity ent;

            PromptEntityResult per = ed.GetEntity(new PromptEntityOptions("\nSelect an entity to be hatched: "));

            if (per.Status != PromptStatus.OK)  return;

            objId = per.ObjectId;

            try
            {
                Transaction tr = doc.TransactionManager.StartTransaction();

                using (tr)
                {

                    ent = tr.GetObject(objId, OpenMode.ForRead) as Entity;

                    if (ent == null) return;
                  
                    Hatch hat = new Hatch();

                    BlockTableRecord btr = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForWrite);
                   // to set associative add hatch first
                    btr.AppendEntity(hat);

                    tr.AddNewlyCreatedDBObject(hat, true);

                    hat.PatternAngle = 0.0;

                    hat.PatternScale = 10.0;

                    hat.Associative = true;

                    hat.SetHatchPattern(HatchPatternType.PreDefined, "ANSI32");

                    // append loop to hatch
                    ObjectIdCollection dbObjIds = new ObjectIdCollection();

                    dbObjIds.Add(objId);
                     
                    hat.AppendLoop(HatchLoopTypes.External, dbObjIds);
      
                    hat.Layer = ent.Layer;
  
                    hat.ColorIndex = 256;//bylayer,  may use as per entity colorindex
   
                    hat.HatchStyle = HatchStyle.Normal;

                    hat.EvaluateHatch(true);
  

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

本版积分规则

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

GMT+8, 2024-5-22 13:25 , Processed in 0.356994 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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