Тема: Проблемы SelectByPolygon

SelectByPolygon не хочет выбирать объекты если количество вершин оч. большое (>1000). Есть способы ето побороть ?

Re: Проблемы SelectByPolygon

Вообще интересует следующий вопрос. Попадает ли интересующая точка в полигон?

Re: Проблемы SelectByPolygon

Public Function PointInPpolyline(po As Variant, ent As AcadEntity) As Boolean
'Function  :  PointInPpolyline
'LastUpdt  :  Mar.1,2004.
'
'1. Input - X,Y,Z Point Array and closed LWPolyline
'2. Function create AcadRay and ask inresection between AcadRay and polyline
'3. Output TRUE if inside or FALSE if outside
    Dim TempRay As AcadRay
    Dim po0, inters As Variant
    Dim i As Integer
    ReDim po0(2) As Double
    Dim Ang As Double
    po0(0) = 0: po0(1) = 0: po0(2) = 0
    For i = 0 To 10
        Set TempRay = ThisDrawing.ModelSpace.AddRay(po, po0) ' Create new AcadRay
        Ang = dtr(i * 11.5)
        TempRay.Rotate po, Ang
        inters = TempRay.IntersectWith(ent, acExtendNone)
        TempRay.Delete 'Delete new AcadRay
        If UBound(inters) < 0 Then
            PointInPpolyline = False
            Exit For
        ElseIf (UBound(inters) + 1) / 3 Mod 2 = 0 Then
            PointInPpolyline = False
            Set inters = Nothing
        Else
            PointInPpolyline = True
            Exit For
        End If
    Next
End Function
' Convert angle in degrees to radians
Public Function dtr(a As Double) As Double
    dtr = (a / 180) * pi
End Function

Re: Проблемы SelectByPolygon

Я сделал свой модуль по выбру полигонов...
Позволяет...
1.Попал полигон в контур или нет.
2.Смежник внутринний
3.Смежник внешний
я работаю в кадастре и очень часто с этим сталкиваюсь...насколько мне удалось форма полигона не влияет на выбор...
обращайся...чем смогу помогу...