Реклама i
|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Регистрация: 25.07.2007
Сообщений: 2,518
|
Гуру, зацените, у меня получилось! Программка рисует тройники! Ураа!
![]() (defun C:TROYNIK() (initget 7) (setq R1 (getdist "\nБольшой радиус:")) (setq r2 (getdist "\nМалый радиус:")) (setq L (getdist "\nДлина тройника:")) (setq H (getdist "\nВысота тройника:")) (Command "_.View" "_Front") (Command "_.Pline" "0,0" (list 0 R1) (list (* 2 L) R1) (list (* 2 L) 0) "C") (setq Pline (entlast)) (Command "_.Revolve" Pline "" "X" "") (command "_.UCS" "_New" (list L 0)) (Command "_.Pline" "0,0" (list 0 H) (list r2 H) (list r2 0) "C") (setq Pline (entlast)) (Command "_.Revolve" Pline "" "Y" "") (Command "_.Union" "ALL" "") (command "_.UCS" "_World") (Command "_.View" "_SWISO") (princ) ) Нормально, как считаете? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Туда же: а что с привязками?
P.S. Загружаются точно так же, как и в обычный AutoCAD
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 25.07.2007
Сообщений: 2,518
|
Вот, проверил, у меня работала
(defun C:TROYNIK() (initget 7) (setq R1 (getdist "\nБольшой радиус:")) (setq r2 (getdist "\nМалый радиус:")) (setq L (getdist "\nДлина тройника:")) (setq H (getdist "\nВысота тройника:")) (Command "_.View" "_Front") (Command "_.Pline" "0,0" (list 0 R1) (list (* 2 L) R1) (list (* 2 L) 0) "_C") (setq Pline (entlast)) (Command "_.Revolve" Pline "" "X" "") (command "_.UCS" "_New" (list L 0)) (Command "_.Pline" "0,0" (list 0 H) (list r2 H) (list r2 0) "_C") (setq Pline (entlast)) (Command "_.Revolve" Pline "" "Y" "") (Command "_.Union" "_ALL" "") (command "_.UCS" "_World") (Command "_.View" "_SWISO") (princ) ) |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Пару замечаний:
1. В command используй и команды и их опции на английском языке с префиксом _ (почитай начало http://dwg.ru/art/11) Код:
Возможны два варианта 2.1 Сброс и восстановление OSMODE Код:
Код:
Библиотечные функции Код:
Код:
Код:
![]()
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 25.07.2007
Сообщений: 2,518
|
Написал еще одну програмку, таким же методом как и предыдущие были, то есть ввод данных и дальше с помощью command какое-либо действие. Хотел спросить, как вы отладку программы делаете? Я через appload, постоянно свой лисп в акад гружу и смотрю что пишет. Еще вопрос, как вы считаете, командой command можно любую программку сделать? Или только такие простенькие как рисование перехода, отвода, тройника
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Честно скажу, (command) стараюсь не пользоваться чуть ли не по (уже) религиозным причинам. А так - в ком.строку, vlide, там открыть файл, установки точку останова ([F9]), и запускать
![]() ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
По поводу отладки. Файл программы, во время разработки, должен всегда быть в редакторе Visual LISP. Никакой appload к нему не надо. Там есть значок - загрузить файл в Автокад. Щелкаете, и текущая версия доступна. Можно загружать и отдельно выделенный блок - это чтобы проверить части программы. Здесь надо фантазировать - например, можно где-то в комментариях написать присваивание значений переменным, являющихся аргументами функции, а потом выполнять кусочки кода, отправляя из в Автокад. Результаты также выводятся в окно. И, разумеется, то, про что Алексей написал - штатные средства отладки. Их надо только изучить. |
|||
![]() |
|
||||
Регистрация: 25.07.2007
Сообщений: 2,518
|
Спасибо! Vlsual Lisp Editor я использую, правда редко еще. Менюшку еще не изучил, а так обычно вставляю туда лисп и кнопкой Check window проверяю. Ну а если лисп можно а акад прямо оттуда грузить то вообще красота, а то я запарился каждый раз его в автокад подругажть через аплоад.
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Тебе видео снять, как я "программирую" (если это можно программированием назвать) ?
![]() Написание, отладка, пошаговое выполнение... Только задачку поставь ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Покритикую немного.
В предложенном варианте, перед началом выполнения действий, привязка выключается, а по окончании работы программы принудительно включается, что не есть хорошо. Правильно восстанавливать состояние среды на выходе таким, какое оно было до работы программы. Потому, если вообще отключать, всёж рекомендую связку: Код:
|
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
|
|||
![]() |