Megaz Posted April 17 Report Share Posted April 17 Добрый день! Прошу помощи с загрузкой 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 успешно загружен и настроен.") Link to comment Share on other sites More sharing options...
kpblc Posted April 17 Report Share Posted April 17 Ну как бы нанокад говорит, что vla-put-supportpaths / vla-get-supportpaths не реализован. Так что пути поддержки надо обрабатывать как-то по-другому (сам с подобными задачками сижу, эффекта нуль - хоть через лисп, хоть через NET). Кроме того, команд _.cuiload / _.cuiunload / _.wssave, равно как и переменной wscurrent я в NC не припомню. Загружать меню (да и приложения тоже) лучше через package, как мне подсказал @doctorraz. 3 Link to comment Share on other sites More sharing options...
EdwardSt Posted April 17 Report Share Posted April 17 35 минут назад, kpblc сказал: Так что пути поддержки надо обрабатывать как-то по-другому приходится вытаскивать параметры поодиночке Спойлер (vl-load-com) (setq a (vla-get-files (vla-get-preferences (vlax-get-acad-object)))) (vla-get-AutoSavePath a) Вместо AutoSavePath Спойлер Некоторые из перечисленных свойств срабатывают Link to comment Share on other sites More sharing options...
kpblc Posted April 17 Report Share Posted April 17 vla-get-configfile в частности не сработал. Так что надо будет каждый элемент проверять - реализовано или нет ( Link to comment Share on other sites More sharing options...
EdwardSt Posted April 17 Report Share Posted April 17 (edited) 4 часа назад, kpblc сказал: Так что надо будет каждый элемент проверять - реализовано или нет ( Нашел пока только три работающих. В части get. В части put ожидаю еще меньшей поддержки UPd. Спойлер (APPLICATION . #<VLA-OBJECT InanoCADApplication 000001B9EAF519D0>) (AUTOSAVEPATH . "") (PRINTERCONFIGPATH . "C:\\Users\\...\\AppData\\Roaming\\Nanosoft\\nanoCAD x64 23.0\\PlotConfigs") (PRINTERSTYLESHEETPATH . "G:\\FONTS\\PlotStyles;C:\\Users\\...\\AppData\\Roaming\\Nanosoft\\nanoCAD x64 23.0\\PlotStyles") (SUPPORTPATH . ";G:\\FONTS;C:\\ProgramData\\Nanosoft\\nanoCAD x64 23.0\\shx") (TEMPFILEPATH . "C:\\Users\\...\\AppData\\Local\\Temp\\") (TEMPLATEDWGPATH . "C:\\Users\\...\\AppData\\Roaming\\Nanosoft\\nanoCAD x64 23.0\\Templates") (TOOLPALETTEPATH . "C:\\Users\\...\\AppData\\Roaming\\Nanosoft\\nanoCAD x64 23.0\\Templates") На этих параметрах нана не ругается. На остальных выскакивает окошко с руганью. Причем конструкция (vlax-property-available-p params par) выдает, что параметр par доступен, но извлечь его не получается Edited April 17 by EdwardSt 3 Link to comment Share on other sites More sharing options...
kpblc Posted April 17 Report Share Posted April 17 Ну хоть где-то да работает: Команда: (vl-load-com) Команда: (setq files (vla-get-files (vla-get-preferences (vlax-get-acad-object)))) #<VLA-OBJECT InanoCADPreferencesFiles 0000025C322CD590> Команда: (vlax-dump-object files); InanoCADPreferencesFiles: Specifies the settings that affect the use of various external files. ; Значения свойств: ; AltFontFile = Ошибка. ; AltTabletMenuFile = Ошибка. ; Application (RO) = #<VLA-OBJECT InanoCADApplication 0000025C042B7AA0> ; AutoSavePath = "" ; ColorBookPath = Ошибка. ; ConfigFile (RO) = Ошибка. ; CustomDictionary = Ошибка. ; DefaultInternetURL = Ошибка. ; DriversPath = msxml3.dll: Не удается найти указанный ресурс. ; FontFileMap = Ошибка. ; HelpFilePath = Ошибка. ; LogFilePath = Ошибка. ; MainDictionary = Ошибка. ; MenuFile = Ошибка. ; PostScriptPrologFile = Ошибка. ; PrintFile = Ошибка. ; PrintSpoolExecutable = Ошибка. ; PrintSpoolerPath = Ошибка. ; PrinterConfigPath = "C:\\Users\\kpblc\\AppData\\Roaming\\Nanosoft\\nanoCAD x64 23.0\\PlotConfigs" ; PrinterDescPath = Ошибка. ; PrinterStyleSheetPath = "C:\\Users\\kpblc\\AppData\\Roaming\\Nanosoft\\nanoCAD x64 23.0\\PlotStyles" ; SupportPath = ";C:\\ProgramData\\Nanosoft\\nanoCAD x64 23.0\\shx" ; TempFilePath = "C:\\Users\\kpblc\\AppData\\Local\\Temp\\" ; TempXrefPath = Ошибка. ; TemplateDwgPath = "C:\\Users\\kpblc\\AppData\\Roaming\\Nanosoft\\nanoCAD x64 23.0\\Templates" ; TextEditor = Ошибка. ; TextureMapPath = Ошибка. ; ToolPalettePath = "C:\\Users\\kpblc\\AppData\\Roaming\\Nanosoft\\nanoCAD x64 23.0\\Templates" ; WorkspacePath = Ошибка. T Команда: (vlax-property-available-p files 'templatedwgpath) T Команда: (vlax-property-available-p files 'supportpath) T Link to comment Share on other sites More sharing options...
Megaz Posted April 17 Author Report Share Posted April 17 Спасибо, что не оставили вопрос без внимания. Я так понимаю, проблема не решаемая? Link to comment Share on other sites More sharing options...
EdwardSt Posted April 17 Report Share Posted April 17 51 минуту назад, Megaz сказал: Я так понимаю, проблема не решаемая? Во всяком случае через прямой вызов (vlax-put-proprerty не получается. Без @ISL тут не разобраться. Link to comment Share on other sites More sharing options...
doctorraz Posted April 17 Report Share Posted April 17 (edited) 1 час назад, Megaz сказал: Я так понимаю, проблема не решаемая? Дело в том, что то что не срабатывает инсталлятор ADV_Toolkit это не проблема, в конце концов всегда можно прописать и настроить все руками проблема в другом... нано не умеет файлы *.fas, ограниченно умеет dcl и cuix (напрямую автокадовские менюшки не поймет) Выход один, просить Frigate что бы адаптировал "план кабельных сетей " для НК, на что он вряд ли сможет пойти, иначе зачем он закрывал исходники в fas Edited April 17 by doctorraz Link to comment Share on other sites More sharing options...
EdwardSt Posted April 17 Report Share Posted April 17 3 минуты назад, doctorraz сказал: нано не умеет файлы *.fas, ограниченно умеет dcl и cuix (напрямую автокадовские менюшки не поймет) Выход один, просить Frigate что бы адаптировал "план кабельных сетей " для НК, на что он вряд ли сможет пойти, иначе зачем он закрывал исходники в fas Это точно сюда? Link to comment Share on other sites More sharing options...
doctorraz Posted April 17 Report Share Posted April 17 17 минут назад, EdwardSt сказал: Это точно сюда? думаю да ТС пытается загрузить в нано вот это https://forum.dwg.ru/showthread.php?t=57484&page=33 добавлено через 1 минуту мои познания в лисп скудны, но как ты интерпретируешь эту строчку??) (PRINC "\nADV_Toolkit успешно загружен и настроен.") Link to comment Share on other sites More sharing options...
EdwardSt Posted April 17 Report Share Posted April 17 40 минут назад, doctorraz сказал: , но как ты интерпретируешь эту строчку??) (PRINC "\nADV_Toolkit успешно загружен и настроен.") (PRINC "\nADV_Toolkit успешно загружен и настроен.") Это единственное, что перекликается с твоим комментом. Но вопрос поднят не об адаптации приложения, а конкретно о неработающей функции (vla-put-... ). К сожалению, она действительно не работает... И это затрагивает значительно более широкую аудиторию, чем потенциальные пользователи ADV_ToolKit на базе Нанокад Link to comment Share on other sites More sharing options...
doctorraz Posted April 17 Report Share Posted April 17 1 минуту назад, EdwardSt сказал: Но вопрос поднят не об адаптации приложения, а конкретно о неработающей функции вопрос о том, что в первом посте топа инсталлятор который сам по себе никакой пользы не имеет конечная цель загрузка и настройка приложения которое в принципе в НК не работоспособно эту мысль ТС'у я и попытался донести... и даже если бы 2 минуты назад, EdwardSt сказал: (vla-put-... ) работала, это ТС'у в данном конкретном случае никак не помогло бы, просто я немного забежал вперед.. предвосхищая следующие вопросы))) --------------------- 8 минут назад, EdwardSt сказал: это затрагивает значительно более широкую аудиторию, чем потенциальные пользователи ADV_ToolKit на базе Нанокад дык кто же спорит, давно бы уже тему Неработающие lisp функции нанокад иль чего подобное запилили вон и у Алексея мысли в этом направлении бродят В 15.03.2023 в 12:01, kpblc сказал: мелькнула мысль нарисовать некий аналог Assert из C# для проверки работы функций. Оно кому-нибудь надо или хоронить идею? Link to comment Share on other sites More sharing options...
EdwardSt Posted April 17 Report Share Posted April 17 26 минут назад, doctorraz сказал: вопрос о том, что в первом посте топа инсталлятор который сам по себе никакой пользы не имеет конечная цель загрузка и настройка приложения которое в принципе в НК не работоспособно эту мысль ТС'у я и попытался донести... Первый пост был с конкретной проблемой ( 2 сообщения об ошибке): Окошко про неподдерживаемую функцию (vl-put-...). Самая интересная часть и самая неприятная, т.к. относится ко всем пользователям функции. Решения для автора ветки предложить не удалось. Даже @kpblcрасписался в бессилии на данный момент. "Неверный тип аргумента 2D/3D point: nil" - менее интересная и ограниченно неприятная. Вызвана тем, что пытается считать/инициализировать несуществующую системную переменную WSCURRENT, отвечающую за управление рабочим пространством, которого нет в нанокаде. На мой взгляд, достаточно просто закомментить эту строку и забыть о проблеме. То, что угадали следующие вопросы автора ветки и избавили его от сизифова труда в виде попыток загрузки *.fas - файлов и файлов частичной адаптации, это, конечно, разумные советы, но это не ответ на конкретные вопросы. Если человек спросил, почему не работает механизм, это не обязательно значит, что ему нужно рассказывать про невозможность вечного двигателя. Link to comment Share on other sites More sharing options...
Megaz Posted April 17 Author Report Share Posted April 17 Спасибо большое за развернутые ответы. 1 Link to comment Share on other sites More sharing options...
doctorraz Posted April 17 Report Share Posted April 17 3 часа назад, EdwardSt сказал: То, что угадали следующие вопросы автора Мы не гадаем, Мы анализируем, если внимательно прочитать пост ТС, он не про лисп от слова совсем.. 3 часа назад, EdwardSt сказал: Если человек спросил, почему не работает механизм, это не обязательно значит, что ему нужно рассказывать про невозможность вечного двигателя. В этом конкретном случае да, ему надо программу запустить или понять, что это невозможно и не тратить свое время, а не разбираться в vla- функциях.. 4 часа назад, EdwardSt сказал: К сожалению, она действительно не работает... И это затрагивает значительно более широкую аудиторию С этого места про широкую затронутую аудиторию поподробнее, если не затруднит, можно со ссылками где кого когда затронула.. Ну и насколько я понял речь о чтении и записи путей окружения/поддержки, кои хранятся в реестре, нанолисп насколько мне известно с реестром умеет, т.е. эта конкретная задача с традиционными бубном и костылями решаема.. Если ты действительно хотел помочь человеку, а не пообсуждать чего нана не умеет Link to comment Share on other sites More sharing options...
kpblc Posted April 17 Report Share Posted April 17 Ой, не душни Попробуй любым доступным способом поменять пути шаблонов, установить "шаблон по умолчанию", путь к которому вообще где-то на серваке валяется. Ну и запретить, ессно, пользователям пытаться поменять эти настройки. Ну и в ту же степь овердофига всяких настроек (пути поддержки, пути плоттеров и далее по тексту - все, что нужно плюс-минус адекватному CAD-манагеру) Если чо, без наездов Link to comment Share on other sites More sharing options...
doctorraz Posted April 17 Report Share Posted April 17 (edited) 17 минут назад, kpblc сказал: Ой, не душни и не думал даже просто при желании все решаемо, не так легко и приятно как в оригинале, но мы жэж привычные анально импортозамещательно все тут в нано делать Спойлер меняй не хочу, и пути окружения тут жэж рядом... реверсинжиниринг называется, потому как в справке по API тож сахАра 17 минут назад, kpblc сказал: Ну и запретить, ессно, пользователям пытаться поменять эти настройки а вот тут фигушки, это в hkcu, там юзер хозяин, хотя вот решение что б юзер не отключил ---------------------- все это к тому, что тут это не там... нана делает в принципе все так жэж как оригинал, только API сахаркА разработчикам некогда подсыпать, поэтому не гетсет сисвариабле, а ручками в реестре ... читаем пишем и т.д. у тебя жэж когда то был жигуль? ну вот тут примерно то же самое...90е добавлено через 6 минут я к тому это все написал, что реализацию нужного функционала от разработчиков можно ждать годами без особого результата... а работать надо уже еще вчера поэтому включать фантазию креатив и из глины и палок лепить рабочее решение здесь и сейчас.. Edited April 17 by doctorraz Link to comment Share on other sites More sharing options...
doctorraz Posted April 17 Report Share Posted April 17 (edited) 1 час назад, kpblc сказал: пути поддержки Кстати нана боле мене научился их понимать только вот прям щас с 22 23й версии, до этого пути были, только нана сам по себе они сами по себе Ну и еще усугубляется тем что net.api не умеет лисп функции, но обещают сделать два года уже Edited April 17 by doctorraz Link to comment Share on other sites More sharing options...
EdwardSt Posted April 17 Report Share Posted April 17 2 часа назад, doctorraz сказал: Мы не гадаем, Мы анализируем, если внимательно прочитать пост ТС, он не про лисп от слова совсем.. Ваш полет фантазии превращает все, что Вы читаете в то, что Вам нравится анализировать. Вопрос был именно про лисп, хотя автор сам признался, что в этом не спец. И очевидно, что если б эти функции сработали, то следующим вопросом было бы что-то про fas-файлы. Но самая изюминка в том, что действительно выявлена неработоспособность одной из ключевых функций. Не зависящей от конкретного приложения. Почему про нее мало запросов? Потому то она нужна серьезным разработчикам, которые привыкли , уперевшись в подобную проблему, самостоятельно исследовать пределы работоспособности функции и подобрать альтернативу, т.к. вполне резонно не рассчитывают получить ответ на форуме. Единственное что остается - донести информацию о выявленной проблеме до разработчиков. А ВыВсеДоЕдиного (относится только к @doctorraz, если чо) зачастую мешаете донести эту информацию, заведомо решая, что исправлять нужно, а что нет. Link to comment Share on other sites More sharing options...
doctorraz Posted April 18 Report Share Posted April 18 (edited) 7 часов назад, EdwardSt сказал: мешаете донести эту информацию, заведомо решая, что исправлять нужно, а что нет. Дык доноси, ктожэжзапретитьтопосмеет.. В основном жалуешься, как я тебе мешаю это делать. В клубе разработчиков заводишь задачу, ссылку на эту тему... Разработчики ставят задачу в очередь.. ждешь и иногда их шебуршишь когда жэж когда, если еще ктото присоединится, то вероятность, что сделают быстрее увеличивается. ---- И напомни ка, где я написал, что чинить функции не надо? Всего лишь подсказал ТСу, что это приложение у него не взлетит, дальше все сами Edited April 18 by doctorraz 1 Link to comment Share on other sites More sharing options...
EdwardSt Posted April 18 Report Share Posted April 18 2 часа назад, doctorraz сказал: Дык доноси, ктожэжзапретитьтопосмеет.. В основном жалуешься, как я тебе мешаю это делать. Господи, какие уж тут жалобы? Правила форума не запрещают быть во всех бочках затычкой, чем ты с упоением пользуешься. Это просто констатация факта. И да, зачастую при этом замыливается проблема. Или не проблема? Я уж сам запутался... Link to comment Share on other sites More sharing options...
Recommended Posts