|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Ты с cond разобрался? Еще можно было использовать оператор if
По поводу точек. В общем все правильно, за исключением ошибок, на которые указал Олег К., Мой вопрос красным Код:
Здесь нужно учитывать особенности лисп при приведении типов Выполни у себя в редакторе и сделай выводы Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
VVA,
Про вопрос красным. Я ошибочно полагал, что содержимое List должно находится в скобках. Цитата:
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Здесь я дал задание. Оно относится и к тебе. Внимательно почитай про функции.
"Красный" вопрос пока остается. Почитай (с разбором каждой главы в vlide) и попробуй еще раз ответить. По поводу (/ 1 2) и (/ 1 2.0) - здесь вопрос приведения типов. 1. Если ЦЕЛОЕ делится (умножается) на ЦЕЛОЕ, то получается ЦЕЛОЕ (целое от 0.5 - 0) 2. Если ЦЕЛОЕ делится (умножается) на ВЕЩЕСТВЕННОЕ, то получается ВЕЩЕСТВЕННОЕ (это то, которое real) Это я к тому, что в этом месте Код:
Код:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
И вообще для колонн размер надо задавать сразу REAL. Мало ли что чаще всего они выражаются в целом количестве миллиметров. А если понадобится работать в единицах "метры"? Если на плане сетей надо будет колонну поставить? Да и вводить данные удобнее - можно getdist использовать.
|
|||
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 307
|
>> Shoorup
Выполни в редакторе вот такие выражения: (list ((* 5 2) (/ 8 4))) (list (* 5 2) (/ 8 4)) (list '(* 5 2) '(/ 8 4)) и посмотри чем отличаются результаты. При вычислениях лучше перебдеть (ведь пока нет отлова ошибок?) и делать явно задаваемые числа вещественными. Не помню, говорили ли здесь, в vlisp'e есть хорошие возможности проверки кода на ошибки. Самые простые на панельке "Tools" (в стандартном виде - третья слева во второй строке). На код из #100 точно бы 2 раза ругнулся. |
|||
|
||||
Регистрация: 27.12.2007
Сообщений: 132
|
Добрый день, полезная тема, тоже как раз начал изучать лисп.
Прделагаю начать с самого простого а потом усложнять. А то для начинающих сложно освоить все сразу. Давайте вернемся к простой задаче Цитата:
Код:
Теперь можна усложнять. Постепенно. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Нужно подождать пока Red Nova и Co подтянуться. А тебе пока нужно
1. На запрос ширины и длинны запретить пустой ввод,ввод отрицательных чисел и 0 2. На запрос точки на ввод по умолчанию принять координату 0,0,0.
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 27.12.2007
Сообщений: 132
|
Цитата:
+заментил getreal на getdist, чтоб ширину и высоту можна было на экране указать, нормально будет? Код:
|
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
andery, Нормально.
Для проверки на пусто (nil) есть функция null т.е. (if (= p nil) ... можно еще записать как (if (null p) ... Ну и еще наиболее частые связки car и cdr уже есть ввиде отдельных функций (car (cdr p)) = (cadr p) Читать нужно с конца: к списку p применить cdr потом car (cADDARr p ) = (cAr (cDr (cDr (cAr p)))) Код:
Теперь давай запросим угол поворота и повернем колонну относительно точки P на этот угол. PS P не объявлена в локальных переменных
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 307
|
Выполняется указание точек в чертеже. Наверное, в функции initget стоит использовать и bit 8.
VVA, вопрос. Если использовать (if (null (setq p (getpoint "\nУкажите центр колоны:<по умолчанию (0,0)>"))) (setq p '(0 0 0))) всегда ли в условии при пустом вводе будет nil? Что-то сомнения иногда бывают. Последний раз редактировалось Олег К., 24.07.2008 в 17:11. |
|||
|
||||
VVA И так на данный момент код у меня такой
Код:
Про вопрос красным я понял. Про реальные и вещественные вроде тоже. P.S. А учеников у тебя все больше. ------------------------ Опоздал, уже дал задание про поворот. Про P не понял. Цитата:
__________________
Блог Последний раз редактировалось Red Nova, 24.07.2008 в 17:57. |
||||
|
||||
Ну повернуть можно командой rotate, а как выбрать то что мы будем крутить не знаю. Поищу в книгах.
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Олег К., Не вижу причин чтобы не работала. Хотя я предпочитаю такие конструкции (для меня нагляднее)
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 17.12.2016 в 19:52. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Red Nova, У тебя код не рабочий. Читай замечания Олег К. #101,
Локальные переменные описываются после слэша при определении функции. Выделил корасным Код:
Кстати проверить значение переменной можно, набрав в командной строке Автокада ! (восклицательный знак) и имя. Если загрузить команду Колонна, то Цитата:
В команде TEST2 переменная rez не объявлена локальной Код:
2. Выполняем TEST1 3. Набираем в командной строке !rez 4. Выполняем TEST2 5. Набираем в командной строке !rez 6. Смотрим на разницу и делаем выводы Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Цитата:
Цитата:
---------------------- Пробую в автокаде, рисую что-то, потом команда rotate, затем ввожу p, результата нет.
__________________
Блог |
||||
|
||||
Регистрация: 27.12.2007
Сообщений: 132
|
Да я тож застрял на Ротате.
Мне не понятен синтаксис вызова команды Например (command "_rotate _L или (command "_rotate "_L" где об этом почитать можна прочитал что _L последний нарисованный обьект.... Подскажите в каом русле двигаться.... |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Мы ее (колонны) только что отрисовали и ни одна команда редактирования с ней не работала. Предыдущего (текущего, последнего) набора нет. Так что P (Previous), он же текущий-предыдущий-последний не пойдет. Штудируйте командную строку.
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Вставка в таблицу поля, соотвествующего площади примитива | Profan | Готовые программы | 272 | 06.06.2021 23:12 |
Сейсмозащита и сейсмоизоляция существующих, построенных зд. | IANationalInformAgentstvo | Прочее. Архитектура и строительство | 216 | 20.01.2015 16:51 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
ЮМОР 2006 =) | Perezz!! | Разное | 1122 | 04.01.2007 00:46 |