Search the Community
Showing results for 'lisp'.
-
Миграция макросов с AutoCAD
EdwardSt replied to k.scvortsov90's topic in Программирование под платформу nanoCAD
Наверное, код делает еще много чего... Сама задача подключения к Excel и заполнения ячеек определенными данными достаточно просто и эффективно реализуется на Lisp с использованием vlax функций. Конструкция работает небыстро, но универсально для АС и NC. -
Это всё верно. Только изначальное назначение "этих Таблиц" не замена Excel, lisp , vba и прочего. Просто дать простому проектировщику инструмент для автоматизации алгоритмов, которые они используют в своей работе. И тут очень много проблем. "У меня есть таблица в Excel и я ей пользуюсь". Типовой ответ. Очень сложно переубедить
- 41 replies
-
- 2
-
-
- мир
- пользовательске
-
(and 3 more)
Tagged with:
-
Я просто не проводил экспериментов с программным доступом к содержимому таблиц. Понятно, что COM, Lisp via COM или другие технологии - это исключительно на вкус разработчика. Но при этом, похоже, необходимо проводить некоторые вспомогательные действия типа обновления атрибутов в блоках или команд, выполняющих эти обновления, а уже потом эти изменения отразятся в таблице. Заманчиво было бы, чтоб все происходило в автомате. Видос от @MCAD очень интересен. Использование специального маркера локальной СК - , пожалуй, самый верный подход. Разумный компромисс между автоматическим переводом при любой смене СК (даже временной) и ручными манипуляциями с объектами и, атрибутами и таблицами. К сожалению, такого маркера у себя в стандартной установке не нашел. Ну и точный поворот маркера - какая-никакая, но все-таки проблемка.
- 41 replies
-
- мир
- пользовательске
-
(and 3 more)
Tagged with:
-
Начну немного издалека... Есть несколько разношерстных независимых сборочек package: lisp, dll, exe, cfg В cfg каждой прописаны свои команды, панели и меню, но все меню грузятся и собираются под один пункт тут все просто ну и так далее, минимум места, максимум функционала ------------- но с лентой такой фокус не прокатывает если из конфига подгружать в одну вкладку [\ribbon\drzTools] CUIX=s%CFG_PATH%\PlotSPDS_menu.cuix visible=f1 [\ribbon\drzTools] CUIX=s%CFG_PATH%\AutoFill_menu.cuix visible=f1 то последний загруженный cuix затирает предыдущий если подгружать под разные [\ribbon\AutoFill] CUIX=s%CFG_PATH%\AutoFill_menu.cuix visible=f1 [\ribbon\PlotSPDS] CUIX=s%CFG_PATH%\PlotSPDS_menu.cuix visible=f1 то вот такая шляпа(((( места вагон остается, а заполнить не могу --------------------- Собственно вопрос, как? если есть ли возможность загрузить несколько cuix под одну вкладку т.е. что бы получилось вот так
-
вопрос о том, что в первом посте топа инсталлятор который сам по себе никакой пользы не имеет конечная цель загрузка и настройка приложения которое в принципе в НК не работоспособно эту мысль ТС'у я и попытался донести... и даже если бы работала, это ТС'у в данном конкретном случае никак не помогло бы, просто я немного забежал вперед.. предвосхищая следующие вопросы))) --------------------- дык кто же спорит, давно бы уже тему Неработающие lisp функции нанокад иль чего подобное запилили вон и у Алексея мысли в этом направлении бродят
-
Всем привет! Столкнулся ещё с одним багом. В частности, некорректно работают методы задания новых координат для полилинии. Проверил так: (vlax-put {Object} 'Coordinates {ListPoints}) и так: (vla-put-Coordinates {Object} {VariantPoints}) Результат один - неверный. Правда, не во всех случаях) Ошибка проявляется когда для полилинии устанавливаем более короткий список вершин. Во вложении видео с тестовой командой TestLW, где я создаю новую полилинию поверх восьмигранника, а затем, указывая новые вершины треугольника, пытаюсь её преобразовать. В результате получаю полилинию не в виде треугольника, а что-то иное, частично позаимствованное от старой фигуры. Тестовый Lisp файл во вложении. TestLW.mp4 TestLW.LSP
- 27 replies
-
- vlax-put
- coordinates
-
(and 2 more)
Tagged with:
-
Всем привет! В общем, ответа от разработчиков NC пока нет, а ждать у моря погоды нет времени, то для себя решил обойти проблему следующим образом. Хранить штатное глобальное определение обработчика ошибок в переменной, и по мере работы, переопределять и восстанавливать её определение. Вот так: ;При загрузке Lisp файла сохраняем штатное определение обработчика ошибок в переменную *standart-error* (setq *standart-error* *error*) (defun c:TEST ( / ) ;При запуске команды TEST переопределяем глобально обработчик ошибок (defun *error* ( msg ) ; в случаи ошибки восстанавливаем обработчик ошибок (setq *error* *standart-error*) ; Логика в случаи ошибки ; Если нужно, можем сказать с чем связана ошибка (if (wcmatch (strcase msg t) "*break*,*cancel*,*exit*,*quit*,*отмен*,*прерв*") (princ "\n Команда прервана пользователем\n") (princ (strcat "\n ERRNO # " (itoa (getvar "ERRNO")) ": " msg "\n" )) ) (princ) ) ; Логика команды TEST ; восстанавливаем обработчик ошибок (setq *error* *standart-error*) (princ) ) Интересно узнать, кто что думает о таком решении? И как вы оцениваете надёжность данного способа?
- 13 replies
-
- lisp
- vl-catch-all-apply
-
(and 1 more)
Tagged with:
-
Не реализована возможность ввода лисп-выражения в интерактивном режиме. Например, К сожалению, в нанокаде такой ввод невозможен (или я что-то не так делаю?) Такой метод ввода данных, конечно, не является широко распространенным. Но иногда он очень удобен. Например, если нужно ввести значение, которое представляет собой что-то типа 1/3 (при операции масштабирования). Ввод 0.33 - слишком грубо, 0.33333333333333333... - слишком долго и опять же может быть грубо. А вот (/ 1.0 3.0) - самое то! Но в АС оно есть, а в NC - нет. PS. Хотя реализован прямой ввод 4*3. И это хорошо. Только зачем проводить обработку лисп-выражения, но ничего не делать? Кроме того, кроме арифметических выражений, для которых реализовано даже лучше, чем в АС, возможно применение и выражений типа (entlast - последний элемент) при ответе на приглашение выбрать объекты, например, для удаления.
-
Добрый день. Есть ли продвижение по реализации SLIDE_IMAGE? Пытаемся перейти с Автокада на Нанокад. Есть ряд примочек работающих с Lisp - DCL и использующие подгруппу *_image. Проведена ли какая-то работа в этом направлении с 2014 года?
-
В связи с отсутствием среды отладки LISP в nanoCAD выкладываю ссылки на интересные презентации, показанные в рамках Autodesk University. Большая часть функций в nanoCAD работает и предложенная методика по большей части в nanoCAD может быть успешно использована. Не работают: vl-catch-all-*, *push-error-* Собственно презентации: 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 Параллельно выложил на Яндекс-диск LISP - https://yadi.sk/d/qWePcZh2bdb6sQ?w=1 LISP_functions_NC20_AC2015.xlsx - https://yadi.sk/d/ZXPahVmU5Tw_sQ LISP Dump File - https://yadi.sk/d/Ni7wQDNgHXnTkA P.S. На сайте Autodek University можно найти очень много интересного. AutoLISP Debugging (AlfraLISP) https://www.afralisp.net/autolisp/tutorials/debugging.php
- 1 reply
-
- 2
-
-
Настройки. Стандартные папки
doctorraz replied to doctorraz's topic in Технические вопросы и обсуждение функционала
насчет dll думал, технически несложно, но у меня пока три независимых "приложения", пользователь их может загружать из любого места, в любых сочетаниях, т.е. dll не вариант соответственно у каждого свои файлы справки, с онлайн справкой конечно проблем нет (она всегда в одном месте) а вот оффлайн открытие справки (lisp) и вызвала у меня затруднения.. но пусть и по волюнтаристски для нано вопрос решен, насчет АК если ( хотя вряд ли) возникнет нужда буду решать по факту -
Только начинаю разбираться с NanoCAD, посему прошу сильно не пиннать) Форум прочел, но ответа на свой вопрос не нашел( Есть файл .lsp, добавлен в автозагрузку, для запуска функций из него - нужно в командной строке LSP - О - функция Хотелось бы этот процесс упростить, путем добавления пользовательского меню, с кнопками вызывающими функии из моего файла. Как это делать с JS и VBS - посмотрел в примерах, все работает, а вот с LISP как быть? Помогите пожалуйста, может быть примером кто поделиться?
-
Возможно ли в нанокаде загрузить шаблон автоматически? Необходимо загрузить рамку, но сделать это в минимальное количество телодвижений. Использовать команды через панель - долго, т.к. там необходимо указывать путь до папки. Есть ли какая-либо функция, чтобы шаблон или блок автоматически подгружался в пространство модели? Может быть при вводе какой-либо функции в командную строку или через lisp. Знаю о функции "import" и ей подобных, но при ее использовании также нужно указывать путь, а это необходимо свести к минимуму.
-
Решил проверить состав команд LISP в nanoCAD 20.1 ... печалька ! Проверка показала резкое сокращение числа Symbols распознаваемых стандартным LISP. Проверка проводилась через 1) Команду >(atoms-family 1) 2) Скрипт LISPDumpFile.lsp (Прилагается) В результате получилось: Это: (1) ошибка, (2) отражение реального положения дел в LISP nanoCAD или (3) принципиальный отход от программирования на LISP в nanoCAD ? Вложения: LISPDumpFile.lsp LISPDumpFile_out.rar LISP_Symbols.xlsx
-
Пауза для ввода данных в виртуальной команде
kpblc replied to neokort's topic in Технические вопросы и обсуждение функционала
(command "_Mirror" "_p" " " pause pause "д") DIESEL != LISP -
Пока гора не идет к Магомету можно использовать lisp В примере все прозрачно Ну и там еще кое-чего есть
-
Замечательно. С построением разобрались. Переходим ко второй части. У области нет параметра "Центр масс". Он высчитывается в "Геометрия и масса". Возможно добавить помимо сохранения результатов в файл предложение "Установить центр на чертеже?" и добавить объектом "перекрестье с надписью "ц.м."" или как маркер у центра радиуса? Если это никому не нужно, то хотя бы подскажите как вытянуть из расчета параметры, чтобы не писать все формулы расчета (он же уже реализован программно) и использовать для создания центра средствами lisp или vba. Или возможно расширение характеристик геометрии для данного объекта? ))
-
Ненужные нанодиалоги
doctorraz replied to doctorraz's topic in Программирование под платформу nanoCAD
Блин... То была гипербола на тему, что нанодвижок должен различать прилетело ему из интерфейса или из программы.. Команда- простите мой французский, я еще только учусь, но для меня команда это потыкать нано изнутри шоб он чето сделал, неважно net vba ... Lisp имха тут немного особняком.. его команда может быть как в составе программы изнутри, так и напрямую с кнопки снаружи добавлено через 4 минут Тот год пробовал, чет не заработало у меня... Надо вернуться к этому вопросу... Осталось научиться ловить появление msgbox и нажимать не кнопку по умолчанию, а нужную.. в контексте чего этот месадж хочет -
А файлы каким образом открываются? И на каком языке? Потому как у меня что через ObjectDBX (lisp), что через переключатель баз (C#) никаких диалогов в принципе не вываливалось. Ну, кроме сообщений об ошибках при некоторых условиях
-
В процессе адаптации одного из Lisp-скриптов выяснилось различие в реализации DXF-кодов для объекта "LWPOLYLINE" по сравнению с аналогом. Результат вызова функции (entget... . Различие в том, что аналог возвращает двухмерную точку, а NC - трехмерную. При сохранении файла в DXF-формате обе системы сохраняют Косяк, предположительно, в реализации функции (entget...
-
Есть программы которая считывает атрибуты блока и заполняет таблицу (например: общие данные). Случайно заметил глюк. При очередном открытии файла (после просмотра его автокадом) атрибуты блоков немного "поплыли". Помогает команда в командной строке "атробновить". Атрибуты в пространстве модели после этого выглядят нормально. Но программное чтение атрибута не видить его значения. При этом в свойствах блока значения атрибутов видно. Чтобы исправить ситуацию приходится ручками заходить в редактирование атрибута блока и не редактируя выйти. Что это может быть? и как избежать?
- 24 replies
-
В AutoLISP различие результата выполнения функций print и prin1 заключается в частности в том, что функция print предваряет вывод очередной порции текста переводом строки. В nanoCAD этого не происходит ! TestPrint.lsp test-print_nanoCAD.txt test-print_AutoCAD.txt
- 3 replies
-
- 1
-
-
- prin1
- write-line
-
(and 2 more)
Tagged with: