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

ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 07-06-2016, 20:50:43

Название: Не выбираются объекты функцией Select
Отправлено: Алексей (IdeaSoft) от 07-06-2016, 20:50:43
Сделал тестовую команду для выбора набора объектов (тестирую в acad 2014).
Тест выбирает блоки с именем PSM_RED_PIKET в слое _PSM_RED_PIKET
Тест работает успешно во всех файлах

Но в одном файле работать не хочет
объекту sel.Value возвращается Nothing

Прикрепить файл целиком пока не могу по двум причинам:
1. Он большой 36 Мб
2. Файл может представлять коммерческую тайну предприятия.

Делаю _PURGE (с учетом вложенных удалений),  _AUDIT, SAVEAS

Если я вырезаю большую часть объектов оставляя незначительную часть этого файла и делаю _PURGE, то все работает.
Смысла нет выкладывать на форум маленький кусочек - если в нем все получается хорошо.

А вот с другими аргументами к примеру выборка из другого слоя к примеру для объектов типа
ELLIPSE - все работает хорошо.

Подскажите что еще можно сделать с этим файлом что бы выборка получилась?

Вот код теста
Код - vb.net [Выбрать]
  1. Imports CAD_RTM = Autodesk.AutoCAD.Runtime
  2. Imports CAD_EDI = Autodesk.AutoCAD.EditorInput
  3. Imports CAD_DBS = Autodesk.AutoCAD.DatabaseServices
  4. Imports CAD_APS = Autodesk.AutoCAD.ApplicationServices
  5. <CAD_RTM.CommandMethod("TEST_SEL")> _
  6. Public Sub COMM_GET_SEL()
  7.             Try
  8.                 Dim filter As CAD_EDI.SelectionFilter = _
  9.                          New CAD_EDI.SelectionFilter({New CAD_DBS.TypedValue(CAD_DBS.DxfCode.Start, "INSERT"), _
  10.                                                       New CAD_DBS.TypedValue(CAD_DBS.DxfCode.LayerName, "_PSM_RED_PIKET"), _
  11.                                                       New CAD_DBS.TypedValue(CAD_DBS.DxfCode.BlockName, "PSM_RED_PIKET")})
  12.                 Dim acDocMgr As CAD_APS.DocumentCollection = CAD_APS.Application.DocumentManager
  13.                 Dim sel As CAD_EDI.PromptSelectionResult = acDocMgr.MdiActiveDocument.Editor.SelectAll(filter)
  14.                 MsgBox("выбрано: " & sel.Value.Count & " элементов")
  15.             Catch ex As Exception
  16.                 MsgBox(ex.Message)
  17.             End Try
  18. End Sub
Название: Re: Не выбираются объекты функцией Select
Отправлено: Андрей Бушман от 07-06-2016, 22:57:00
Прикрепить файл целиком пока не могу по двум причинам:
1. Он большой 36 Мб
2. Файл может представлять коммерческую тайну предприятия.

Подскажите что еще можно сделать с этим файлом что бы выборка получилась?
Первый пункт не является проблемой при реальном желании предоставить файл. Всё остальное - из категории назначения диагноза больному на основе фотографии его автомобиля...
Название: Re: Не выбираются объекты функцией Select
Отправлено: Александр Ривилис от 07-06-2016, 23:15:12
Если я вырезаю большую часть объектов оставляя незначительную часть этого файла и делаю _PURGE, то все работает.
Если это 100%-ое поведение, то проблема файла и конкретной версии AutoCAD и к разделу .NET не имеет никакого отношения.
Название: Re: Не выбираются объекты функцией Select
Отправлено: Александр Ривилис от 07-06-2016, 23:17:35
Подскажите что еще можно сделать с этим файлом что бы выборка получилась?
Не пользоваться Editor.SelectAll. Пройтись итератором по всем объектам Пространства модели и отобрать только вставки блока "PSM_RED_PIKET" на слое "_PSM_RED_PIKET". Другого способа я не вижу.