EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

EaBIM

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 1233|回复: 24
打印 上一主题 下一主题

[实体对象] 通过闭合曲线生成面域

[复制链接]

1514

主题

7465

帖子

1万

积分

admin

Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10

积分
12408

社区QQ达人

跳转到指定楼层
楼主
发表于 2014-1-8 16:40:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前几天论坛QQ群里几位朋友想实现的问题,这里统一说下吧。通过闭合曲线生成面域的方法
  • using System;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Text;
  • using System.IO;
  • using Autodesk.AutoCAD.ApplicationServices;
  • using Autodesk.AutoCAD.DatabaseServices;
  • using Autodesk.AutoCAD.Runtime;
  • using Autodesk.AutoCAD.EditorInput;
  • using Autodesk.AutoCAD.Geometry;
  • [assembly: CommandClass(typeof(BimCad.CreataProfile))]
  • namespace BimCad
  • {
  •     class CreataProfile
  •     {
  •         [CommandMethod("LineToRegon")]
  •         public void LineToRegon()
  •         {
  •             Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
  •             Database db = doc.Database;
  •             Editor ed = doc.Editor;
  •             DBObjectCollection profile = Collection();
  •             Region region = Region(profile);
  •             ToModelSpace(region, db);
  •         }
  •         /// <summary>
  •         /// 将一个实体添加到当前空间
  •         /// </summary>
  •         /// <param name="ent">对象</param>
  •         /// <param name="db">数据库</param>
  •         /// <returns></returns>
  •         public static ObjectId ToModelSpace(Entity ent, Database db)
  •         {
  •             ObjectId id;
  •             using (Transaction tr = db.TransactionManager.StartTransaction())
  •             {
  •                 id = ((BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite, false)).AppendEntity(ent);
  •                 tr.AddNewlyCreatedDBObject(ent, true);
  •                 tr.Commit();
  •             }
  •             return id;
  •         }
  •         /// <summary>
  •         /// 选择集合
  •         /// </summary>
  •         /// <returns></returns>
  •         public static DBObjectCollection Collection()
  •         {
  •             Database db = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database;
  •             Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
  •             Entity entity = null;
  •             DBObjectCollection EntityCollection = new DBObjectCollection();
  •             PromptSelectionResult ents = ed.GetSelection();
  •             if (ents.Status == PromptStatus.OK)
  •             {
  •                 using (Transaction transaction = db.TransactionManager.StartTransaction())
  •                 {
  •                     SelectionSet SS = ents.Value;
  •                     foreach (ObjectId id in SS.GetObjectIds())
  •                     {
  •                         entity = (Entity)transaction.GetObject(id, OpenMode.ForWrite, true);
  •                         if (entity != null)
  •                             EntityCollection.Add(entity);
  •                     }
  •                     transaction.Commit();
  •                 }
  •             }
  •             return EntityCollection;
  •         }
  •         /// <summary>
  •         /// 由线条集合创建面域
  •         /// </summary>
  •         /// <param name="curveSegments"></param>
  •         /// <returns></returns>
  •         public static Region Region(DBObjectCollection curveSegments)
  •         {
  •             return Autodesk.AutoCAD.DatabaseServices.Region.CreateFromCurves(curveSegments)[0] as Region;
  •         }
  •     }
  • }

复制代码



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
工作时间:工作日的9:00-12:00/13:30-18:00,节假日不在线,请勿留言

12

主题

221

帖子

549

积分

BIM专业负责人

Rank: 4Rank: 4Rank: 4Rank: 4

积分
549

社区QQ达人

推荐
发表于 2014-6-12 09:54:12 | 只看该作者
路过 了解

0

主题

836

帖子

1198

积分

BIM项目负责人

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

积分
1198
推荐
发表于 2014-6-11 18:15:10 | 只看该作者
路过!!! 不发表意见……

5

主题

851

帖子

1342

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1342
推荐
发表于 2014-5-13 10:17:11 | 只看该作者
(*^__^*) 嘻嘻……

12

主题

876

帖子

1510

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1510
10F
发表于 2014-3-14 11:18:53 | 只看该作者
顶...... 楼下跟上.....

4

主题

846

帖子

1300

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1300
13F
发表于 2014-3-14 11:33:06 | 只看该作者
顶......
楼下跟上.....
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|EaBIM网 ( 苏ICP备2020058923号-1  苏公网安备32011502011255号

GMT+8, 2024-11-30 15:14

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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