|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Лисп программа. Как реализавать Undo
Регистрация: 20.01.2009
Сообщений: 4
|
||
Просмотров: 1981
|
|
||||
конструктор Регистрация: 21.07.2007
Петрозаводск
Сообщений: 2,118
|
1. объединяй setq:
Код:
2. если в while одна функция - можно без ProgN. 3. undo отменяет команды автокада, сделай как в п. 4, только вокруг комнад рисования чтоб их можно было одним анду отменить - тебе ведь это надо? отмену ввода значений лучше в програме делать, например в цикле запрашивать значения, а потом переспрашивать: всё ОК? |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Здесь надо принципиально изменять структуру программы. Сейчас сделан примитивный последовательный ввод данных (хоть объединяй setq, хоть нет). А надо делать ввод с опциями, как в командах AutoCAD.
Фактически здесь требуется для начала рисования только точка a1, а все остальное (f, s, n, pk) - опциональные значения. Их надо первоначально инициализировать, а затем в цикле запрашивать только точку a1. В приглашении должны выводиться действующие значения остальных параметров и быть опции для их изменения. Может ничего не надо менять, а можно что угодно поменять сколько угодно раз, и только когда будет введена точка a1 будет выполняться дальнейший расчет и рисование. Приглашение для ввода точки должно быть наподобие: "Фонт - 10, Пикет - PK 0+200, NISH- ???, Число - 25. Укажите начальную точку [Фонт/Пикет/NISH/Число]<Выход>:" |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Krcho,
1. Правильный варинт - вариант ShaggyDoc, 2. Если хочешь в своей, то это тоже можно сделать. Нужно сохранять значения переменных в переменные Автокада USERR1 - USERR5 или USERI1 - USERI5 и использовать команду UNDO с опцией _M (сохранение) и _B (откат), контролируя значение переменной UNDOMARKS Как пример смотри пост #8
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как именно настроить параметры нового чертежа? | Макс_Северянин | AutoCAD | 31 | 01.09.2010 10:16 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 |