Палитры инструментов через лисп + xml
В прошлой записи я показал, как можно из-под лиспа добраться до xml-файла и поработать с ним. Пришло время иллюстрации номер раз
Задача: получить GUID палитр, их имен и путей соответствующих файлов, пройдя по всем каталогам, указанным в качестве ToolPalettesPath.
Далее
Работа с xml
Чем дальше, тем больше AutoCAD и продукты на его основе "завязываются" на xml. Понятно почему: удобный вариант хранения сколь угодно сложной структуры, парсер гарантированно встроен в систему ну и теде.
Достаточно давно я разработал набор функций, которые позволяют нормально работать с xml-документом. Как выяснилось в процессе работы, в основном стоит задача чтения данных (благо заполняю я xml-файлы либо в Notepad++, либо в Microsoft XML Notepad, либо в MS Visual Studio). Но - функции есть, и предоставлю я их целиком.
Предупреждаю сразу: пост получился очень длинный, набор функций, как всегда, в самом конце
P.S. Функции не переименовывал. Кому охота - код открыт, используйте наздоровье
P.P.S. Аналог всего этого дела был в свое время опубликован у меня на блогспоте, так что не удивляйтесь возможным повторам :).
Далее
Работа с xml, часть 2
В предыдущей части была рассмотрена работа с объектом xml-документа. Продолжим?
Далее
Прогресс-бары или о длительных операциях
Иногда необходимо выполнить длительные вычисления - например, обработать несколько десятков (а то и сотен) файлов, вызвать стороннее приложение и в нем что-то сделать и т.п. Если работать через LISP, то AutoCAD (с точки зрения пользователя) "зависает".
Чтобы этого не было, процесс выполнения надо хоть как-то показывать. Некоторые тонкости этой задачки и хотелось бы рассмотреть.
Далее
Текстовые стили с ttf. Некоторые тонкости настройки
Столкнулся я тут как-то с задачей "создать текстовый стиль с ttf-шрифтом, и чтобы там сразу было установлено полужирное начертание".
Далее
Передача данных по ссылке
Не секрет, что друзья не растут в огороде данные в функции нередко передаются по значению. В C++ / C# / VB во всех его реинкарнация - там везде можно передавать данные по ссылке. А что надо сделать в лиспе, чтоб такое же было?
Далее
.NET, arx и atoms-family
Есть такая функция в лиспе - atoms-family. По идее должна показывать зарезервированные символы AutoLISP / VisualLISP. Но, кроме заявленного функционала, она может показать пользовательские команды и функции, загруженные в текущий документ.
Далее
Красивый выбор каталога
Иногда надо в процессе выполнения лиспа указать каталог. Есть, конечно, вариант использовать getfiled, но как-то это не очень красиво...
Далее
Приоритетность загрузки lisp
Можно сказать, продолжение О кодах, загрузке и компиляции и О кодах, загрузке и компиляции, часть 2. Пишу здесь, чтобы самому не потерять информацию. А то с меня станется...
Итак: столкнулся я тут с интересной задачкой - имеет ли значение последовательность "прописывания" lisp-кодов в файл-исходник для fas?
Далее
Некоторые особенности findfile
Всем хороша функция findfile - позволяет найти файл или каталог. Но, понадеявшись на ее корректную работу, я чуть не "обрушил" AutoCAD 2002 на Windows XP Pro x64...
Далее