Jump to content

Search the Community

Showing results for 'lisp'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Общие форумы
    • Принципы распространения продуктов Нанософт
    • Общие вопросы
    • Скачать полезное
    • Обсуждение любых САПР
    • dows
  • Тематические форумы
    • Поддержка ОС Linux
    • dows
    • dows
    • dows
    • dows
    • dows
    • dows
    • dows
    • nanoCAD Механика 3D
    • dows
    • dows
    • nanoCAD Конструкции PS
    • nanoCAD BIM Electro
    • dows
    • dows
    • dows
    • dows
    • dows
    • dows
    • nanoCAD Стройплощадка
    • Функциональные расширения nanoCAD
    • Портал Технической поддержки
    • nanoTDMS
  • Программы членов Клуба разработчиков
    • KDM-INFO
    • Проектное бюро "Фордевинд"
    • VetCAD++
  • Не о программах
    • Юмор
    • Вопросы и пожелания по работе форума
    • Вопросы и пожелания по работе сайта
    • Новостная лента сайта nanoCAD.ru

Blogs

  • Фишки и трюки nanoCAD
  • Делюсь опытом работы с Cad программами
  • Полезные ссылки и закладки
  • Блог MaxSoft о nanoCAD
  • Утилиты nanoCAD или как упростить работу в программе
  • Конкурсы nanoCAD
  • О разном
  • cad admin notes
  • Рабочий дом как помощь людям
  • Все подряд
  • КТП и внешние сети в модуле Электро

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Сайт


ICQ


Skype


Город


Интересы


Организация


Специализация


