Как вызвать *push-error-using-command* ?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как вызвать *push-error-using-command* ?

Как вызвать *push-error-using-command* ?

Ответ
Поиск в этой теме
Непрочитано 08.02.2015, 17:32 #1
Как вызвать *push-error-using-command* ?
480725
 
Москва
Регистрация: 06.10.2007
Сообщений: 132

При работе программ в Автокаде 2015 периодически появляется сообщение:
Невозможно вызвать (command) из *error* без предварительного вызова (*push-error-using-command*).
Рекомендуется преобразовать (command) в (command-s)

Раз появившись оно фактически блокирует все вызовы программ до перезапуска Автокада.
Единственное, что удалось найти в интернет - это http://forums.autodesk.com/t5/autoca...t/td-p/5045786
Но там, похоже, только жалобы, решения проблемы вроде не дают.
В других Автокадах таких проблем не возникало...
Кто-нибудь знает, что такое *push-error-using-command* и как с ним работать?
Кто-нибудь наблюдал такое явление?
Просмотров: 13169
 
Непрочитано 08.02.2015, 18:26
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Посмотрите на сайте аутодеска
Сергей812 вне форума  
 
Непрочитано 08.02.2015, 19:29
#3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


480725, ты бы хоть примерно язык обозначил.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 08.02.2015, 21:58
#4
480725


 
Регистрация: 06.10.2007
Москва
Сообщений: 132


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
480725, ты бы хоть примерно язык обозначил.
Извиняюсь. АвтоЛисп.
480725 вне форума  
 
Непрочитано 08.02.2015, 22:08
#5
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Отлично. Складываем AutoCAD, LISP и command, вспоминая про появившийся в ACAD2015 вариант command-s: http://forum.dwg.ru/showthread.php?t=118603

----- добавлено через ~1 мин. -----
Ну и тому подобное. VVA, в частности, тоже выкладывал обходные пути.
P.S. Свой код анализирцуй и старайся избавиться от командных методов.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 08.02.2015, 22:15
#6
480725


 
Регистрация: 06.10.2007
Москва
Сообщений: 132


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Посмотрите на сайте аутодеска
Там действительно про это пишут, но на английском языке. Google-перевод я понять не смог. Такое впечатление, что что-то объясняют, но смысл объяснения непонятен.
Смутное подозрение, что надо указать команду Автокада (на которой, видимо происходит сбой). Но это только подозрение..

Если Вы поняли смысл текста в этой ссылке - слезно прошу - объясните! Там ведь совсем небольшой объем..

----- добавлено через ~20 мин. -----
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
вспоминая про появившийся в ACAD2015 вариант command-s: http://forum.dwg.ru/showthread.php?t=118603
Я заходил на эту ссылку перед тем как создать тему. Как я понял, там обсуждают разницу в функциях command и command-s и приходят к выводу, что одна функция commabd-s может вызывать только одну команду Автокада, а command - несколько. Кроме того они различаются синхронностью, которая четко не определена (в основном ссылка на англоязычный ресурс).


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Свой код анализирцуй и старайся избавиться от командных методов.
Я со своими программами, конечно, так или иначе решу вопрос. Но есть пользователи, скачавшие программы из интернета, забывшие откуда их скачали и имеющие перспективу непонятного прекращения работы программ. Перспективу, которая появилась только в А2015.

Последний раз редактировалось 480725, 08.02.2015 в 22:37.
480725 вне форума  
 
Непрочитано 09.02.2015, 09:30
#7
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Цитата:
Сообщение от 480725 Посмотреть сообщение
Но есть пользователи, скачавшие программы из интернета, забывшие откуда их скачали и имеющие перспективу непонятного прекращения работы программ. Перспективу, которая появилась только в А2015.
Вот именно поэтому мне и удалось на работе пропихнуть принцип "если что-то надо, сообщайте - разработаем. Если скачали и поставили сами - сами и разбирайтесь".
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.02.2015, 10:25
#8
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от 480725 Посмотреть сообщение
Там действительно про это пишут, но на английском языке. Google-перевод я понять не смог. Такое впечатление, что что-то объясняют, но смысл объяснения непонятен.
Я особо не вникал, так как пока нет нужды под 2015 что-то писать.. но там из примера все видно же
Цитата:
(*push-error-using-command*) ; Indicate use of Command function instead of Command-s in the custom error handler
В вольном переводе: Индикатор (флаг) использования Command функции вместо Command-s в данном обработчике ошибок.

и обращаем внимание на парный
Цитата:
(*pop-error-mode*) ; End the use of *push-error-using-command*
Завершение использования Command функции вместо Command-s в данном обработчике ошибок.
Сергей812 вне форума  
 
Непрочитано 09.02.2015, 15:09
#9
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
VVA, в частности, тоже выкладывал обходные пути.
Чтобы не переписывать обработчики ошибок, обращать внимание на
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
и обращаем внимание на парный
Цитата:
(*pop-error-mode*) ; End the use of *push-error-using-command*
не отказываться от использования command, то можно воспользоваться этим приемом
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 09.02.2015, 16:40
#10
480725


 
Регистрация: 06.10.2007
Москва
Сообщений: 132


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Цитата:
(*push-error-using-command*) ; Indicate use of Command function instead of Command-s in the custom error handler
В вольном переводе: Индикатор (флаг) использования Command функции вместо Command-s в данном обработчике ошибок.

и обращаем внимание на парный
Т.е. этот английский текст намекает на то, что в обработчике ошибок теперь следует применять только command-s или приведенную у них в примере конструкцию? Правильно?
480725 вне форума  
 
Непрочитано 09.02.2015, 17:29
#11
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


В принципе, там смысл текста то ясен-разграничение по доступу к глобальным и локальным переменным. Видимо, это следствие продолжения повышения "безопасности" AutoCAD)
Цитата:
When using *push-error-using-command*, you are limited to accessing only global variables and none of the local variables defined within the function where the error occurred from your custom *error* handler. If access to the local variables is required, replace any instances of the command function with command-s function and call *push-error-using-stack* instead.
Сергей812 вне форума  
 
Автор темы   Непрочитано 09.02.2015, 18:53
#12
480725


 
Регистрация: 06.10.2007
Москва
Сообщений: 132


Честно сказать, я только еще больше запутываюсь во всех объяснениях. . . А тут еще ситуация взяла и перестала у меня воспроизводится сама по себе... До поры до времени..
Добавил.
В общем, выяснилось, что работа программ все-таки не блокируется. Просто иногда (далеко не всегда) обработчик ошибок взбрыкивает. Я получил достаточно советов, чтобы надеяться, что это удастся исправить.

Последний раз редактировалось 480725, 10.02.2015 в 18:54.
480725 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как вызвать *push-error-using-command* ?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Как вызвать VBA и передать в нее VLA-OBJECT IXMLDOMDocument3? LastGraff LISP 4 12.08.2011 15:41
Как вызвать "Startup" в AutoCAD ? Ильсур AutoCAD 2 17.11.2009 15:38
Как можно из LISP запросить у юзера выделить произвольные элементы и затем вызвать аналог WMFOUT для сохранения их в изображении? lexluther LISP 4 12.08.2009 11:44
Как правильно вызвать функцию? paradoxvaha Программирование 7 09.07.2008 16:25