Сообщество программистов Autodesk в СНГ

ADN Club => VBA => Тема начата: filat от 08-10-2021, 10:51:54

Название: VBA AutoCAD как задать условие проверки существования Стартовой точки у элемента
Отправлено: filat от 08-10-2021, 10:51:54
Есть AcadDocument.ModelSpace - входящие в эту коллекцию простые линии имеют Стартовую точку.
Как задать условие проверки существования такой точки у элемента?
Код - Text [Выбрать]
  1. For Each oModSpace In AcadDocument.ModelSpace
  2.     If oModSpace.StartPoint Is Nothing Then
такое условие проверки не работает...
Название: Re: VBA AutoCAD как задать условие проверки существования Стартовой точки у элемента
Отправлено: Александр Ривилис от 08-10-2021, 14:38:47
filat,
Простите, Сэр, но это бред! У любого отрезка (Line) всегда есть начальная точка. Так что тебе нужно проверить, что объект - это Line. И этого будет достаточно.
Название: Re: VBA AutoCAD как задать условие проверки существования Стартовой точки у элемента
Отправлено: filat от 08-10-2021, 15:23:01
Да в целом нет возражений, только вот кроме линий, в этой коллекции есть и другие элементы - например, полилинии! и у них нет параметра Стартпоинт - озвученным условием их отсеч не получается....
Название: Re: VBA AutoCAD как задать условие проверки существования Стартовой точки у элемента
Отправлено: Александр Ривилис от 08-10-2021, 18:00:52
filat,
Сформулируй пожалуйста нормально задачу.
Название: Re: VBA AutoCAD как задать условие проверки существования Стартовой точки у элемента
Отправлено: Nutson от 08-10-2021, 21:56:22
Если надо получить все линии в модели то лучше запросить только их, а не перебирать все
Код - Visual Basic [Выбрать]
  1. Sub test()
  2. Dim ssetObj As AcadSelectionSet
  3. Set ssetObj = ThisDrawing.SelectionSets.Add("SSET")
  4.  
  5.  
  6.  
  7. Dim FilterType(0) As Integer
  8. Dim FilterData(0)
  9. FilterType(0) = 0
  10. FilterData(0) = "LINE"
  11.  
  12. Call ssetObj.Select(AcSelect.acSelectionSetAll, , , FilterType, FilterData)
  13. End Sub
  14.