Хранение пользовательских типов данных. Начало.
Рано или поздно возникает сильное желание какие-то данные сохранить. Про это и поговорим.
Возможно, получится чуть ли не цикл, так как вариантов приличное количество
Далее
О буфере обмена замолвим словечко…
О том, что такое буфер обмена, распространяться не буду - и так все знают. Где-то и когда-то я рассказывал про свое видение тонкостей работы с этим понятием в AutoCAD. Искать лениво, поэтому попробую высказаться тут.
Далее
Тихое выполнение функций и команд
Последнее время на форумах стали появляться вопросы типа "как добиться тихого выполнения функций Lisp или команд AutoCAD"?
Далее
О кодах, загрузке и компиляции. Часть 3
В продолжение поста "О кодах, загрузке и компиляции"
Нда, что-то я совсем перестал высказываться тут, попробую компенсировать
Далее
Сообщение “no function definition: VLAX-GET-ACAD-OBJECT ” и как с ним бороться.
Подобный вопрос с завидной регулярностью появляется на самых разных форумах:
Загружаю лисп, пытаюсь выполнить, а AutoCAD мне в ответ:
no function definition: VLAX-GET-ACAD-OBJECT
И результат нулевой. Что делать?
Работа с неактивным документом
Подавляющее большинство лисп-функций, показываемых на форумах и сайтах, работают с текущим документом. Как правило, этого достаточно. Но что делать, если надо обрабатывать несколько документов? Здесь я хотел бы рассмотреть некоторые вопросы, связанные именно с обработкой неактивного документа.
Далее
Особенности примитивов TEXT и ATTRIB*
С точки зрения программирования достаточно большой интерес представляют примитивы TEXT, MTEXT и ATT* (соответственно однострочные и многострочные тексты и атрибуты - как описания, так и вхождения). Я бы хотел рассмотреть такую достаточно забавную штуку, как точка вставки текста.
Далее
Диалоговые окна dcl – зло? Или все же нет?
Редко какая программа обходится без взаимодействия с пользователем. Поскольку здесь разговор ведется именно о разработке для AutoCAD, уточняю: "редко какое пользовательское дополнение для AutoCAD обходится без взаимодействия с пользователем".
Можно запросить выбрать из контекстного меню опцию, а можно написать диалог. Вопрос: что выгоднее?
Ответа (по крайней мере однозначного ответа) лично я не знаю. Хотя для себя я выбрал правило: если запросов больше чем 3, надо задумываться о написании и вызове диалогового окна.
Далее
Выполнение кода сразу после загрузки .NET-dll
Иногда бывает необходимо до вызова команд (а еще лучше - прямо после загрузки кода) выполнить некоторые действия: установить системные переменные, установить пути поддержки и т.п.). В лиспе это просто:
1 2 3 4 5 6 | (defun test() (alert "test") ) ;; А вот и выполнение (test) |
Это то, что в лиспе часто называют "самовызовом". Выполнение кода начинается сразу после загрузки соответствующего lsp-файла в память.
Механизм достаточно удобный, несмотря на некоторые трудности, описанные здесь и здесь.
С .NET ситуация немного иная.
О кодах, загрузке и компиляции. Часть 2.
Продолжим начатое здесь.
Загрузка lsp сама по себе, конечно, интересна, но... Но быстродействие скомпилированного fas'a может быть в несколько раз выше. Разберем компиляцию сборника lsp в единый fas-файл.
Далее