|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
Добрый день
Изучаю понемногу ЛИСП, в том числе и на примерах книги создателей РУ-КАДа. Периодически возникают вопросы, на которые не всегда удается найти ответ на форумах и в учебниках. Пока простой вопрос, может он даже слишком простой: записываю функцию только с локальными переменными, заданными явно Код:
Код:
|
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
когда ты обращаешся к ent - ты создаешь не локальную а ГЛОБАЛЬНУЮ переменную (т.к. в локальных ее нет), она доступна для всех лисп приложений - но на деле вероятность "конфликта" возрастает, если ими и пользоваться - то только с сильно уникальным именем (например например "название-функции_номер-подвресии_имя-автора_ent").
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
_.explode, что ли?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
Спасибо за ответ. Теперь ясно )
Появились еще пара вопросов. Вот в этом коде, взятом из справки Код:
Цитата:
Если брать функцию для работы с другим объектом, напр. таблицей, то здесь мне почти все уже понятно: Код:
Цитата:
Код:
Код:
Цитата:
Надеюсь на ваши ответы ) Последний раз редактировалось Frigate, 03.09.2010 в 13:10. |
|||
|
||||
Регистрация: 15.01.2010
Сообщений: 254
|
Блин, интересно, как же я пробовал и не получалось?!
Спасибо! Не могу найти тему с переводом таблицы из AutoCAD (построена из отрезков) в Excel (помню же, была такая...) Нашел еще это - http://sites.google.com/site/bushman...tablic-v-excel, но что с ним делать? Последний раз редактировалось superkot007, 04.09.2010 в 17:43. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Frigate, mspace сначала надо определить. Например, так:
Код:
Я на autolisp.ru рассказывал о клавиатурных сокращениях. А в справке можно посмотреть, что означает acleftmask Я сейчас уже сам не помню. superkot007, я на ру-борде ответил.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.02.2009
Сообщений: 260
|
Начинаю разбираться в lisp. Возник такой вопрос: можно ли как-то обрабатывать прерывание (например, escape) выполнения команд в (command...), не прибегая к vla-? поиском не нашел
Пример кода: Код:
|
|||
|
||||
Регистрация: 20.02.2009
Сообщений: 260
|
|
|||
|
||||
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 Эту святую троицу надо обернуть в свою функцию обработки ошибок, которую можно использовать тысячи раз. В очередной раз привожу код ловушки ошибок: Код:
Пример: Код:
И еще есть возможность обработки ERRNO. Вот пример: Код:
Используя такие простые приемы мы добиваемся, чтобы до *error* вообще никогда не доходило дело. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Может быть, ситуацию прояснит http://autolisp.ru/2009/09/20/howto_undo/
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
|
|||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
Еще раз здравствуйте, коллеги :-)
Продолжаю по возможности разбираться в LISPе. Назрели вопросы, которые необходимо уяснить для полноценного понимания программирования в LISP. 1. Почему для поиска всех блоков на рисунке используются следующие аргументы у функции ssget: (ssget '((0 . "INSERT"))) По DXF-кодам INSERT, как я понимаю, описывает ссылки на блок, блоки. А что же тогда значат DXF коды самого объекта “BLOCK” и как воспользоваться кодами объекта “BLOCK”? Причем там есть интересный такой код, под кодом 3 - тоже "Block name", как и код 2. Что это? 2. Когда набор (set selection) остался пустым – все его члены были удалены – как удалить сам набор, чтобы переменная, которой он присвоен, была nil? Я пока переменную, которой присвоет набор, приравниваю сначала к "0", а затем к nil (сразу nil не присваивается). |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |