Search the Community
Showing results for 'lisp'.
-
-
Как в nanoCAD в консоли узнать состояние инициированной переменной ? В AutoCAD для этого предназначена команда > !<VarName>, но в nanoCAD она не работает ни в командной строке, ни в консольном режиме. Upd. В nanoCAD в консоли переменная выводится без задания префиксом восклицательного знака. Но можно ли как то получить значение переменной и в командном режиме ? Upd2. Мелочь, но тем не менее. Почему "Ошибка" ?
-
Переработал для себя lisp, которым пользовался в autocadе, и добавил некоторые специально для nanocada. Выкладываю, может кому-нибудь пригодится. Работоспособность проверялась в Nanocad СПДС 22. Установка: - скопировать все файлы в папку, - прописать эту папку в настройках nanocada как путь к вспомогательным файлам - добавить файлы CustomFunc.LSP, SNanoHelp.LSP, comBlock.lsp в автозагрузку comBlock.lsp CustomFunc.LSP SNanoHelp.LSP _DynBlock_Template.dwg bl_redefine.DCL block_prop_copy.DCL printDialog.DCL printOpt.DCL Рамки форматаV4.dwg Upd. Добавил файлы в загрузки
-
Lisp.Расстановка дин.блоков по вершинам полилинии (нумерация вершин) Описание- Данный Lisp пригодится тем, кто хочет быстро получить координаты полилинии. Функционал: Расставляет любой дин блок в вершины, задается любая начальная нумерация, вставка префиксов и суффиксов нумерации. Отдельное спасибо A.Kudrjashov Файл.dwg MD.lsp
-
Наверняка же кто-нибудь озадачивался переписыванием и переназначением стандартных команд Нанокада (Типа "Сохранить", "Новый файл", "Закрыть" и т.д.) на LISPе? Есть какие-то проверенные временем версии, чтоб заменить и спокойно забыть до поры, пока не захочется в них что-то своё добавить?
- 28 replies
-
- сохранить как
- открыть
-
(and 2 more)
Tagged with:
-
Здравствуйте Уважаемые специалисты NanoCAD! Подскажите пожалуйста как передать переменную "(getvar "CPROFILE")" из запускаемого ЛИСПА в файл vbs, например: В lisp: (vl-cmdf "-VBS" "C:\\!Settings.vbs") В !Settings.vbs: strKeyPath = "SOFTWARE\Nanosoft\nanoCAD x64\22.0\Profiles\(getvar "CPROFILE")\IO\SaveProjects"
-
Lisp.Изменение высоты и ширины MTEXTA (BoundMText) Описание- Lisp позволяет изменить ширину и высоту полей MTEXTA под фактический размер самого текста, удобно для тех, кто использует функцию "Скрытие заднего фона" Lisp умеет так же делать рамку вокруг MTEXTA , и делать заливку MTEXTA. Фон цвета может принимать, как различные цвет (ввод значения "1", по умолчанию применяется заливка фона белого цвета (255)), так по цвету чертежа( ввод значения "Да") Отдельное спасибо EdwardSt BoundMText.lsp
-
Добрый день! Прошу помощи с загрузкой LISP в нанокад. В Автокаде он работает. Навыками программирования не обладаю. При загрузке LISP выдает ошибку В редакторе LISP, при запуске пишет "Неверный тип аргумента 2D/3D point: nil" Код: (vl-load-com) (defun C:adv_toolkit_installer (/ path sup_path my_path _adv-str-with-separator-to-lst) (defun _adv-str-with-separator-to-lst (str pat / i) (cond ((= str "") nil) ((setq i (vl-string-search pat str)) (cons (substr str 1 i) (_adv-str-with-separator-to-lst (substr str (+ (strlen pat) 1 i)) pat) ) ;_ cons ) (t (list str)) ) ;_ cond ) ;_ defun (setq sup_path (vla-get-supportpath (vla-get-files (vla-get-preferences (vlax-get-acad-object)) ) ;_ end of vla-get-files ) ;_ end of vla-get-supportpath ) ;_ end of setq ;| (PRINC "\n") (PRINC "Старые пути поддержки:") (PRINC "\n") (PRINC sup_path) (PRINC "\n") |; (setq sup_path (vl-remove-if '(lambda (x) (wcmatch x "*ADV*")) (_adv-str-with-separator-to-lst sup_path ";") ) ;_ end of vl-remove-if ) ;_ end of setq (setq path "") (mapcar '(lambda (x) (setq path (strcat path x ";"))) sup_path ) ;_ end of mapcar (vl-string-right-trim ";" path) (setq my_path ";C:\\ADV_Toolkit") (setq path (strcat path my_path)) (vla-put-supportpath (vla-get-files (vla-get-preferences (vlax-get-acad-object))) path ) ;_ end of vla-put-supportpath ;| (PRINC "\n") (PRINC "Новые пути поддержки:") (PRINC "\n") (PRINC (vla-get-supportpath (vla-get-files (vla-get-preferences (vlax-get-acad-object))))) (PRINC "\n") |; (vl-cmdf "_.-WSSAVE" "" "_y") (vl-cmdf "_.CUIUNLOAD" "adv_toolkit") (vl-cmdf "_.CUIUNLOAD" "adv_cad") (vl-cmdf "_.CUILOAD" "adv_toolkit") (setvar "WSCURRENT" (getvar "WSCURRENT")) ) ;_ end of defun (C:adv_toolkit_installer) (PRINC "\nADV_Toolkit успешно загружен и настроен.")
-
Прошу помощи в адаптации Lisp под нанокад. А именно функцию команды PL-VFI Я так понимаю вся истина кроется тут (ssget "_:L" '((0 . "*POLYLINE,LINE,ARC,CIRCLE")))) А именно тут "_:L" pltools.lsp
-
Добрый день Я новичок в lisp, прошу помощи. Хочу включить панель инструментов, а если панель инструментов уже включена, то не выключать ее при запуске lisp команды. Следующие строчки работают как включить панель инструментов, при повторном запуске выключить панель инструментов: (DEFUN c:test () (command "showtoolbar_3DREFEDIT") )
-
Почему-то нету кнопки прикрепить в этой ветке форума у меня) Лисп удаления дублирующихся блоков во всём чертеже: https://ftp.nanosoft...665d415e5ade6d2 UPD. Кнопка появилась)) pl_bl-del-copy.LSP
-
В объектной модели приложения многие элементы представляют собой коллекции. Помимо различных специфических свойств они имеют похожие методы/свойства "Item" и "Count" с достаточно очевидной интерпретацией. Вместе с тем, доступ к некоторым из них вызвал затруднения. Поясню на примере. Небольшой фрагмент кода: (vl-load-com) (defun c:Example_Collection() (setq acadObj (vlax-get-acad-object) v acadObj) (print "Исследуем коллекцию Application") (vlax-dump-object v 'T) (setq v (vla-get-MenuBar v)) (print "Исследуем коллекцию MenuBar") (vlax-dump-object v 'T) ;(setq v (vla-item v 0));Такой доступ не прокатывает (setq v (vla-item v "Файл")) (print "Исследуем коллекцию пункта меню") (vlax-dump-object v 'T) ) Все штатно и ожидаемо. Имеем свойство "menubar" - только для чтения. с попутным сообщением Т.е., средствами лиспа не удалось определить количество элементов Item. Не удается так же "добраться" до первого элемента меню через Item[0]. Теме не менее, удается извлечь Все параметры с ошибкой сопровождаются с похожими сообщениями об ошибке (см.выше). На основании этого кейса хотелось бы получить ответы на следующие вопросы: Как средствами lisp все-таки получить значения свойств, для которых отображается "ошибка" в функции (vlax-dump-object и всех сходных с ней типа (vlax-get-... и (vlax-get-property... ? Как получить размерность массивов Item, когда свойство "Count" недоступно (см. вопрос1) ? Как получить список доступных наименований, с помощью которых можно получить доступ к Item["Имя"] ?
-
Здравствуйте, возможно кто-то сможет помочь. Имеется Lisp используемый в AutoCad, называется Parline. Суть в том, что ты задаешь точки привязки на плане и автоматически параллельно стене с заданным в Lisp отступом прорисовывается полилиния. Загружая в NanoCad это Lisp он работает отчасти, т.е. понимает, что нужно задать точки привязки, но потом теряет связь и вместо автоматической отрисовки полилинии с отступом, предлагает самому рисовать полилинию. Возможно ли интегрировать данный Lisp в NanoCad? Файл прикладываю. Один Lisp делает отступ наружу заданных точек (допустим контура), другой делает отступ внутрь. ParLine.LSP ParLine1.LSP
-
Всем привет! Обнаружил, что функция ANGLE в NC возвращает отличные от AC значение угла. в AC, функция возвращает угол в диапазоне от 0.0 до 2*Pi в NC, функция возвращает угол от 0.0 до Pi и от -Pi до 0.0 В итоге, для совместимости функции в AC и NC, использую такую обёртку: (defun ATP:angle (p1 p2 / ang) (if (minusp (setq ang (angle p1 p2))) (+ pi pi ang) ang ) )
-
Проблема с функцией SIN в LISP
streek posted a topic in Технические вопросы и обсуждение функционала
На парах в институте задали написать программу для вычисления синуса функции (B-X/Z)+5*(B+A-80). Всё работало до момента, пока не занёс эту вещь под SIN. Протестировал с любыми значениями, не только с функцией - всегда один и тот же ответ: "ошибка: неверное число аргументов: SIN". Тексты исходных программ: 1) Моя функция - (DEFUN SIN (A B X Z) (SIN (+ (- B (/ X Z)) (* 5 (- (+ B A) 80)))) ) 2) Функция для проверки из методического пособия - (DEFUN SINCOS (A) ( + (SIN A) (COS А)) ) -
При запуске пишет неверный тип аргумента numberp nil. Подскажите, пожалуйста, с чем это связано? Я в этой теме вообще новичок (((( Программа с окном dcl и так-то и лично для меня много уже подфункций. + знаете как уменьшить масштаб размеров? - в автокаде приемлемо, но в нанокаде очень большие RCHsovstroknom.lsp OknoRCH.dcl
-
В АК крутит атрибуты в ноль по ПСК, по объекту и на произвольный угол... В НК на произвольный угол не умеет. Посмотрите пожалуйста, кто разбирается.. может можно починить? AttrRot.lsp
-
Добрый день. Автокад 21 Нанокад 22 После перевода "самодельной" лисп программы под нанокад - долгое время выполнения программы. Для исключения проблем в дилетанском коде прилагаюcircle_test.lsp простую тестовую программку. Время выполнения в автокад: 1 сек. Время выполенния в нанокад: 12 сек. Есть ли способ ускорить? (Может системные переменные какие либо?) Всем ответившим заранее спасибо.
-
Доброго дня. Брал здесь: https://forum.dwg.ru/showthread.php?t=167215 Куда мышкой кликаете - там номер появляется. Всё просто. Работает так: 1. В командной строке набираете MNUM. 2. Тип нумерации числовая - целые и вещественные числа, либо буквенная "А, Б, С...Я" прописными русскими. 3. Префикс - это символ перед номером; нач. значение, интервал - это понятно; постфикс - символ после номера. 4. Программа создаёт текстовые объекты в указанной вами точке с заданными параметрами - слой, стиль текста, высота текста, сжатие. AutoNum_M_v.1.1.LSP Выкидывает ошибку: MNUM - MNUM ошибка: load_dialog failed to load file "C:\Users\Yurij\AppData\Local\Temp\AutoNum_M.DCL"
-
Нумерация точек чертежа вручную с возможностью задавать префикс, суффикс и угол поворота текста. Num_Nc.lsp
-
Значения координат точек (X,Y,Z) выводятся в системе координат nanoCAD, округленные до двух знаков после запятой. Вывод координаты Z можно отрегулировать. geo_koord_mleader_adapt.lsp
- 34 replies
-
- 10
-
-
-
Добрый день! Прошу помощи, есть lisp который позволяет нумеровать атрибуты в блоках последовательно по согласно выбору по щелчку мышки. В АКАДЕ работает без проблемм. В нанокаде отказывается, в коде не силен, прошу помощи по адаптации этого кода для нанокада. (defun *error* (msg) (if (= msg "Function cancelled") (princ msg)(princ));if (setvar "CMDECHO" cmd) (setvar "PICKAUTO" pca) );*error* (defun C:KAN ( / ass cmd pca dn n at ast val) (setq adoc (vla-get-ActiveDocument (vlax-get-acad-object)) cmd (getvar "CMDECHO") pca (getvar "PICKAUTO") n 0);setq (setvar "CMDECHO" 0) (initget "Number Renumber") (setq kw (getkword "\n[Number/Renumber]? <N>")) (if (null kw) (setq kw "Number")) (if (= kw "Number") (setvar "PICKAUTO" 0)) (setq dn (getint "\nInput Start or Offset Number: <1>")) (if (null dn) (setq dn 1)) (prompt (strcat "\nSelect Blocks for " kw "ing: ")) (ssget) (setq ass (vla-get-ActiveSelectionSet adoc)) (vlax-for sb ass (if (= (vla-get-objectname sb) "AcDbBlockReference") (progn (setq at (car (vlax-safearray->list (vlax-variant-value (vla-getattributes sb)))) ast (vla-get-TextString at) val ast);setq (while (wcmatch val "*@*") (setq val (substr ov 2))) (vla-put-TextString at (strcat (vl-string-right-trim val ast) (if (= kw "Number") (itoa (+ n dn))(itoa (+ (atoi val) dn)))));vla-put (setq n (1+ n)));progn (alert "Oops! It's not a Block!"));if );vlax-for (setvar "CMDECHO" cmd) (setvar "PICKAUTO" pca) );end KAN.lsp
-
Lisp.Очистка форматирования MTEXTA (StripMtext.Адаптированный) Описание- Часто возникает ситуация, когда текстовая составляющая чертежа не имеет единого стиля. Это происходит, например, при копировании текста из чужого чертежа, также бывает, что и свой ранее созданный текст по неизвестным причинам приобретает иное форматирование, не смотря на то, что внешне выглядит также, как и при его создании (например, перед содержимым текстового поля появляется код форматирования \pxqc). И так, чтобы моментально очистить такое форматирование МТекста существует бесплатное LISP-приложение для NanoCAD StripMtext. Разработчики приложения — Steve Doman и Joe Burke. Отдельное спасибо EdwardSt StripMtext v5-0c-nanо.lsp
- 1 reply
-
- 4
-
-