乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 66|回复: 3

hatch出现异常

[复制链接]
LDJ

20

主题

35

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2015-6-5 09:09:00 | 显示全部楼层 |阅读模式
// 由图案填充类型、填充图案名称、
        // 填充角度和填充比例创建图案填充的函数.
        // partType:0为预定义图案;1为用户定义图案;2为自定义图案.
        private ObjectId AddHatch(out Hatch hatchEnt, HatchPatternType patType,
            String patName, Double patternAngle, Double patternScale)
        {
            //ObjectId entId = Autodesk..DatabaseServices.ObjectId.Null;
           
                Hatch ent = new Hatch();
                ent.HatchObjectType = HatchObjectType.HatchObject;
                Database db = HostApplicationServices.WorkingDatabase;
                using (Transaction trans = db.TransactionManager.StartTransaction())
                {
                    BlockTable bt = (BlockTable)trans.GetObject
                        (db.BlockTableId, OpenMode.ForRead);
                    BlockTableRecord btr = (BlockTableRecord)trans.GetObject
                        (bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
                    ObjectId entId = btr.AppendEntity(ent);
                    try
                    {
                        trans.AddNewlyCreatedDBObject(ent, true);
                        ent.SetDatabaseDefaults();
                        ent.PatternAngle = patternAngle;//出现异常
                        ent.PatternScale = patternScale;
                        ent.SetHatchPattern(patType, patName);
                        hatchEnt = ent;
                        return entId;
                    }
                    catch (System.Exception e)
                    {
                        MessageBox.Show(e.Message);
                        hatchEnt = ent;
                        return entId;
                    }
            
                    trans.Commit();
                    
                }
            
           
            
         }
        [CommandMethod("testdiff", CommandFlags.UsePickSet | CommandFlags.Modal | CommandFlags.Redraw)]
        public void testdiff()
        {
              Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
         
            PromptSelectionResult res = ed.SelectImplied();
            if (PromptStatus.OK == res.Status)
            {
                // Convert the SelectionSet to MgSelectionBase using AcMapFeatureEntityService.
                Debug.Assert(res.Value != null);
                if (res.Value.Count != 1) return;
                ObjectId entityID = res.Value[0].ObjectId;
                //ObjectId entityID2 = res.Value[1].ObjectId;
                 ObjectIdCollection loops1 = new ObjectIdCollection();
               loops1.Add(entityID);
               //loops1.Add(entityID2);
                ObjectIdCollection[] loops = new ObjectIdCollection[1];
               loops.SetValue(loops1, 0);
                Hatch hatchEnt;
                ObjectId hatEntId = AddHatch(out hatchEnt, 0, "ANGLE", Math.PI / 3, 10);
             Database db = HostApplicationServices.WorkingDatabase;
             // 关联填充图案与边界.
             using (Transaction tr = db.TransactionManager.StartTransaction())
             {
                 hatchEnt = (Hatch)tr.GetObject(hatEntId, OpenMode.ForWrite);
                 hatchEnt.Associative = true;
                 for (int i = 0; i < loops.Length; i++)
                 {
                     hatchEnt.AppendLoop(HatchLoopTypes.Default, loops);
                 }
                 tr.Commit();
            }         
            }
            
        }
选择一个封闭的pline后 运行代码,出现异常,提示eInvalidInput
高手帮助看下
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2015-6-5 09:21:00 | 显示全部楼层
不用HatchLoopTypes.Default,应该明确为OutLoop吧
回复

使用道具 举报

LDJ

20

主题

35

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2015-6-5 09:58:00 | 显示全部楼层
ent.PatternAngle = patternAngle;//出现异常
                        ent.PatternScale = patternScale;
回复

使用道具 举报

0

主题

275

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2015-6-6 19:54:00 | 显示全部楼层
没有边的 Hatch 不能添加到 BlockTableRecord
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 15:41 , Processed in 0.466029 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表