明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2865|回复: 5

请问如何选择与一条直线相交的其他直线

[复制链接]
发表于 2012-7-7 22:42:07 | 显示全部楼层 |阅读模式
请问使用C#如何选择cad中与某一条直线相交或者刚好相接在一起(包括一条直线的端点与该直线的中间某一个地方相接,或者该直线端点与其他直线的端点相接)的其他直线,谢谢。
发表于 2012-7-9 19:44:41 | 显示全部楼层
用选择集的拦选
 楼主| 发表于 2012-7-9 23:25:10 | 显示全部楼层
sxpd 发表于 2012-7-9 19:44
用选择集的拦选

谢谢您的回答,能不能给个具体点的说明呢?
发表于 2012-7-10 06:08:03 | 显示全部楼层
外地旅游ing
好像是ss.SelectF....函数
低版本没有该函数
不过拦选也有问题
有时选不着,并且必须拦选范围可见
发表于 2012-7-27 11:43:04 | 显示全部楼层
  1. SelectionSet pSelectSet = pDocument.Editor.SelectAll().Value;
  2.             SelectionSet pSelectSet1 = pDocument.Editor.GetSelection().Value;

  3.             using (Transaction tran = pDatabase.TransactionManager.StartTransaction())
  4.             {
  5.                 Entity entity = tran.GetObject(pSelectSet1.GetObjectIds()[0], OpenMode.ForRead) as Entity;
  6.                 BlockTableRecord pBlockTableRecord = (BlockTableRecord)tran.GetObject(pDatabase.CurrentSpaceId, OpenMode.ForWrite);

  7.                 foreach (ObjectId pObjId in pSelectSet.GetObjectIds())
  8.                 {
  9.                     Entity pEntity = tran.GetObject(pObjId, OpenMode.ForWrite) as Entity;
  10.                     Point3dCollection p3dCollection=new Point3dCollection();
  11.                     entity.IntersectWith(pEntity, Intersect.OnBothOperands, p3dCollection, 0, 0);

  12.                     if (p3dCollection.Count > 0)
  13.                     {
  14.                         pEntity.ColorIndex = 3;
  15.                     }
  16.                     
  17.                 }
  18.                 tran.Commit();
  19.             }
lz试下这个代码 可以选择出所有与某一块相交的实体
发表于 2013-1-30 18:38:11 | 显示全部楼层
楼上的方法只适合线段比较少的情况,如果有大量的线条,遍历每个线条,那就太慢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 14:37 , Processed in 0.175171 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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