| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Цитата:
Т.е. делается попытка выполнить какое-то выражение после try, а если произойдет ошибка по любой причине, то выполнится выражение между except и end. |
|||
|
||||
других языков не знаю, кроме азов паскаля из школьного курса...
про ловушку ошибок, в принципе, понял, что сначала объект создается тоже... мне было интересно можно ли этот указатель на объект передать сразу нескольким функциям. суть то (vla-put-property [содал объект] 'свойство [значение] ) только "'свойство [значение]" сразу списком передать, а не через переменную
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Vladimir_Sergeevich, как один из вариантов "передачи массы аргументов": http://autolisp.ru/2009/10/21/lisp-overloading/
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Функции, наподобие vla-addline - это тоже дополнительные оболочки, пришпандоренные внутри AutoCAD. Можно было бы вызывать (vla-add 'Line ...), но это совсем не по-лисповски. Но LISP хорош тем, что внутри его функций можно спрятать, что угодно. В приведенной мной функции (ru-line-add start_pnt end_pnt lineweight ltype) спрятано построение отрезка объектным методом. И никто (без исходников) не знает, как именно это сделано, используются ли локальные переменные. А можно было бы и через command и через entmake внутри функции отрезок создавать. Передавать свойства можно и списком (лисповским), но в случае ограниченного количества свойств в этом нет смысла - себе дороже будет этот список разбирать. А вот для полилинии координаты надо передавать именно списком, т.к. их количество может быть произвольным, наподобие (ru-pline-add points is_closed width lineweight ltype). |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Это каким постулатам? ИХМО VisualLisp реализован так только из-за лени программистов его создавших. Все постулаты ООП прекрасно реализуются в функциональных языках (если быть точнее, то функциональную парадигму можно лекго урезать - ввести ограничения - до ООП).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
BIM, С#, AutoCAD, LISP Регистрация: 15.03.2006
Дуброво
Сообщений: 657
|
Дима_, спасибо за замечания
Сделал проверку на функцию msg-yes-no в начале программы, запоминание и восстановление переменной Сейчас увидел, что программа не взрывает объекты внутри блоков и массивов, буду развивать дальше. Цитата:
Сначала подстраивал программы с форума под свои нужды, а где-то месяц назад сам начал писать. Код:
__________________
"Молодой человек, Вы не представляете всей широты поставленной перед Вами задачи." © Панкратова Г.Е. Последний раз редактировалось kha, 01.04.2014 в 13:58. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Как вариант, без проверок (поскольку СПДС GraphiCS нету):
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Хотя далеко не всегда надо именно объекты создавать - можно и обычными функциями обойтись. Ну и конечно, если бы не лень - из VisualLisp можно было бы "конфетку сделать". А они даже поленились свой редактор сделать и купили VitalLisp для основы. А могли бы многое сделать, например DCL на XAML заменить. |
|||
|
||||
BIM, С#, AutoCAD, LISP Регистрация: 15.03.2006
Дуброво
Сообщений: 657
|
Кулик Алексей aka kpblc , спасибо!
Но пока что не буду смотреть - когда напишу сам, разберу твой код. Так интереснее и, как показывает практика, запоминается лучше
__________________
"Молодой человек, Вы не представляете всей широты поставленной перед Вами задачи." © Панкратова Г.Е. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Я не про то, что объектная модель автокада лежит не в идеологии функционального программирования (например vla-addCircle - возрващает ссылку на новый круг, а если разрабатывать с точки зрения функционального подхода, то она бы должна была возратить ссылку на новую, readonly, копию блока к которому она уже применена - modelSpace например - с кругом внутри - по типу cons в лиспе - что давло бы возможность использовать совместно с ней всю гибкость лиспа - но, в то же время, вывернуло мозги набекрень всей "классической" школе). Лисп можно гораздо лучше "пристроить" и к императивной объектной модели (той что в автокад) - см. например CLOS.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 01.04.2014 в 16:55. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Ага, может. Только настройки такого созданного слоя могут быть немного неожиданными
Я немного расковыривал эти вещи: http://autolisp.ru/2014/03/05/base-s...rs-anf-styles/
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Твой код значительно короче
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
И снова я с глупыми вопросами
хочу рисовать кучу размеров автоматом по двум точкам... Для этого сделал функцию отрисовки этого самого размера. Код:
примерная хронология: 1. написал для первых четырех - все как надо отрисовало 2. добавил пятый размер - не работает 3. удалил его к лешему (точнее сначала закомментил) - все равно не хочет В том виде как в п.1 тоже с бубна только пошло... Вызов функции (create-dim-rotated p-vline p-ntr p-ktr a-dim), где p-vline, p-ntr, p-ktr - точки которые расчитываются для каждого, a-dim - угол поворота размера (в моем случае 20‰) з.ы. приложил файло - красным покрасил размерчики отрисованные программой
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... Последний раз редактировалось Vladimir_Sergeevich, 04.04.2014 в 15:29. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
замени adim/ на adim /
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Ни в жизнь бы не догатался там косяк искать. Спасбо
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Я на подобные "грабли" наступал достаточно часто (особенно со старыми клавиатурами), так что опыт есть
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |