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. Вместо 1-2 можно выполнить, указав любую доступную папку, куда положить pltools, например: Команда: LISP lsp - Загрузка LISP Задайте параметр или [Команды/Функции/знаЧения/Загрузка/Выполнение/кОнсоль]: Выполнение Введите имя команды: (setenv "ACAD" "C:\\Lida\\27823_Pltools_28045_21990") "C:\\Lida\\27823_Pltools_28045_21990"
  2. Добрый день! В глубинах компьютера обнаружил старую программу. Но появилась в ней необходимость. Программа построения эвольвентных профилей прямозубой передачи. Надо было построить шаблон зуба. Раньше она хорошо работала в Acad2004. Сейчас попытался запустить в Нанокаде (Механика 8.5). Программа загружается, запускается, но после этого появляется окно с ошибками и Нанокад начинает просить ввести непонятные данные. Причем зацикливается работа. Нормально выйти не получилось, только удалением процесса Нанокада. Лисп не компилированный в программе. На самом деле очень давно не занимался лиспом и пока нет возможности. А кому то может быть интересно. Программа не моя, иначе бы скорей всего разобрался бы самостоятельно. Но так как автор распространял в открытом доступе, то и ничьи права при адаптации затронуты быть не должны (Copyright © 2002 by Eugeny Kalney). TrueGear.zip
  3. Ниже примеры таких утилит от пользователей форума. 1.BoundMtext Lisp позволяет изменить ширину и высоту полей MTEXTA под фактический размер самого текста, удобно для тех, кто использует функцию "Скрытие заднего фона" Lisp умеет так же делать рамку вокруг MTEXTA , и делать заливку MTEXTA. Фон цвета может принимать, как различные цвет (ввод значения "1", по умолчанию применяется заливка фона белого цвета (255)), так по цвету чертежа (ввод значения "Да") Ссылка на адаптированный под nanoCAD скрипт. 2.StripMtext Очистка форматирования Mtext. Часто возникает ситуация, когда текстовая составляющая чертежа не имеет единого стиля. Это происходит, например, при копировании текста из чужого чертежа, также бывает, что и свой ранее созданный текст по неизвестным причинам приобретает иное форматирование несмотря на то, что внешне выглядит также, как и при его создании (например, перед содержимым текстового поля появляется код форматирования \pxqc) Ссылка на адаптированный под nanoCAD скрипт. 3.txt-edit_Nc Удаляет форматирование для всего файла или выборочно Ссылка на адаптированный под nanoCAD скрипт.
  4. видел ролик про команду spregen "случайно" превращающую поля в текст, но проверял на нанокаде 21 со свежим техническим обновлением - "превращения" уже нет Так же нашел LISP-файл, в том числе превращающий поля в текст, но он никак не взаимодействует с комплектом документации, и если в поле указан номер листа, то на всех листах останется одинаковая цифра (активного листа, если комплект открыт или решетки) Т.е. надо скрещивать стандартный алгоритм регенерации каждого листа перед печатью(при печати комплекта) и этот LISP
  5. Синтаксический разбор вызовов LISP модулей (PowerShell) https://forum.nanocad.ru/index.php?/blogs/entry/82-sintaksicheskiy-razbor-vyzovov-lisp-moduley-powershell/ ... в первом приближении.
  6. Наверное можно. Если, конечно, для вас не принципиально именно использование Lisp, а не пользоваться функционалом платформы. Варианты: Длина отрезков, полилиний и окружностей.dwg
  7. Актуальна ли эта http://bushman-andrey.blogspot.ru/2012/08/lisp-autocad.html проблема для NC?
  8. Большое спасибо за LISP, очень часто приходится переделывать чертежи с разным форматированием текста. Упрощает задачу 100%
  9. В AutoCAD есть инструмент автоматической нумерации текста, команда tcount. Реализовано ли подобное в nanoCAD? может есть подходящий lisp?
  10. Здравствуйте! В AutoCAD использовал Lisp-приложение, которое работало по принципу мультилинии (можно было чертить трассу вдоль стены, после чего линия автоматически "отскакивала" на заданное расстояние, но при этом линия оставалась одинарной, а не двойной, как мультилиния). В nanoCAD загрузить данную утилиту не получилось. Можно ли адаптировать этот код под nanoCAD? Файл прикладываю. А еще было Lisp-приложение для подсчета длин всех выделенных линий на чертеже. Есть ли аналог для nanoCAD? Спасибо! ParLine150.LSP
  11. Выравнивание всех выбранных отрезков, начерченных с некоторым отклонением от 90 градусов по вертикали или горизонтали. (Исправление чертежей, начерченных "кривыми ручками"). Данная программа работает как в AUTOCAD, так и NANOCAD. Большое спасибо Автору программы! -------------------------------------------------------------------------- ;; Программа для выравнивания отрезков по осям X и Y ;; Если отрезки не будут лежать в плоскости МСК ;; результат работы не определен. -------------------------------------------------------------------------- Автор программы: Программу разработал Александр Ривилис по запросу участника форума caduser.ru под ником Forma. Ссылка на первоисточник: http://www.caduser.ru/forum/index.php?PAGE_NAME=read&FID=44&TID=20481&MID=114446&phrase_id=592044#message114446 Прикрепленный файл: l_align_xy.lsp С уважением.
  12. Всем доброго дня! Получил на почту рассылку от BricsCAD. В письме - графики производительности 4-х популярных программ - ZwCAD+ 2015, AutoCAD 2015, BricsCAD V15 и NanoCAD+ 6.0, коим я и пользуюсь. bricscad-russia.ru/info.php?page=compare_other (скопируйте и вставьте в адресную строку) Результаты несколько разочаровали. Я проверил пару тестов - получилось примерно так же, тем более, всё файлы, скрипты и методику они открыто выложили, поэтому сомневаться в достоверности не приходится. Откровенно печалит, что многие действия NanoCAD делает в разы и даже в десятки раз медленнее, на каких-то виснет, а какие-то команды не поддерживает вовсе. Для меня, как для продвинутого пользователся и программиста-любителя, самое важное при переходе с AutoCAD - совместимость. Таблицы хоть и не совместимы, но предлагают улётный функционал. Тем более, год назад нормальных таблиц не было практически ни у кого, кроме AutoCAD и NanoCAD. Сейчас немного подтянулись, насколько я вижу, по крайней мере редактировать нормально можно, и формулы есть. Что касается LISP, то у меня был написан довольно полезный и несколько громоздкий скрипт "всё в одном", который по данным из большой несложной таблицы строит продольный профиль с использованием финамических блоков, опять же, массово старательно заготовленных в AutoCAD. В NanoCAD это чудо не работает. Я ещё до него не добрался, но есть предположение, что некоторые команды не поддерживаются, т.к. в скрипте я устанавливаю значения параметров дин. блоков, поддержка которых в NanoCAD неполная (блок либо работает, либо работает криво, а может и вообще не работать). 7-ю версию попробовать ещё не успел, но увы, даже если попробую, вряд ли контора будет её закупать. Так что работать нам в 6-й версии до того момента, как откопаем святой грааль или найдём клад Заканчивая монолог, обращу внимание на существование версии BricsCAD для Linux, причём родной разработки, т.е. не эмулирование Windows, а родной формат для Linux. А с всё усиливающейся легализацией ПО наших предпринимателей было бы неплохо сделать возможность хотябы эмулированного запуска NanoCAD в Linux (под WINE, например). На ОС можно хорошо сэкономить... Так что это ещё один фактор конкуренции, возросшей в последнее время (посмотрите цены и функционал).
  13. Под 20.1 прекрасно работает конструкция: FOR /r %%A IN (*.DWG) DO ( "C:\Program Files\Nanosoft\nanoCAD x64 Plus 20.1\nCadS.exe" "%%A" -b nSPDSComp -r SPDS -a nanoCAD_x64_SPDS_20.0 -invisible -g "\\dc2\Nano$\LISP\full_clean_bat.lsp") А под 21.0 всё это виснет "C:\Program Files\Nanosoft\nanoCAD x64 21.0\nCad.exe" "%%A" -b nSPDSComp -r SPDS -a nanoCAD_x64_SPDS_21.0 -invisible -g "\\dc2\Nano$\LISP\full_clean_bat.lsp") Может где-то что-то поменялось? И я просто не в курсе?
  14. Disclaimer сразу оговорюсь, способа узнать ID объекта в платформе пока не существует (по крайней мере мне неизвестно). Хотя разработчики могли бы добавить такую возможность, например в утилиту конфигурации. Но подставить костылики можно. Простой способ открыть в мастере объектов и посмотреть ID не рассматриваем (СПДС, Механик и прочие вертикалки работодатель не купил, а пробник выдохся)))) _________________________________________________________ Для чего нужен этот ID? Для того, что бы иметь возможность в вставлять таблицы с кнопок, палитры инструментов или посредством lisp из командной строки. Вот такое выражение для кнопок, менюшек и инструментов: ^C^C_stdselected <ID> для lisp (кстати лисп выражения прекрасно работают в менюшках и инструментах) (defun C:ИмяКоманды () (command "spStdSelected" "<ID>") (princ) ) Что такое этот ID? Уникальный идентификатор объекта в базе данных (БД), именно по нему программа узнает какой объект вставить на чертеж. Что мы знаем о таблицах и их ID? У каждой таблицы в БД есть свой ID: Если перемещать таблицу внутри базы по "каталогам", ID не изменяется; Если переименовать таблицу , ID не изменяется; Если утилитой конфигурации экспортировать таблицу, у экспортированной ID будет такой же; Если импортировать таблицу в базу, у импортированной будет тот же ID, но если в базе таблица с таким ID уже есть она будет перезаписана импортируемой (независимо от имени); Если в в каталоге базы есть таблица с другим ID, но таким же именем, то при импорте таблица перезаписана не будет ( в этом каталоге будут две одноименные таблицы); После вставки на чертеж ID у таблицы на чертеже нет; Если после редактирования на чертеже сохранить в "каталог" базы одноименную таблицу, ID таблицы которая была в базе не изменится. Что дает нам это знание? Можно сделать экспорт из БД интересующих объектов и попросить имеющих СПДС импортировать их к себе, посмотреть ID, вариант рабочий, но далеко не каждый имеет БД для тестов и поэтому вряд ли будет импортировать себе неизвестно, что с риском перезаписать свои объекты; Можно модифицировать и перезаписать стандартные таблицы из БД (их ID можно посмотреть в инструментах) как по мне так себе идея модифицировать стандартные объекты, при обновлении базы могут перезаписаться опять стандартными; Можно импортировать в свою БД таблицы с заранее известными ID и в дальнейшем работать с ними Суть идеи... Загружаем в свою базу таблицы отсюда в архиве *.mcd таблицы пустышки, имя таблицы, ее ID; Импортируем таблицы в свою БД в любое место; Запоминаем имена-ID таблиц либо сразу привязываем их на кнопки и в инструменты; В утилите конфигурации переименовываем таблицы, как требуется, там же в утилите можно переместить таблицы в нужные каталоги. Свои настроенные таблицы из БД вставляем на чертеж (либо настраиваем непосредственно на чертеже) Сохраняем таблицы с чертежа в БД !!!Важно в тот же каталог и под тем же именем, где лежит таблица пустышка (с заранее известным ID) Настроенная таблица перезапишет ту, что в базе, но ID не измениться; Профит, пользуемся и разработчикам, что бы они добавили возможность посмотреть ID в "голую" платформу --------------- PS Если вдруг кто не в курсе Никак не связаны и не обязательно должны совпадать,
  15. Просто оставлю это тут https://autolisp.ru/2020/12/04/net-vs-lisp/ Ну да, и скорость тоже (иногда). Если сравнивать скорость, то корректнее сопоставлять с компилированным лиспом. Все-таки, автолисп реализован в АС, как интерпретатор. т.е. по определению нешустрый. Но на современных машинах чаще всего скорость выполнения не является основным критерием, проектировщик чешет репу и двигает мышкой на несколько порядков медленнее. Времена, когда наблюдаешь на экране мультфильм на несколько десятков секунд из полстроения примитивов, прошли еще в эпоху 486DX процессоров. Поэтому, каждому средству программирования всегда найдется ниша оптимального применения.
  16. Пока хватает возможностей Lisp, лучше продолжать пользоваться им. ИМХО Конечно, интерфейсные элементы откровенно слабы, но остальное - вполне на уровне. А зачастую - куда эффективнее.
  17. Здравствуйте! В AutoCAD использовал Lisp-приложение, которое работало по принципу мультилинии (можно было чертить трассу вдоль стены, после чего линия автоматически "отскакивала" на заданное расстояние, но при этом линия оставалась одинарной, а не двойной, как мультилиния). В nanoCAD загрузить данную утилиту не получилось. Можно ли адаптировать этот код под nanoCAD? Файл прикладываю. А еще было Lisp-приложение для подсчета длин всех выделенных линий на чертеже. Есть ли аналог для nanoCAD? Спасибо! ParLine150.LSP
  18. Я новичок же) Знаю немного питон. Вот увидел JScript и решил что это более перспективно, чем lisp, поэтому быстренько прошелся по мини-курсу для понимания синтаксиса. Кроме того JScript еще много где пригодиться может. Потому вот, как написал выше, прошелся по мини-курсу и, так скажем, поверхностно разобрался. Разобрался с построением звездочки из примера. Теперь захотелось свое написать, но хочется с какими-то диалогами. Потому и спросил можно ли это в целом сделать, но, видимо, придется еще по лиспу пройтись)
  19. @dows Да, спасибо, посмотрел. Там как раз тот helloworld, который вместе с nanoCAD идет. Там есть star.js, где звездочка рисуется и есть пара файлов lisp+dcl, которые как раз работают вместе запуская диалоговое окно (dcl) при запуске lispa. Там примерно: ; load DCL file (setq dcl (load_dialog "helloworld.dcl")) и т.д. Вот тут понятно, что вызывают этот файл, где диалоговое окно описано. А есть ли примеры, где JavaScript вызывает файл диалогового окна и потом обрабатывает все и выдает результат обратно в диалоговое окно? Вот там есть пример еще очень хороший sindialog.lsp + sindialog.dcl. Там прям здорово. Лисп открывает диалог, вводишь значение угла, жмешь рассчитать здесь же в диалоге и здесь же результат. Такое реально выполнить в связке JavaScript + dcl?
  20. Оживлю веточку) В примерах нашел связку LISP+DCL. Лисп запускает диалоговое окно, заполняем, возвращает назад. А можно ли связку сделать JavaScript + DCL? Не нагуглил. Ну и сразу может вдогонку пример какой-нибудь helloworld?
  21. ... и это все ради того, чтобы увидеть сумму длин выбранных объектов? Офигел, пока прочитал. Может кто знает, как подключить GeomProps.arx (незаменимую для AutoCAD) в нанокаде? Или может есть подобный lisp у кого?
  22. Чудеса машинной арифметики в LISP. (Не только nanoCAD, но и AutoCAD) 1. Проверяем работу LISP функции GCD - вычисление наибольшего общего делителя. Для этого пишем очень простую функцию: Которая при отправке в неё значений 384756847 и 2364756 даёт неправильный результат, поскольку естественным образом наибольший общий делитель ожидается не меньше чем 12 ! Подозрение сразу упало на проблемы с Типом значения переменной. В описании GCD сказано, что данная функция работает только с INT. А в руководстве AutoLISP говорится, что INT - это целочисленные значения в пределах -32768 и 32767. Однако, на скриншоте видно, что вычисленные значения, выходящие за рамки указанного диапазона ( -32768 и 32767), LISP функцией type также воспринимаются, как INT ! В итоге, в результате исследований выяснилось, что в данном конкретном случае неверно вычисляется выражение 12 * 384 758 647, которое должно быть равно 4 617 082 164, а не 322 114 868 ! Полученное в результате умножения значение превысило Границу и мы получили в целом неверный результат. 2. Проверяем где именно проходит граница между типами значений, интерпретируемыми как INT и REAL. Предполагаем, что это будет 32-битное число. И получаем занимательный результат ! - Сначала "переходим через границу" добавляя единицу к максимальному значению 2 147 483 647. Причём переход "в минус" однозначно показывает, что это действительно максимальное значение. - Определяем границы для значений переменных - Определяем границы для числовых значений AutoCAD: nanoCAD: Как то так .... Тестовый скрипт: gcd_test.lsp Upd. В дополнение
  23. Так как на текущий момент размеры проставляемые в nanocad не учитывают ПСК, то текст в некоторых случаях вставляется в перевернутом виде! Для решения этой проблемы, а также для возможности в дальнейшем изменить ориентацию размерного текста согласно текущей ПСК, есть решение в виде скрипта на LISP (как бы его не любили). Команда запуска DimOrientUCS (Autocad также поддерживается) DimOrientUCS.LSP
  24. Функция назначенная на выполнение при активации элемента типа :popup_list, выполняется не только при активации данного элемента, но и сразу же при запуске основного модуля. Функции назначенные на выполнение при активации элементов типа :list_box, :button выполняется, как и положено, только при активации элемента на который они назначены. Протестировано на NCadSDK81_3712.2221.3574. В приложении тестовый пример и скрин результата. После старта приложения popuptst , не дожидаясь активации раскрывающегося списка POP2 , сразу же появляется ответ функции popact, как будто элемент :popup_list pop2 был активирован. Как сделать так, что бы функции назначенные на элементы типа :popup_list выполнялись ТОЛЬКО при активации соответствующих элементов ? DCL файл почему-то запрещено присоединять к сообщению. Вот его текст. popuptst.DCL popuptst : dialog { label = "Тест выпадающих списков"; width = 30; //:popup_list { :list_box { key = "pop1"; label = "pop1"; } :button { key = "bpop1"; label = "get 1"; } :popup_list { key = "pop2"; label = "pop2"; } :button { key = "bpop2"; label = "get 2"; } :popup_list { key = "pop3"; label = "pop3"; } :button { key = "bpop3"; label = "get 3"; } ok_cancel; } popuptst.LSP
×
×
  • Create New...