VBA AutoCAD как задать условие проверки существования Стартовой точки у элемента

Автор Тема: VBA AutoCAD как задать условие проверки существования Стартовой точки у элемента  (Прочитано 3114 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн filatАвтор темы

  • ADN Club
  • ****
  • Сообщений: 262
  • Карма: 2
Есть AcadDocument.ModelSpace - входящие в эту коллекцию простые линии имеют Стартовую точку.
Как задать условие проверки существования такой точки у элемента?
Код - Text [Выбрать]
  1. For Each oModSpace In AcadDocument.ModelSpace
  2.     If oModSpace.StartPoint Is Nothing Then
такое условие проверки не работает...

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
filat,
Простите, Сэр, но это бред! У любого отрезка (Line) всегда есть начальная точка. Так что тебе нужно проверить, что объект - это Line. И этого будет достаточно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн filatАвтор темы

  • ADN Club
  • ****
  • Сообщений: 262
  • Карма: 2
Да в целом нет возражений, только вот кроме линий, в этой коллекции есть и другие элементы - например, полилинии! и у них нет параметра Стартпоинт - озвученным условием их отсеч не получается....

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
filat,
Сформулируй пожалуйста нормально задачу.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Nutson

  • ADN OPEN
  • Сообщений: 43
  • Карма: 6
Если надо получить все линии в модели то лучше запросить только их, а не перебирать все
Код - 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.