Удаление Layout

Автор Тема: Удаление Layout  (Прочитано 2506 раз)

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

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

  • ADN OPEN
  • ****
  • Сообщений: 286
  • Карма: 10
Удаление Layout
« : 14-08-2021, 09:21:15 »
Всех приветствую.
Возможно ли запретить удаление Layout пользователям? Я пробовал ObjectOverrule, но закладка всё равно удаляется, а мне надо, чтобы ничего не удалялось.

Отмечено как Решение Lemieux 14-08-2021, 18:42:41

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

  • Administrator
  • *****
  • Сообщений: 13166
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Удаление Layout
« Ответ #1 : 14-08-2021, 16:15:25 »
Возможно ли запретить удаление Layout пользователям?
Не думаю что это возможно. И если пользователь хочет удалить Лист, то почему ему нужно мешать? Меня удивляют (это мягко сказано) попытки не дать пользователю что-либо сделать в AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 286
  • Карма: 10
Re: Удаление Layout
« Ответ #2 : 14-08-2021, 18:47:52 »
Возможно ли запретить удаление Layout пользователям?
Не думаю что это возможно. И если пользователь хочет удалить Лист, то почему ему нужно мешать? Меня удивляют (это мягко сказано) попытки не дать пользователю что-либо сделать в AutoCAD.
У меня команда создаёт листы в пространстве модели и для них настраивает layout, чтобы потом с одного нажатия публиковать документ. У меня команды для для добавления листов и удаления (для меня казалось логично удалять каждый последний лист, если он не понадобился), но один пользователь додумался удалить только один layout вручную и не в конце, а в середине. И вот я думаю, что делать с этой задачей.

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

  • Administrator
  • *****
  • Сообщений: 13166
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Удаление Layout
« Ответ #3 : 14-08-2021, 18:52:39 »
но один пользователь додумался удалить только один layout вручную и не в конце, а в середине. И вот я думаю, что делать с этой задачей.
Можешь его предупредить, что этого делать в будущем не следует, и желательно отменить удаление листа (используя событие LayoutManager.LayoutToBeRemoved)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 286
  • Карма: 10
Re: Удаление Layout
« Ответ #4 : 14-08-2021, 19:01:21 »
и желательно отменить удаление листа (используя событие LayoutManager.LayoutToBeRemoved)
А как отменить? Я пробовал использовать данные эвент, но так и не понял как отменить удаление. Этот же эвент просто срабатывает перед удалением.

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

  • Administrator
  • *****
  • Сообщений: 13166
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Удаление Layout
« Ответ #5 : 14-08-2021, 19:05:52 »
А как отменить?
В событии запускаешь (через Document.SendStringToExecute) команду "_Undo " или "_U ". Но вообще-то я имел в виду, чтобы заставить пользователя самого выполнить отмену, если он удаляет созданный тобой Лист. Тебе же следует его просто предупредить, что этот Лист нужен и чтобы он сам выполнил отмену удаления.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 286
  • Карма: 10
Re: Удаление Layout
« Ответ #6 : 14-08-2021, 19:08:54 »
В событии запускаешь (через Document.SendStringToExecute) команду "_Undo " или "_U ".
Хитро  :)

Но вообще-то я имел в виду, чтобы заставить пользователя самого выполнить отмену, если он удаляет созданный тобой Лист. Тебе же следует его просто предупредить, что этот Лист нужен и чтобы он сам выполнил отмену удаления.
Я подумал об этом варианте, но пока начал решать вопрос, то просто стало интересно.

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

  • Administrator
  • *****
  • Сообщений: 13166
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Удаление Layout
« Ответ #7 : 14-08-2021, 19:11:31 »
Lemieux,
Кстати, запускать отмену следует не в событии LayoutToBeRemoved, а в событии LayoutRemoved, когда уже точно известно, что будет что отменять...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 736
  • Карма: 149
    • Мои плагины к Автокаду
Re: Удаление Layout
« Ответ #8 : 14-08-2021, 20:58:35 »
У меня команда создаёт листы в пространстве модели и для них настраивает layout, чтобы потом с одного нажатия публиковать документ. У меня команды для для добавления листов и удаления (для меня казалось логично удалять каждый последний лист, если он не понадобился), но один пользователь додумался удалить только один layout вручную и не в конце, а в середине. И вот я думаю, что делать с этой задачей.
На мой взгляд, не с того конца заходите. Раз программа что-то создала (не обязательно лист), то надо как-то пометить, что это программно созданный объект (в xData, например). И после можно будет легко пересоздавать весь набор, удаляя все старые. Пользователь имеет законное право удалить все что ему угодно. Это его чертеж. Просто надо учитывать это обстоятельство. Запрещать бесполезно - найдется способ обойти запрет.