AutoCAD 2014 в контексте приложения отказывается закрывать фоновый документ

Автор Тема: AutoCAD 2014 в контексте приложения отказывается закрывать фоновый документ  (Прочитано 24511 раз)

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

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Автокад 2018. Код из поста №3 не работает. Не зависимо от состояния переменной FIBERWORLD.
В AutoCAD 2018 уже нет FIBERWORLD. Точнее она всегда соответствует 0.
Код работает в контексте приложения или в контексте документа?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Перечитайте внимательно сообщения 25 и 26 из этой темы и больше никогда в коде не пытайтесь менять значения этих переменных. Ну и начиная с версии 2015 эти переменные не работают - фиберов в Автокаде больше нет

Оффлайн SatanaXIII

  • ADN OPEN
  • Сообщений: 27
  • Карма: 2
В AutoCAD 2018 уже нет FIBERWORLD. Точнее она всегда соответствует 0.
А еще точнее nil, который приводится к нулю (прошу прощения за буквоедство). Если попробовать получить значение переменной, которой никогда не существовало, то результат будет тот же.
больше никогда в коде не пытайтесь менять значения этих переменных
Имеется в виду именно этих переменных или основной посыл в том, что в коде менять значения системных переменных чем-либо чревато?
Код работает в контексте приложения или в контексте документа?
В контексте документа, если я правильно понимаю (вызов происходит непосредственно в теле выполняемой команды). Пробовал оборачивать вызов в функцию ExecuteInApplicationContext, но результат тот же.
Бензопила пилит тело, а виолончель душу.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
А еще точнее nil, который приводится к нулю (прошу прощения за буквоедство). Если попробовать получить значение переменной, которой никогда не существовало, то результат будет тот же.
Именно так. Этой переменной уже нет.
Имеется в виду именно этих переменных или основной посыл в том, что в коде менять значения системных переменных чем-либо чревато?
Одну из этих переменных вообще нельзя менять (она "read-only"). Вторая отрабатывает только после перезапуска AutoCAD, так что в коде нет смысла её менять.

В контексте документа, если я правильно понимаю (вызов происходит непосредственно в теле выполняемой команды).
В контексте документа работать и не будет. Нужно добавить команде флаг CommandFlags.Session
как сделано здесь: http://adn-cis.org/forum/index.php?topic=500.msg1555#msg1555
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Имеется в виду именно этих переменных или основной посыл в том, что в коде менять значения системных переменных чем-либо чревато?
Именно этих, Александр Наумович выше объяснил почему.

Оффлайн SatanaXIII

  • ADN OPEN
  • Сообщений: 27
  • Карма: 2
В контексте документа работать и не будет. Нужно добавить команде флаг CommandFlags.Session
как сделано здесь
С флагом заработало.
Александр Ривилис, Дмитрий Загорулькин, большое спасибо.
Бензопила пилит тело, а виолончель душу.