乐筑天下

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

自己写的一个首尾相连线段或多段线并成一条多段线的程序

[复制链接]

6

主题

30

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
54
发表于 2011-6-15 11:31:00 | 显示全部楼层 |阅读模式
  1.   经测试没有大问题,只是画完多段线后原有线段不能完全删除,希望高手给予修改意见,如有BUG请回复!
  2. public class mycommand
  3.     {
  4.         //本代码由书写,仅供学习用,引用请注明出处.............
  5.         //联系本人请Q:584457142
  6.         [CommandMethod("my")]//将首尾相连的线段或多段线连成多段线
  7.         public void my()
  8.         {
  9.             Document acDoc = Application.DocumentManager.MdiActiveDocument;
  10.             Database acCurDb = acDoc.Database;
  11.             Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
  12.             try
  13.             {
  14.                 using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
  15.                 {
  16.                     BlockTable acBlkTbl;
  17.                     acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;
  18.                     BlockTableRecord acBlkTblRec;
  19.                     acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],
  20.                                                     OpenMode.ForWrite) as BlockTableRecord;
  21.                    PromptSelectionOptions pso=new PromptSelectionOptions();
  22.                    PromptSelectionResult psr = ed.GetSelection(pso);
  23.                     Polyline pl = new Polyline();
  24.                     if (psr.Status == PromptStatus.OK)
  25.                     {
  26.                         SelectionSet ss = psr.Value;
  27.                         int n = ss.Count;
  28.                         ObjectIdCollection oc = new ObjectIdCollection() ;
  29.                         for (int i = 0; i  -1; i--)
  30.                         {
  31.                             final.Add(pl2.GetPoint3dAt(i));
  32.                         }
  33.                         
  34.                     }
  35.                 }
  36.                 else if (pl1.StartPoint.Equals(equalpoint))
  37.                 {
  38.                     if (pl2.EndPoint.Equals(equalpoint))
  39.                     {
  40.                         for (int i = 0; i = 0; i--)
  41.                         {
  42.                             final.Add(pl2.GetPoint3dAt(i));
  43.                         }
  44.                         for (int i = 1; i = 0; i--)
  45.                         {
  46.                             final.Add(pl1.GetPoint3dAt(i));
  47.                         }
  48.                         if (equalpoint.Equals(l.StartPoint))
  49.                             final.Add(l.EndPoint);
  50.                         else final.Add(l.StartPoint);
  51.                     }
  52.                     for (int i = 0; i = 0; i--)
  53.                         {
  54.                             final.Add(pl1.GetPoint3dAt(i));
  55.                         }
  56.                         if (equalpoint.Equals(l.StartPoint))
  57.                             final.Add(l.EndPoint);
  58.                         else final.Add(l.StartPoint);
  59.                     }
  60.                     for (int i = 0; i < final.Count; i++)
  61.                     {
  62.                         pl.AddVertexAt(i, new Point2d(final[i].X, final[i].Y), 0, 0, 0);
  63.                     }
  64.                     return pl;
  65.                 }
  66.                 #endregion
  67.                 else return null;
  68.         }

回复

使用道具 举报

21

主题

97

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
181
发表于 2011-6-15 11:33:00 | 显示全部楼层
应该有这种方法了吧。
回复

使用道具 举报

6

主题

30

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
54
发表于 2011-6-15 12:37:00 | 显示全部楼层
回复
别人肯定是写过了,你是API里面有这个方法吗?不妨写出方法名来一看
回复

使用道具 举报

1

主题

18

帖子

4

银币

初来乍到

Rank: 1

铜币
22
发表于 2011-6-29 14:06:00 | 显示全部楼层
多谢分享,来看看
回复

使用道具 举报

54

主题

552

帖子

11

银币

中流砥柱

Rank: 25

铜币
767
发表于 2012-3-8 09:50:00 | 显示全部楼层
谢谢楼主分享,很不错的程度,
回复

使用道具 举报

3

主题

7

帖子

2

银币

初来乍到

Rank: 1

铜币
19
发表于 2014-3-10 15:46:00 | 显示全部楼层
多谢楼主,正愁着如何实现呢。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 13:16 , Processed in 0.369719 second(s), 64 queries .

© 2020-2025 乐筑天下

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