|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
To Gomer вышеприведенный пример будет будет работать только с "чистыми" функциями (которые - не буду скрывать мне импонируют гораздо больше), но в кодах Алексея (не в коем случае не в обиду) всегда во главе стоит "шаблонность" используемого кода, то есть как у Вас - безусловно "красивей", по крайней мере с моей точки зрения, но КРЫС'овский вариант, более "безпроблемный", особенно если "совать" его в любую императивную конструкцию - я, например, их всячески избегаю - за что меня переодически здесь ругают, а Крыс их "не боится".
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
МК, ЖБК Регистрация: 14.09.2012
Киров
Сообщений: 33
|
Очень сложная для новичка тема - функция обработки ошибок. Как она работает в данном примере? Мало хороших разобранных примеров по этой теме в интернете да и у Полещука.
Почему тут в 16 строке стоит "Layer". Условие (not) уже закончилось, а выполняемое действие еще не началось. Или я что-то не понял.... |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
"действие" и "значение" в лиспе есть одинаковые понятия if это тоже функция (как и все в лиспе) - которая тоже возращает значение - то есть if может (и в большинстве случаев "правильного" использования) не задает что делать, а возращает нужный результат.
То есть в "классическом" программировании: Код:
Код:
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,835
|
Цитата:
Цитата:
Ни какой Полещук (извините, Ник.Ник., за эти слова - не хотел обидеть ) такого не напишет. Его книги прекрасные справочники и учебники, а в этой теме разобрали как надо работать с ЛИСП и дали кучу практических решений.
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
|
||||
МК, ЖБК Регистрация: 14.09.2012
Киров
Сообщений: 33
|
В основном люди занимаются LISP'ом, что бы адаптировать AUTOCAD под вполне конкретную определенную задачу. Ну или несколько таких задач. Базовые принципы программирования - это не сложно. (Мне в частности помогла книга Дэн Эбботта). Но капни чуть-чуть глубже и все! Невозможно самому ни в чем разобраться. И чисто физически нет времени перечитывать всю тему, ибо и так куча времени ушла на книги Полещука (имхо тяжело для понимания он пишет), да и люди все рабочие и семейные. Так что проще и легче спросить конкретно про то, что тебе надо. Опытным людям, я считаю, не составит труда повторно ответить на какие-то вопросы ну или отослать по нужному адресу. Да и тему я полистал - бегло, конечно, но здесь мало относящегося к моему вопросу. (виноват - мог и не заметить)
вернемся к коду: Все таки я не понял, зачем "layer" в 16 строке. А то, что происходит после 18 строки, я ваапще только название функцих знакомых встречаю.... Ваппще ничего не понятно. Код:
|
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
(setq layer (if layer layer layer)) так понятно?
(setq layer layer) или так (setvar 'clayer layer) все понятно |
|||
|
||||
МК, ЖБК Регистрация: 14.09.2012
Киров
Сообщений: 33
|
Цитата:
Зачем нужна такая сложная конструкция для получения элемента? Зачем для получения элемента использовать "vl-catch-all-apply". Что значит строка (function vla-item) и зачем она нужна? Зачем тут "list"? |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
По строкам:
1. исполнить игнорируя ошибки 2. функцию получения элемента 3. примененную к 4. коллекции слоев 5. активного документа, автокада 7. с именем "0"
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
МК, ЖБК Регистрация: 14.09.2012
Киров
Сообщений: 33
|
Спасибо!!
Появляется вопрос. А function зачем здесь? (function - связывает и оптимизирует функцию. Полещук.) Так что vla-item без нее работать не будет? "vl-catch-all-apply" Нужна только для игнорирования ошибки? А вот это темный лес: (зачем тут foreach, зачем тут mapcar) Код:
Последний раз редактировалось Alexg-12, 05.10.2012 в 13:32. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Действует наподобие конструкции Код:
Применять vl-catch-all-apply надо в связке с vl-catch-all-error-p и vl-catch-all-error-message. Чтобы не мучиться каждый раз, надо сделать библиотечную функцию наподобие: Код:
Код:
Можно, конечно, предварительно проверять эти условия, а можно и применить ловушку ошибок Код:
|
|||
|
||||
Механик-конструктор Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25
|
Помигите.
Делаю первые шаги в лиспе. Имеется треугольник, из полилинии, который я пытаюсь размножить вокруг точки "0,0" Записал вот таким вот образом: (command "_pline" "0,3.0902" "1.3876,5.7295" "1.3876,5.7295" "-1.3876,5.7295" "-1.3876,5.7295" "0,3.0902" "") (command "_array" "last" "p" "0,0" "5" "360" "_y" "") А оно не работает. Как нужно записать? |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |