.NET, arx и atoms-family

Есть такая функция в лиспе - atoms-family. По идее должна показывать зарезервированные символы AutoLISP / VisualLISP. Но, кроме заявленного функционала, она может показать пользовательские команды и функции, загруженные в текущий документ.
Далее

Еще пара моментов об очистке dwg…

Иногда требуется сохранить файл в более ранней версии, чем имеющаяся. Казалось бы, что сложного? Ан нет, и тут можно поймать подводные камни...
Далее

Сравнение nanoCAD и AutoCAD

Денис Ожигин через facebook опубликовал ссылку на сравнение nanoCAD и AutoCAD. Откровенно говоря, у меня сравнение вызвало весьма сложные ощущения. В причинах этого и хотелось бы разобраться.
Далее

Работа с dbmod

Известно, что внесение любых изменений в файл dwg моментально меняет системную переменную DBMOD. Именно это обеспечивает отмену зуммирования / панорамирования, запросы при сохранении измененных файлов и т.п. Но иногда такая тщательность становится лишней....
Далее

Запрос каталога “почти по взрослому”

Иногда хочется запросить у пользователя не файл, а именно каталог. И сделать это хочется красиво, без использования getfiled или сторонних приложений, чистым лиспом. Попробуем?
Далее

Имя текущего профиля и прочие Preferences

В очередной раз приношу самую искреннюю благодарность Андрею Бушману - без него я бы точно не разобрался в этой задачке.
Далее

О буфере обмена замолвим словечко…

О том, что такое буфер обмена, распространяться не буду - и так все знают. Где-то и когда-то я рассказывал про свое видение тонкостей работы с этим понятием в AutoCAD. Искать лениво, поэтому попробую высказаться тут.
Далее

Разница между vlax-invoke и vlax-invoke-method

В кодах, публикуемых на форумах, можно встретить пять вариантов записи очень похожих конструкций:

1
2
3
4
5
vlax-invoke {Object} '{Method}
vlax-invoke {Object} "{Method}"
vlax-invoke-method {Object} '{Method}
vlax-invoke-method {Object} "{Method}"
vla-{Method} {Object}

В чем между ними разница, и есть ли она вообще?
Далее

Диалоговые окна dcl – зло? Или все же нет?

Редко какая программа обходится без взаимодействия с пользователем. Поскольку здесь разговор ведется именно о разработке для AutoCAD, уточняю: "редко какое пользовательское дополнение для AutoCAD обходится без взаимодействия с пользователем".

Можно запросить выбрать из контекстного меню опцию, а можно написать диалог. Вопрос: что выгоднее?

Ответа (по крайней мере однозначного ответа) лично я не знаю. Хотя для себя я выбрал правило: если запросов больше чем 3, надо задумываться о написании и вызове диалогового окна.
Далее

Выполнение кода сразу после загрузки .NET-dll

Иногда бывает необходимо до вызова команд (а еще лучше - прямо после загрузки кода) выполнить некоторые действия: установить системные переменные, установить пути поддержки и т.п.). В лиспе это просто:

1
2
3
4
5
6
(defun test()
  (alert "test")
  )

;; А вот и выполнение
(test)

Это то, что в лиспе часто называют "самовызовом". Выполнение кода начинается сразу после загрузки соответствующего lsp-файла в память.

Механизм достаточно удобный, несмотря на некоторые трудности, описанные здесь и здесь.

С .NET ситуация немного иная.

Далее