Selection set

Автор Тема: Selection set  (Прочитано 2590 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • ****
  • Сообщений: 382
  • Карма: 21
Selection set
« : 21-06-2022, 08:11:35 »
Всех приветствую.
Есть объекты 1, 2, 3, 4, 5. Если выбрать объекты разом, с помощью Editor.GetSelection(), и скопировать их, то новые объекты будут в таком же порядке. Если выбраться все эти объекты, и снять выделение с  2, 3, то порядок так же останется последовательный - 1, 4, 5. Из чего я делаю выбор, что каким способом не выбирай, объекты в SS сортируются по потому в каком порядке они добавлялись на ModelSpace. Но если разбить выбор на несколько раз, например 1, 3, 5 и 2, 4, то порядок в SS будет 1, 3, 5, 2, 4. Можно как-то обойти эту особенность?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Selection set
« Ответ #1 : 21-06-2022, 15:06:17 »
Можно как-то обойти эту особенность?
Сортируй так, как считаешь нужным.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 382
  • Карма: 21
Re: Selection set
« Ответ #2 : 21-06-2022, 16:10:06 »
Можно как-то обойти эту особенность?
Сортируй так, как считаешь нужным.
А есть возможность узнать время/порядок добавления в базу?

Отмечено как Решение Lemieux 21-06-2022, 16:18:29

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Selection set
« Ответ #3 : 21-06-2022, 16:15:08 »
А есть возможность узнать время/порядок добавления в базу?
Время точно нельзя. Порядок более-менее по Handle (сравнивай как целые числа)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 382
  • Карма: 21
Re: Selection set
« Ответ #4 : 21-06-2022, 16:19:13 »
А есть возможность узнать время/порядок добавления в базу?
Время точно нельзя. Порядок более-менее по Handle (сравнивай как целые числа)
Точно, я подумал про Handle, но забыл, что там целые числа. Спасибо!
« Последнее редактирование: 21-06-2022, 19:59:49 от Lemieux »

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

  • ADN OPEN
  • ****
  • Сообщений: 382
  • Карма: 21
Re: Selection set
« Ответ #5 : 21-06-2022, 20:00:39 »
Всё работает
Код - C# [Выбрать]
  1. ids = ids.OrderBy(id => id.Handle.Value).ToArray();

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Selection set
« Ответ #6 : 21-06-2022, 20:09:44 »
Lemieux,
В действительности это работает не в 100% случаев. Это может не работать:
1. Если чертеж обрабатывался одним из клонов AutoCAD (я не проверял)
2. Если чертеж сохранён при помощи команды _WBLOCK или как-то аналогично, когда задан другой порядок примитивов.
3. Если менялись местами примитивы AutoCAD при помощи метода DBObject.SwapIdWith
Возможны и другие случаи, которые сейчас мне не пришли в голову.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 382
  • Карма: 21
Re: Selection set
« Ответ #7 : 21-06-2022, 21:06:42 »
Lemieux,
В действительности это работает не в 100% случаев. Это может не работать:
1. Если чертеж обрабатывался одним из клонов AutoCAD (я не проверял)
2. Если чертеж сохранён при помощи команды _WBLOCK или как-то аналогично, когда задан другой порядок примитивов.
3. Если менялись местами примитивы AutoCAD при помощи метода DBObject.SwapIdWith
Возможны и другие случаи, которые сейчас мне не пришли в голову.
Это выяснится в боевой обстановке :) Сотрудникам я всё равно сказал, чтобы не расслаблялись и проверяли проекты, а не надеялись на автоматизацию.