Bryco 发表于 2007-9-10 13:40:17

外部参照中pline的扩展数据,pline中用于计算块的选择边界

本人'我有一个程序;我正在研究连接到pline的扩展数据 然后,该线将用作计算该线内块的选择边界 现在我'我开始考虑能够从外部参照中读取pline上的扩展数据-我不知道;t认为#039;这太难了 我'我很难把我的头绕过去,这部分是关于使用外部参照中的pline作为选择边界的 该过程是否类似于宿主图形中的选择集 如何确定嵌套pline中是否包含块 这将是一个非常头痛的任务吗 如果主体图形在外部参照的pline内有块呢 主持人's块被计算在内 (我希望不会)
I港#039;除了简单地计算所有块(包括宿主图形中的块)之外,t从外部参照中访问信息做得太多了
对此有什么想法或智慧之言吗?

顺水行舟 发表于 2007-9-10 13:54:26

伪思维:使用pline的坐标,并将其传递给WP方法的选择集,当然使用过滤
我走对了吗?

粽子没错 发表于 2007-9-10 13:58:07

这将是一项非常困难的任务……我将通过绑定外部参照来完成;s作为插入和分解-然后从那里做选择,就像我在show your stuff中最新的superburst和mytrim代码示例中所做的那样…但等待真正的大师。。。。。

勤迷西游记 发表于 2007-9-11 10:41:08

它的难度取决于你的设置
通常,当块在零旋转和原点零处提供信息时,您使用矩阵来确定独立实体在块参照或外部参照中的位置
如果外部参照的比例为1;原点为0,0,0,不旋转,法线为0,1,则不需要矩阵
下面的代码假设了所有这些(使用selset函数),并使用一个只有一个矩形的外部参照
Sub SELFROMX()
    Dim x As AcadExternalReference
    Dim B As AcadBlock
    Dim SS As AcadSelectionSet
    Dim xname As String
    xname = "3"
    Set SS = SSet(2, xname)
    If SS.count1 Then Exit Sub
    Set x = SS(0)
    SS.Delete
    Dim E As AcadEntity, P As AcadLWPolyline
    For Each E In ThisDrawing.Blocks(xname)
      If TypeOf E Is AcadLWPolyline Then
            Set P = E
            Exit For
      End If
    Next
    Dim P1(2) As Double, P2(2) As Double
    P1(0) = P.Coordinate(0)(0)
    P1(1) = P.Coordinate(0)(1)
    P1(2) = P.Elevation
    P2(0) = P.Coordinate(2)(0)
    P2(1) = P.Coordinate(2)(1)
    P2(2) = P.Elevation
    Set SS = ThisDrawing.SelectionSets.Add("SS")
    SS.Select acSelectionSetWindow, P1, P2
    Debug.Print SS.count
End Sub

加藤巧克莉 发表于 2007-9-11 12:40:05

我认为Matt希望从外部参照中选择对象,而不是从当前图形中。正当

andylaufans 发表于 2007-9-11 12:58:54


啊哈 本人'我已经从当前图形中获得了信息 我希望将所有文件外部参照到一个临时图形中,然后使用我现有的扩展数据线作为边界进行大规模提取。
页: [1]
查看完整版本: 外部参照中pline的扩展数据,pline中用于计算块的选择边界