|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
09.10.2007, 18:05 | #1 | |
Помогите с отменой действия программы!
Москва
Регистрация: 06.10.2007
Сообщений: 132
|
||
Просмотров: 9855
|
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
по первому у вас обработчик недоработан скорее всего здесь кое какие нюансы показаны
по второму могу предложить опции mark и back для команды undo |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
0. Чтобы у пользователя не возникало нездоровое желание выбирать меню, можно поставить прогресс-бар (вроде тоже на аркаде обсуждалось).
1, 2 и далее: желательно увидеть код, чтобы можно было сказать более конкретно. Если создаются временные примитивы, достаточно перед работой функции запомнить последний созданный (entlast), и все, что после него, сносить. Короче, код - в студию!
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Цитата:
_mark и _back не помогают - до восьми раз приходится повторять отмену в некоторых случаях, а дисбаланс в сторону _back приведет к отмене всего сеанса работы. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Так код покажи - ИМХО там можно обойти эти ограничения.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Цитата:
|
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
"Ладно, папа, пойдем длинным путем" (с)
Опиши, что код должен делать. Может, что и придумается.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Цитата:
При таком подходе, время изменения чертежа мало и его можно обернуть непрерываемой оберткой, а все остальное время, сам чертеж неизменен... Кстати, я не пользуюсь сложными обработчиками ошибок, мне достаточно восстанавливать пару - тройку переменных, которые я изменял во время работы для удобства пользователя... |
||||
|
||||
Забыл добавить, более конкретные советы могут быть только с кодом...
Вы нам пример, который демонстрирует проблему, мы вам пример ее решения. Ваше замечание о размере кода, более чем уместное - чем короче будет ваш пример, тем больше времени будет потрачено на задачу... Мало кто посвятит вашей проблеме, более 10 минут. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Еще одно - состояние слоев в обработчик засунуть Кстати, обойтись без временных построений не всегда возможно, но получить указатели на них - не проблема совершенно. К сожалению, пока кода (ну или хотя бы описалова для него) не видно, разговор беспредметный ИМХО.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
[quote="480725"]
Цитата:
|
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
[quote="480725"]
Цитата:
|
|||
|
||||
[quote="480725"]
Цитата:
Код:
|
||||
|
||||
Цитата:
Скорее наоборот, в моих проектах нет стандартных диалогов и стандартных команд автокада, пользователь запускает утром мою программу и в этой оболочке работает до вечера. Но внутри моей оболочки есть и диалоги и клавиатурные сочетания и контекстное меню... |
||||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Цитата:
В моих пунктах меню стоит загрузчик програм с обращением к конкретному в каждом случае Лиспу. Вначале он запускает UNDO BEGIN (впредь пишу просто Beg) Затем проверяет и подчищает системные переменные Затем загружает программу, если она не в памяти и выполняет ее. Программа с самоценными циклами тоже может содержать _Beg и _End, чтобы можно было отменять по частям. После выполнения программы загрузчик обрабатвывает системные переменные и выполняет UNDO END Обработчик ошибок дублирует заключительную часть загрузчика На случай сбоев в обработчике, в моем меню стоит модифицированная отмена Она вначале Проверяет UNDOCTL и при необходимости запускает _UNDO _End Потом выполняет отмену. Проблемы описаны в первом сообщении. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Цитата:
1) строится целиком программно 2) не может быть заменен блоком или дин.блоком (нехай навороченным до ужаса) :?: Цитата:
Разбиваем его на подзадачи: 1. Создать (или получить) указатель на блок уклона. Внутри блока нарисовать отрезки, атрибут. Задача номер раз, код примерно таков (без добавления атрибута, уже непринципиально): Код:
- получение точки. Примерно так: Код:
3. Вставка блока в указанную точку с соответствующими масштабами и поворотом; возможно, выполнение vla-mirror с вычислением точек оси отражения и удалением исходного блока. Своя обработка ошибок. 4. Создаем функцию-команду, которая последовательно выполняет шаги 1-3. И в ней уже: если и получен указатель на блок, и точка вставки, и значения поворота, выполнить вставку блока. И вызывать из меню уже п.4. Все это очень подробно расписано в "САПР на базе". P.S. В п.4 уже может быть свой обработчик ошибок, но не думаю, что в нем будет надобность. P.P.S. Кстати, можешь посмотреть на вариант применения vl-catch-all-apply
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
[quote="Елпанов Евгений"]
Цитата:
|
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Не, что план здания далеко не прямоугольник, я представляю четко. Можно идиотский вопрос: а почему бы не использовать ADT и его методику работы? ИМХО в нем проблем может быть меньше порядка этак на 3 - на 4. Правда, настройка не за 3 минуты...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||