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

ADN Club => AutoCAD .NET API => Тема начата: Lemieux от 21-06-2022, 08:11:35

Название: Selection set
Отправлено: Lemieux от 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. Можно как-то обойти эту особенность?
Название: Re: Selection set
Отправлено: Александр Ривилис от 21-06-2022, 15:06:17
Можно как-то обойти эту особенность?
Сортируй так, как считаешь нужным.
Название: Re: Selection set
Отправлено: Lemieux от 21-06-2022, 16:10:06
Можно как-то обойти эту особенность?
Сортируй так, как считаешь нужным.
А есть возможность узнать время/порядок добавления в базу?
Название: Re: Selection set
Отправлено: Александр Ривилис от 21-06-2022, 16:15:08
А есть возможность узнать время/порядок добавления в базу?
Время точно нельзя. Порядок более-менее по Handle (сравнивай как целые числа)
Название: Re: Selection set
Отправлено: Lemieux от 21-06-2022, 16:19:13
А есть возможность узнать время/порядок добавления в базу?
Время точно нельзя. Порядок более-менее по Handle (сравнивай как целые числа)
Точно, я подумал про Handle, но забыл, что там целые числа. Спасибо!
Название: Re: Selection set
Отправлено: Lemieux от 21-06-2022, 20:00:39
Всё работает
Код - C# [Выбрать]
  1. ids = ids.OrderBy(id => id.Handle.Value).ToArray();
Название: Re: Selection set
Отправлено: Александр Ривилис от 21-06-2022, 20:09:44
Lemieux,
В действительности это работает не в 100% случаев. Это может не работать:
1. Если чертеж обрабатывался одним из клонов AutoCAD (я не проверял)
2. Если чертеж сохранён при помощи команды _WBLOCK или как-то аналогично, когда задан другой порядок примитивов.
3. Если менялись местами примитивы AutoCAD при помощи метода DBObject.SwapIdWith
Возможны и другие случаи, которые сейчас мне не пришли в голову.
Название: Re: Selection set
Отправлено: Lemieux от 21-06-2022, 21:06:42
Lemieux,
В действительности это работает не в 100% случаев. Это может не работать:
1. Если чертеж обрабатывался одним из клонов AutoCAD (я не проверял)
2. Если чертеж сохранён при помощи команды _WBLOCK или как-то аналогично, когда задан другой порядок примитивов.
3. Если менялись местами примитивы AutoCAD при помощи метода DBObject.SwapIdWith
Возможны и другие случаи, которые сейчас мне не пришли в голову.
Это выяснится в боевой обстановке :) Сотрудникам я всё равно сказал, чтобы не расслаблялись и проверяли проекты, а не надеялись на автоматизацию.