Контактная информация

  1. <Каталог> Статьи. 2013. Универсальный автотест, или Как мы автоматизировали ручные тесты API в nanoCAD. https://www.nanocad.ru/information/articles/3499908/ 2013-01-04 Работа с Database в AutoCAD: с использованием транзакций и без них http://bushman-andrey.blogspot.com/2013/01/database-autocad.html 2014. Автоматизация работы в nanoCAD с помощью Visual Basic for Applications. https://habr.com/ru/post/238867/ 2017. Создание кнопки LISP-приложения в nanoCAD. https://habr.com/ru/company/nanosoft/blog/324784/ Сообщения на форуме. 2020-07-03 Загрузка .NET DLL из сети - https://forum.nanocad.ru/index.php?/topic/10969-zagruzka-net-dll-iz-seti/ 2020-09-08 Разница между API NanoCAD и API AutoCAD - https://forum.nanocad.ru/index.php?/topic/11403-raznitsa-mezhdu-api-nanocad-i-api-autocad/ 2021-03-12 Запуск nanoCAD в фоновом режиме - https://forum.nanocad.ru/index.php?/topic/13197-zapusk-nanocad-v-fonovom-rezhime/ LISP. AutoLISP FAQ - https://www.helloworld.ru/texts/comp/lang/lisp/faq/autolisp.htm nanoCAD. LISP. Типы данных - https://forum.nanocad.ru/index.php?/blogs/entry/49-nanocad-lisp-tipy-dannyh/ Выполнение LISP по кнопке - https://forum.nanocad.ru/index.php?/topic/7268-vypolnenie-lisp-po-knopke-v-menyu/ Методики организации отладки в LISP без использования Visual LISP IDE. https://www.autodesk.com/autodesk-university/au-online?query=LISP+Debugging 2013 Going on a Bug Hunt: Debugging and Handling Errors in AutoLISP https://www.autodesk.com/autodesk-university/class/Going-Bug-Hunt-Debugging-and-Handling-Errors-AutoLISPR-2013 2016-2017 Managing What Your LISP Routines Manage https://www.autodesk.com/autodesk-university/class/Managing-What-Your-LISP-Routines-Manage-2016 https://www.autodesk.com/autodesk-university/class/Managing-What-Your-LISP-Routines-Manage-2017#downloads AutoLISP Debugging (AlfraLISP) https://www.afralisp.net/autolisp/tutorials/debugging.php Common LISP Cookbook https://lispcookbook.github.io/cl-cookbook/ Common LISP Language Reference https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node1.html Practical Common LISP book online http://gigamonkeys.com/book/ AutoCAD 2015. AutoLISP Developers Guide. http://help.autodesk.com/view/ACD/2015/RUS/?guid=GUID-265AADB3-FB89-4D34-AA9D-6ADF70FF7D4B AutoCAD 2015. AutoLISP Functions By Name and Feature Reference. http://help.autodesk.com/view/ACD/2015/RUS/?guid=GUID-4CEE5072-8817-4920-8A2D-7060F5E16547 Скрипты автоматизации работ. Синтаксический разбор вызовов LISP модулей (PowerShell). https://forum.nanocad.ru/index.php?/blogs/entry/82-skript-analiza-lisp-moduley/ Разное. Энциклопедия языков программирования - http://progopedia.ru https://hopl.info https://en.wikibooks.org/wiki/Computer_Programming/Hello_world#Visual_Basic
  2. чисто лиспом в реестр можно писать только строки, но возможно WScript.Shell поможет https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/appending-a-reg-dword-and-reg-binary-apposed-to-a-reg-sz/td-p/3527054
  3. Всем доброго дня! Помаленьку осваиваю Нанокад и перевожу свои лиспы и макросы из автокада. Почти всё работает так же, иногда с некоторой доработкой. Иногда работает не так или не работает совсем. Вопрос - в одном лиспе не работает команда STYLE, точнее из командной строки выводится окно "Текстовые стили", а то же самое из лиспа работает как команда -STYLE, с минусом. А мне нужно, чтобы было именно окно. Как поправить? Сам лисп: (defun C:STYLE2 () (command "'_.zoom" "_e" "БСОХРАНИТЬ" "_audit" "_Y" "_N" "_-purge" "_all" "*" "_n" "STYLE") ) ;_ end of defun Пробовал менять STYLE на ДИАЛСТИЛЬ, СТ, СТИЛЬ - результат тот же. Версия Нанокада: 22.0.3734.5943 сборка 3734 (результат от версии не зависит)
  4. как обещал примерчик распаковать вне путей поиска, хоть в сеть AutoStart.package кинуть в автозагрузку перезагрузить нану, добавится менюшка если менюшка не нужна достаточно загрузить Starter.lsp ---- чтобы было понятнее относительно чего и как ищется, функцию поиска в отдельный файл и запихнул в отдельный каталог ----------- upd выше я был не прав в плане, что findfile ищет сперва вокруг себя, он сперва ищет в путях поиска (drz_Find_nCad) соответственно никакой коллизии при работе опираясь на пути нано поиска возникнуть не может (если конечно пользователь не накидает по этим путям одноименных файлов, но от этого и в АК ни один ССЗБ не застрахован)))) использовать эту фичу или нет каждый решает сам ---------- из неприятного, если вызвать функцию поиска из ком строки например: (drz_Finder "Resources\\AutoFillHLP.pdf") естественно ничего не найдет, но потом и (defun C:drz_Find_AutoFillHLP () (prompt (drz_Finder "Resources\\AutoFillHLP.pdf")) (princ) ) перестает находить (до перезагрузки лиспа) ---------------- ну и моя просьба в силе, повторить функционал без волюнтаризма, на .Net могу легко повторить (shell_exec по относительному пути (нанаNet не умеет LispFunction)), lisp не умею Relative lisp paths in nanoCAD.zip
  5. Здравствуйте! Столкнулся с двумя проблемами при адаптации lisp'а под nano. 1. Не работает функция ERROR определённая локально. 2. Попытка предотвратить прерывание кода функцией vl-catch-all-apply не увенчалась успехом. Код всё равно прерывается и не выполняется полностью. Для демонстрации привожу тестовую команду TEST1. Если на запрос выбора примитива нажать Esc, выполнение кода прерывается. Локальное определение функции ERROR игнорируется, и выполняется функция ERROR определённая глобально. В итоге, в командной строке результат: ошибка: функция прервана А должно быть: Конец команды TEST1 Тестировал: Платформа nanoCAD, версия 22.0, сборка ВСЕ. Встречал здесь на форуме адаптированный под nano набор функций Pltools, в котором все перечисленные функции присутствуют. И задаюсь теперь вопросом - эти функции работают некорректно только у меня на 22 версии? Какие есть варианты решения данных проблем? Переопределение функции ERROR глобально не вариант! Отказаться от vl-catch-all-apply не могу( (defun C:TEST1 (/ *ERROR*) (defun *ERROR* (MSG / ) (princ "\n Сработала локальная функция *ERROR*") (princ) ) (vl-load-com) (vl-catch-all-apply (function (lambda () (entsel "\n Нажмите Esc:") ) ) ) (princ "\n Конец команды TEST1") (princ) )
  6. Отрисовка условного обозначения откосов дороги с возможностью регулировать расстояние между штрихами (2,4). Ролик снят в nanoCAD 20.1 otkgp_1.lsp
  7. Скажите пожалуйста, можно ли переопределить действие команды "ШЛИСТ" или "РЛИСТ/опция Шаблон"? Например, если эта команда запущена, то делай то-то: открой каталог, например, с помощью lisp, vbs или scr?
  8. А, я запутался, думал, внутри кнопки надо и картинку, и текст. А sld собственно где лежат? Если судить по теме https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/add-an-image-to-dcl-file/td-p/8232058 вроде как все должно болтаться рядом с dcl (как минимум).
  9. Спасибо! Я в программировании полный профан, но не пойму как вызвать вышеуказанный lisp. Код скопировал - вставил в блокнот (файл pikettest.txt) - через UnrealCommander переименовал в pikettest.lsp - загрузил в NC 5.1... добавлено через 4 минут Такое выдает
  10. Если используется lisp, советую проверить нормаль (210-я DXF группа). Ну или на каждую вершину выполнять trans
  11. <Каталог> <nanoCAD. Программирование и автоматизация> Подготовил на Powershell скрипт синтаксического разбора LISP модулей с последующей генерацией диаграммы связности функций при помощи GraphViz. Актуальная версия скрипта будет пока лежат здесь. Сейчас скрипт в первом приближении. Я запускаю скрипт из под ISE, но, в принципе, работает и из командной строки. Скрипт опробован на трех модулях: bgtools_3.11a_Nc_21.lsp, pltools_NC.lsp, StripMtext_v5-0c1_NC.lsp При запуске скрипта предлагается выбрать LISP файл для анализа и отметить списки, которые необходимо по окончании работы экспортировать в Excel. Результатом работы является текстовый файл в каталоге \dot. Для обработки текстового файла необходим комплект утилит GraphViz. Я экспериментировал с утилитами Dot, Circo и Twopi. В каталоге \dot лежат командные файлы заточенные под мои каталоги. Их необходимо отредактировать. Кроме этого, можно экспериментировать с: опциями заполнения окончательного изображения диаграмм (строка опции в текстовом DOT файле) ratio=fill|expand с размером генерируемых изображений в дюймах (строка опции в текстовом DOT файле) size=24|36|48 c опцией разрешения изображения для растров (опция в командном файле) -Gdpi=0|100|200|300 ... с другими параметрами Важно! При обработке утилитами GraphViz почему то в режиме имен файлов по умолчанию "-O" нормально воспринимаются любые имена файлов, а при указании конкретных имен "-o" только имена файлов без пробелов. В результате получаем схему взаимосвязей вызовов функций вида: bgtools_3.11a_Nc_21.lsp pltools_NC.lsp StripMtext_v5-0c1_NC.lsp
  12. Попробовал, загрузил через настройки-дополнения-LISP, выполнил FULL_CLEAN, результатов, к сожалению не дало, виснет при вставке и все тут(
  13. Здравствуйте. Еще раз повторите пожалуйста, как расчленить мн блок? Из вышеуказанного сообщения dows, загрузила в скрипты LISP, после команды разбить не получается "Некоторые объекты не могут быть разбиты. Найдено: 1 объектов. Разбито: 0 объектов".
  14. <Каталог> <nanoCAD. Программирование и автоматизация> (Перевод стаей о типах LISP из Справки к AutoCAD 2015 и дополнительная информация специфичная для nanoCAD) Integer AutoCAD 2015. LISP. About Integers Integer - это целые числа, которые не содержат десятичной точки. Для хранения целых чисел используется 32 бита. 31 бит используется для хранения числа а один бит для хранения знака числа. Диапазон целых чисел в целом находится в пределах +/- 2^31 или (от - 2 147 483 648 до 2 147 483 647). Как утверждается в Справке к AutoLISP AutoCAD 2015, в некоторых функциях значения Integer интерпретируются как 16-битные чиста в пределах от - 32 678 до 32 677. Однако, практика показывает, что на данный момент не всё так однозначно. Например, если в nanoCAD выполнить присвоение переменной числа 2 147 483 647, то вместо ожидаемого максимально возможного целого числа, получим действительное число (REAL). А, при последующем добавлении к нему единицы значение данного действительного числа будет увеличиваться в положительную сторону. При этом, если мы инициируем переменную значением 2 147 483 646, то получим правильную верхнюю границу INT в 2 147 483 647 и переход к отрицательным значениям при последующем прибавлении 1 (единицы). Но, если мы инициируем переменную не числом 2 147 483 647, а выражением (setq xInt (- (expt 2 31) 1)), что, казалось бы, должно привести к аналогичному результату, результат получим совершенно другой. Более того, оказывается, что в AutoCAD 2015 и в nanoCAD 20.1 "граница" между INT и REAL в случае выполнения вышеупомянутых арифметических операций и оценке типа переменной при помощи функции type выглядит несколько по разному. AutoCAD: nanoCAD: Предполагается, что, в случае превышения результата арифметических операций над INT, результат автоматически приводится к REAL. Однако, практика показывает, что это не всегда верно. Рассмотрим две операции сложения и умножения вида: 1) 384 758 647 * 12 = 4 617 103 764 2) 384 758 647 + 4 232 345 117 = 4 617 103 764 Предполагается, что операции будут эквивалентными, но в действительности получаем: Резюме. Для корректной работы с целыми числами необходимо быть полностью уверенным, что их значения не выйдут за границы целочисленных значений LISP. Если есть сомнения, то лучше использовать действительные (REAL) числа, осознано преобразовывая их обратно к целочисленным значениям, в случае использования функций, работающих только с INT. Да, это трудоёмко и не всегда удобно, однако, позволит избежать непредсказуемых ошибок преобразования типов, как описанных выше, так и не описанных. Real AutoCAD 2015. LISP. About Reals REAL - это действительные числа с десятичной точкой. Числа в диапазоне от -1 до 1 могут содержать 0 (ноль) слева от десятичной точки. Значения REAL занимают 64 бита и соответствуют типу double в Си. Границы допустимых значений типа REAL примерно от 4.94 x 10-324 до 1.79 x 10308. При выходе за эти границы, будет получено значение "Infinity" (бесконечность) или 0.0 (ноль). Поскольку представленные десятичные числа имеют одинарную точность, то Машинный эпсилон (наименьшее положительное число) ε, при котором не распознаются два числа a и b: 1 < a/b < 1+ε, ε ≈ 5,96 x 10-8. Похоже, что Мантисса действительного числа состоит из 7 знаков, включая десятичную точку. И не просто состоит, но записывается в память именно с такой точностью. Поскольку в AutoLISP как AutoCAD, так и nanoCAD отсутствуют функции округления из Common LISP, типа round или trancate, прикладываю файл с функциями от Lee Mac. http://www.lee-mac.com/round.html LM_round.lsp Что нужно знать про арифметику с плавающей запятой List AutoCAD 2015. LISP. About Lists AutoCAD 2015. LISP. About Point Lists AutoCAD 2015. LISP. About Dotted Pairs List - это базовый тип LISP, представляющий собой Списки атомарных элементов и других списков. Функции, используемые для получения доступа к элементам списков: Для получения доступа к координатам 2D и 3D точек в точечных списках рекомендуется обращаться не через функцию nth, а через функции: car - для доступа к первой координате, cadr - для доступа ко второй координате и caddr - для доступа к третьей координате. Функции car и cdr могут последовательно комбинироваться и обеспечивать доступ к атомарным элементам и вложенным спискам иерархического списочного дерева до 4-го уровня вложенности. car, cdr .... cddddr About Entity Context and Coordinate Transform Data Обсуждение на форуме. 2020-10-14 LISP в nanoCAD 20.1 https://forum.nanocad.ru/index.php?/topic/11617-lisp-v-nanocad-201/&tab=comments#comment-74317
  15. Доброго всем. Пните, плиз, в нужном направлении (а если еще и пример кода будет - совсем кучеряво получится ) Суть задачи: есть несколько (2 - 3 - 5 ...) пользовательских меню, которые надо загрузить в nanoCAD. Проблема осложняется тем, что надо выполнять загрузку программно, без участия пользователя). Желательно на NET. В крайнем случае - lisp. Команды-аналога _.menuload / _.cuiload не нашел. lisp-функция menugroup не определена. На NET MenuGroups есть, но ничего по поводу Item / Load / Unload не вижу, несмотря на документацию (использую dll из SDK, если что. Может, просто "заглушки" не воткнули - не знаю). Нужны все трое - для проверки наличия группы меню, выгрузки, обновления с сервера, повторной загрузки. Если что, объединить меню невозможно - по крайней мере в текущих реалиях. На плюсы прошу не предлагать перейти, я такое не потяну. Примерно в ту же степь - каким образом можно программно поменять основное меню.
  16. Здравствуйте, подскажите куда копать, чтобы просветиться в вопросе... В справке вычитал, что кроме LSP с кодом на LISP, нанокад может воспринимать ещё и LSC (бинарный файл LISP). Гдеб по подробней почитать об этом формате и том как из LSP получить LSC? Автокад умеет работать с FAS файлами, LSC - нечто подобное?
  17. Добавлю: попытка загрузки типа линии через lisp типа: (vl-load-com) (setq adoc (vla-get-activedocument (vlax-get-acad-object))) (vla-load (vla-get-linetypes adoc) "jis_09_08" "ncadiso.lin") Также приводит к ошибке ошибка: Сервер ActiveX (TeighaX) вернул ошибку: File access error --- При этом "ручная" загрузка срабатывает корректно. Попытка вызова команды _.-linetype <Enter> _load <Enter> сработала бы, если б не вываливалось окно с запросом файла с описанием.
  18. Установлен стиль печати монохром, а на печать выходят цветные линии, что делать? Для того чтобы распечатать чертеж в монохроме ( черно-былым) необходимо чтобы цвета на чертеже были указаны в индексах. Если цвет задан RGB( 0,0,0), то СТВ-таблицы его не обрабатывают и на печать выходит цвет. Lisp "layers(1)" производит автоматическую замену цвета слоя заданного в RGB на индексированный. Пример работы: 1. Цвет слоя задан в RGB 2. Загрузить lisp 3. После выполнения команды CHGTCL в командной строке появится сообщение о заменённых цветах в слоях 4. В Диалоге Слои цвет задан индексом layers (1).lsp
  19. Бодрого дня. Подскажите как поправить lisp из Autocad, в Nano не взлетел (defun C:raschdu_t (/) (vl-load-com) (setq tochka (getpoint "\n Точка вставки?")) (setq tochka3 (mapcar '+ tochka '(-8.5 -19.1 0.0))) (command "_.-mtext" tochka3 "_j" "_tc" "_l" "_e" "" tochka3 "Вывод текста" "" ) ;_ end of command (princ) ) (prompt "\n\t***\tПрограмма загружена.\n\t***\t Команда для выполнения: raschdu_t\t***") (princ) Ошибка "Неправильный ключ или команда. Введите (') для команды или (?) для математического выражения: _.-mtext" Как я понял не работают "настройки" Мтекста. Сократил Lisp до такого (defun C:raschdu_t (/) (vl-load-com) (setq tochka (getpoint "\n Точка вставки?")) (setq ttext "@text@") (setq tochka3 (mapcar '+ tochka '(-8.5 -19.1 0.0))) (command "-mtext" tochka3 tochka3 ttext "" ) ;_ end of command (princ) ) (prompt "\n\t***\tПрограмма загружена.\n\t***\t Команда для выполнения: raschdu_t\t***") (princ) Ответ Nanocad: Команда: raschdu_t RASCHDU_T - RASCHDU_T Точка вставки? Команда: -mtext MT,MTEXT,T,МТ,МТЕКСТ,Т - Многострочный текст... Укажите первый угол: -8.5,-19.1,0 Укажите противоположный угол: -8.5,-19.1,0 Ввод текста. Закончить ввод по <Ctrl>+<Enter> или отменить по <Esc>...: @text@ Ввод текста. Закончить ввод по <Ctrl>+<Enter> или отменить по <Esc>...: Но сам текст в чертеже не заполняется (пустой) А хотелось бы еще сделать "преднастройку" размешать по центру.
  20. Товарищи. У кого то получилось с помощью lisp у мультивыноски включать выключать фон и менять цвет фона и ширина фона?
  21. Соглашусь с @EdwardSt - лучше используйте LISP, где это возможно. Скорость, гибкость, более широкие возможности. Да, нужно потыкаться, но в сети уже давно всё есть - берите кусками код. Я вот в лисп почти не умею, но по кускам себе собрал кое-что. Вот как у меня выглядит описание команды вставки МТекста: Громоздко, но один раз. Использовать просто: (PAV_InsMText iStr iPoint iAng iAlign iWidth iHeight iStyle iColor) Параметры очевидны - строка, точка, угол, выравнивание, ширина, высота, стиль, цвет. Конкретно по выравниванию МТЕКСТа, внутри функции к тексту применяется (vlax-put-property aText "AttachmentPoint" iAlign) До этого параметру iAlign передано при вызове значение acAttachmentPointMiddleRight acAttachmentPointMiddleCenter. Середина по центру, то бишь. Координату iPoint функции передаём в виде списка (там вообще всё в виде списков) (list start_x start_y 0) В общем, не так сильно сложно разобраться, если очень надо Главное - чуть мозг поправить на тему синтаксиса, которого в LISP нет, как сказал один программист Скобки не после названия функции, а перед. (Название_функции Параметр1 Параметр2 ... ПараметрN), в любой параметр можно также записать функцию (Функция2 Число1 Число2). Всё скобками разделяется. Это код из Шкалы - простенького лиспа для автонумерации шкал. Отдельно уже не пользуюсь, код перешёл в более комплексное решение. Когда очень надо, ищу что-то рабочее, иду с конца - где вызывается конкретно нужная мне фукнция (в данном случае - вставка МТЕКСТа), смотрю её параметры, упрощаю, если мне не нужно столько параметров каждый раз, оборачиваю в свою более простую функцию и пользуюсь. Пардон за оффтоп.
  22. Была переработана команда spStdSelected, теперь она прерывается по ВВОД. На вопросы по работе lisp в платформе, смогут ответить только разработчики платформы.
×
×
  • Create New...