乐筑天下

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

region如何转化为polyline

[复制链接]
LDJ

20

主题

35

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2015-5-28 10:17:00 | 显示全部楼层 |阅读模式
region里面有多个独立封闭小区域,如何转化为polyline?
大侠们,如何实现?
给个思路和关键代码
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2015-5-28 10:50:00 | 显示全部楼层
Cad2008以上,引用Brep库
以下只能炸开,然后自己写程序合并线段?
回复

使用道具 举报

LDJ

20

主题

35

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2015-5-28 10:57:00 | 显示全部楼层
Brep库没有用过 该如何使用啊?
给段简单代码可以吗?
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2015-5-28 11:35:00 | 显示全部楼层
writeby xdcad csharp
  1.         [CommandMethod("Test13")]
  2.         public void Test13()
  3.         {
  4.             Document doc = Application.DocumentManager.MdiActiveDocument;
  5.             Editor ed = doc.Editor;
  6.             Database database = doc.Database;
  7.             PromptEntityOptions peo = new PromptEntityOptions("\nSelect Region");
  8.             peo.SetRejectMessage("\nOnly Region");
  9.             peo.AddAllowedClass(typeof(Region), true);
  10.             PromptEntityResult per = ed.GetEntity(peo);
  11.             if (per.Status != PromptStatus.OK) return;
  12.             using (Transaction tr = database.TransactionManager.StartTransaction())
  13.             {
  14.                 ObjectId id = per.ObjectId;
  15.                 Entity ent = (Entity)id.GetObject(OpenMode.ForRead);
  16.                 Brep brep = new Brep(ent);
  17.                 BrepEdgeCollection elp = brep.Edges;
  18.                 BlockTableRecord btr = (BlockTableRecord) tr.GetObject(database.CurrentSpaceId, OpenMode.ForWrite);
  19.                 int i = 1;
  20.                 foreach (Edge edge in elp)
  21.                 {
  22.                     NurbCurve3d c3d = edge.GetCurveAsNurb();
  23.                     Curve cv = Curve.CreateFromGeCurve(c3d);
  24.                     cv.ColorIndex = i;
  25.                     btr.AppendEntity(cv);
  26.                     tr.AddNewlyCreatedDBObject(cv, true);
  27.                     i++;
  28.                 }
  29.                 tr.Commit();
  30.             }
  31.         }
回复

使用道具 举报

LDJ

20

主题

35

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2015-5-28 11:55:00 | 显示全部楼层
谢谢大师,我用region先做切割运算 后把结果分解成polyline
回复

使用道具 举报

LDJ

20

主题

35

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2015-5-28 13:52:00 | 显示全部楼层
Brep 和BrepEdgeCollection 在哪个类库里面,我找了半天没有找到
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 15:35 , Processed in 0.502984 second(s), 64 queries .

© 2020-2025 乐筑天下

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