明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5085|回复: 16

如何利用vba得到与某选定直线相交的直线的集合

  [复制链接]
发表于 2002-9-17 17:18:00 | 显示全部楼层 |阅读模式
大家请帮忙,我已经选择了一条直线,如何不通过鼠标选择,而用vba程序得到与其相交的直线,谢谢,谢谢,thank you
发表于 2002-9-17 17:53:00 | 显示全部楼层

先得到直线的两个端点,通过两个端点使用栅选法可选择到通过直线的对象

 楼主| 发表于 2002-9-19 15:22:00 | 显示全部楼层

请问栅选法主要用那个函数或者方法、属性,谢谢指教

发表于 2002-9-19 15:58:00 | 显示全部楼层

你完全是新手?本站的文章,看看吧

http://www.mjtd.com/a2/list.asp?id=88
 楼主| 发表于 2002-9-21 11:59:00 | 显示全部楼层

求助:是以select方法的acselectionpoly,以及过滤器dxf、intersectwith方法...

本帖最后由 作者 于 2002-9-21 11:59:30 编辑

是以select方法的acselectionpoly,以及过滤器dxf、intersectwith方法联合使用吗,相当复杂,试验好久,没有成功

 楼主| 发表于 2002-9-21 15:55:00 | 显示全部楼层

栅选法难以解决与某直线相交集合的问题

发表于 2002-10-7 00:07:00 | 显示全部楼层

是这样的情形吧?

本帖最后由 作者 于 2002-10-7 0:07:32 编辑

对于黄线而言,这个集合包含white + red 线的总和

I desire this too!
[此贴子已经被作者于2002-10-6 23:36:19编辑过]



难道要遍历选集内所有其他Line,并同时做与yellow线的intersect看看是否有交点才行?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2002-10-7 19:41:00 | 显示全部楼层

getatpont()怎么就能选一个而不是全部通过那个点的实体呢?

得到端点p1后使用
selection.getPointAt(p1)
为什么得不到通过p1的全部Line的选集呢?
只有一条被选中了。
发表于 2002-10-7 21:33:00 | 显示全部楼层

:) 解决了

本帖最后由 作者 于 2002-10-7 21:33:27 编辑

下午起床后又做了2个小时,
selectPointAt()总是不争气,只选择一条。
没办法只好曲线救国啦。
用**********slectcro sd********
yo在这个“小盒子里”真是太难编辑了。我换。。。



Public Sub selectAtPoint()


    Dim vSelectPoint As Variant
    Dim selectPoint(2) As Double
   
    Dim corner1 As Variant
    Dim corner2 As Variant
    Dim precious As Double
   
    Dim utilObj As Object
    Dim selection As AcadSelectionSet
   
    Dim i As Integer
    Dim Line As AcadLine
   
    Set selection = ThisDrawing.ActiveSelectionSet
    Set utilObj = ThisDrawing.Utility
   
   
   
    vSelectPoint = utilObj.GetPoint(, "select the test point")
    selectPoint(0) = vSelectPoint(0)
    selectPoint(1) = vSelectPoint(1)
   
    precious = 0.0000000000001 '模拟点的精度。
   
    utilObj.CreateTypedArray corner1, vbDouble, (selectPoint(0) - precious), (selectPoint(1) + precious), 0
    utilObj.CreateTypedArray corner2, vbDouble, (selectPoint(0) + precious), (selectPoint(1) - precious), 0
        
    selection.Select acSelectionSetCrossing, corner1, corner2
   
    For i = 0 To selection.Count - 1
        Set Line = selection.Item(i)
        Line.Color = acBlue
        Line.Update
    Next
   
End Sub
 楼主| 发表于 2002-10-9 11:23:00 | 显示全部楼层

我把整个图层上的line线都遍历了,才筛选到与该直线相交的线。不知道有没有更快的办

我把整个图层上的line线都遍历了,才筛选到与该直线相交的线。不知道有没有更快的办法[br]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 20:46 , Processed in 0.196864 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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