| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Адаптация древних lisp-приложений под AutoCad 2016

Адаптация древних lisp-приложений под AutoCad 2016

Ответ
Поиск в этой теме
Непрочитано 26.01.2016, 14:26 #1
Адаптация древних lisp-приложений под AutoCad 2016
trushev
 
Регистрация: 12.01.2015
Сообщений: 261

Суть вопроса: как в AutoCad 2016 обойти отсутствие в путях поиска по умолчанию текущего каталога?

Наименование темы схоже с закрытой: Адаптация lisp-приложения под AutoCAD 2010 от 18.08.2010.
Ничего иного не нашел.

Есть около сотни lisp программ (расчетных и параметрического вычерчивания) с одинаковыми именами файлов поддержки и с системой пуска изначально примененной под R12:
"...\acad.exe" "...\*.dwg" /b "...\*.scr" /nologo, где "...\acad.exe" - запуск AutoCad с загрузкой "...\*.dwg" - файла прототипа и /b "...\*.scr" -пакета, запускающего lisp; /nologo - без заставки AutoCad.

Такой пуск позволяет работать с файлом, где уже установлена значительная часть настроек (системные переменные, слои, шрифты, типы линий, необходимые блоки и тп). Каталог с файлом прототипа является текущим, и при размещении в нем вспомогательных файлов снимался вопрос поиска файлов поддержки для версий от R12 по AutoCad 2015.
Пример программы: http://forum.dwg.ru/showthread.php?t=125737

Возможные пути решения проблемы:
1. Указать в путях поиска файлов поддержки каталог с программой.
Приемлемо только для одной программы. Имена файлов поддержки разных программ совпадают и, при указании нескольких путей, нет ни какой гарантии что загрузятся нужные файлы.

2. В программах прописать полные имена файлов поддержки.
Существенный объем переработки.
Каждая программа будет жестко привязана к своему каталогу.

3. Указать в путях поиска файлов поддержки каталоги с программами, файлам поддержки дать уникальные имена.
Существенный объем переработки.

4. Как еще можно решить проблему?
Просмотров: 15037
 
Непрочитано 26.01.2016, 16:14
#2
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от trushev Посмотреть сообщение
4. Как еще можно решить проблему?
Так и хочется отправить в тему "Поиск исполнителей"
По ссылке сходил, глянул.
Хорошо gomer сказал
Цитата:
Сообщение от gomer Посмотреть сообщение
Программка - действительно хлам, точнее ее оформление... можно было бы хотя бы команду нарисовать, а то запускать загрузкой лиспа... это так архаично...
ИМХО. Тут надо просто превратить набор ЛИСП"ов в удобоваримую программку.
P.S. Сам взяться не могу, отбываю в отпуск.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 26.01.2016, 16:49
#3
trushev


 
Регистрация: 12.01.2015
Сообщений: 261


Цитата:
Сообщение от Alan Посмотреть сообщение
Сам взяться
Не благодарный это труд. Не в этом вопрос. Фирма переходит на AutoCad 2016 и возникают проблемы с многолетними наработками.
Повторюсь с главным вопросом: как в AutoCad 2016 обойти отсутствие в путях поиска по умолчанию текущего каталога?
Впрочем на мой век хватит. На горизонте завершение трудовой деятельности, а больше эти наработки никому не нужны.
trushev вне форума  
 
Непрочитано 26.01.2016, 17:46
#4
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Прочитал, но до конца так и не понял. Что значит текущий каталог? Папка, в которой находится открываемый чертеж? Что нужно загружать? Сперва я подумал, что речь идет о лиспах, но потом увидел, что имеются в виду какие-то "файлы поддержки". Что такое "файл прототипа"?
В общем, нужны пояснения. Видео, картинки или очень подробное описание в наиболее общепринятой терминологии.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 26.01.2016, 18:00
#5
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от trushev Посмотреть сообщение
как в AutoCad 2016 обойти отсутствие в путях поиска по умолчанию текущего каталога?
IMHO. Нельзя
А что мешает добавить необходимый каталог в пути поиска и сохранить в профиле? Профиль - ключевое слово!
Всё равно используется "уникальный", т.е. самодельный ярлык.

Что есть в твоём/вашем понимании текущий каталог?
Каталог с открытым чертежом/файлом Автокада или папка/каталог окна свойств ярлыка программы?
Смотрим ХЕЛП
Цитата:
Путь поиска библиотек
Поиск вспомогательных файлов осуществляется в соответствии с установленным путем поиска библиотек, т.е. в следующем порядке:

Текущая папка. Как правило, она задается в поле “Рабочий каталог” окна свойств ярлыка программы.
Папка, в которой находится текущий файл чертежа.
Папки, перечисленные при задании пути доступа в команде НАСТРОЙКА. (См. раздел Укажите "Пути поиска" и "Местоположения файлов" в Руководстве пользователя.)
Папка, в которой находятся программные файлы AutoCAD.
В зависимости от установок среды, имена двух или более папок из приведенной последовательности могут совпадать.

Если файл не находится ни в одной из папок, просматриваемых при поиске, необходимо задавать его полное имя (включая путь), чтобы AutoCAD мог найти его.
.................
Структура папок

AutoCAD использует иерархическую структуру папок. Рекомендуется хранить дополнительные файлы (например, приложения на языке AutoLISP и файлы настройки) отдельно от программных и вспомогательных файлов AutoCAD. Это упрощает разрешение возможных конфликтов и дает возможность обновлять версии приложений, не воздействуя на другие приложения.
Чтобы там не говорили в ХЕЛПЕ, главное - Путь к тому что ты ищешь д.б. описан!
Ну и запуск программы решается более простым способом, а не vd.scr
Каким образом?
Это следующая проблема, обычно решаемая при переводе ЛИСП-текстов в ЛИСП-программку.
Описано в литературе и обсуждалось неоднократно.
ИМХО Не правильно открывать файл "C:\LSP_WIN\GIDROLOG.IYA\VODOPROPUSK\vd.dwg", начинать работу надо с чертежа-прототипа,
например, так в комстроке запуска /t "C:\LSP_WIN\GIDROLOG.IYA\VODOPROPUSK\vd.dwT"
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...

Последний раз редактировалось Alan, 26.01.2016 в 19:06.
Alan вне форума  
 
Непрочитано 26.01.2016, 18:19
#6
Владимир_М


 
Регистрация: 05.11.2015
Сообщений: 585


Цитата:
Сообщение от trushev Посмотреть сообщение
Не благодарный это труд. Не в этом вопрос. Фирма переходит на AutoCad 2016 и возникают проблемы с многолетними наработками.
Повторюсь с главным вопросом: как в AutoCad 2016 обойти отсутствие в путях поиска по умолчанию текущего каталога?
И повторно, все так же непонятен главный вопрос. Ну и добавить этот путь в настройках акада. Или я совсем- совсем не понял вопрос.

Цитата:
Сообщение от trushev Посмотреть сообщение
На горизонте завершение трудовой деятельности, а больше эти наработки никому не нужны
А вот торопиться не надо на счет "не нужны"...
Если Вам они были нужны, то найдется и другие, кому они необходимы, Вы ж не единственный в стране специалист в данной области!
И вообще, мне кажется, самое плодотворное время будет как раз на пенсии!!! Это сейчас ни на что не хватает времени!


Извините, пока собирался с мыслями, Alan уже все прописал более развернуто

Последний раз редактировалось Владимир_М, 26.01.2016 в 18:27.
Владимир_М вне форума  
 
Непрочитано 26.01.2016, 19:59
#7
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Возможно, "текущий каталог" - это рабочая папка в свойствах ярлыка. Например, для AutoCAD 2014 это
"C:\Program Files\Autodesk\AutoCAD 2014\UserDataCache\"
Profan вне форума  
 
Непрочитано 26.01.2016, 22:23
#8
Psyakrev


 
Регистрация: 17.06.2010
Сообщений: 438


Цитата:
Сообщение от trushev Посмотреть сообщение
2. В программах прописать полные имена файлов поддержки.
Существенный объем переработки.
Каждая программа будет жестко привязана к своему каталогу.
У вас уже и так есть жесткая привязка к конкретной папки в ярлыке, так что серьезной переработки не избежать.

Как вариант можно прописать в пути поддержки "C:\\LSP_WIN", в scr и lsp изменить во все load добавить относительный путь до нужного файла.

Код:
[Выделить все]
 
(setq dlg (load_dialog "GIDROLOG.IYA\\VODOPROPUSK\\vd.dcl"))
По крайней мере, файлы переименовывать не придется и какая-никакая гибкость. Наименее затратный вариант, на мой взгляд.
Psyakrev вне форума  
 
Непрочитано 26.01.2016, 23:06
#9
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от trushev Посмотреть сообщение
1. Указать в путях поиска файлов поддержки каталог с программой.
Приемлемо только для одной программы. Имена файлов поддержки разных программ совпадают и, при указании нескольких путей, нет ни какой гарантии что загрузятся нужные файлы.
программно добавлять к supportpaths каталог с программой при старте и удалять по завершении Add & Remove Support File Search Paths
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 27.01.2016, 10:58
#10
trushev


 
Регистрация: 12.01.2015
Сообщений: 261


Спасибо всем за проявленное внимание и терпение.
Offtop: Моя терминология оставляет желать лучшего. Программировать начал не от хорошей жизни в лихие 90-е, когда квалифицированного программиста было практически не сыскать, а молодежь переквалифицировалась в челноков.

Цитата:
Сообщение от Do$ Посмотреть сообщение
Что значит текущий каталог?
Папка, в которой находится текущий файл чертежа. В ранних версиях AutoCad'а "Рабочий каталог" не задавался.
Прототип - устаревший термин, заменен на шаблон.

Цитата:
Сообщение от Alan Посмотреть сообщение
ИМХО Не правильно открывать файл "C:\LSP_WIN\GIDROLOG.IYA\VODOPROPUSK\vd.dwg", начинать работу надо с чертежа-прототипа,
например, так в комстроке запуска /t "C:\LSP_WIN\GIDROLOG.IYA\VODOPROPUSK\vd.dwT"
Пока петух не клевал острой потребности в замене не было. Но спасибо, совсем упустил это из виду.

Цитата:
Сообщение от VVA Посмотреть сообщение
программно добавлять к supportpaths каталог с программой при старте и удалять по завершении
Вроде то что нужно. Надо попробовать. Кажется нечто подобное обсуждалось на форуме, не могу найти тему.

Offtop: PS Alan, Хорошего отдыха!
trushev вне форума  
 
Непрочитано 27.01.2016, 13:26
#11
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от trushev Посмотреть сообщение
Спасибо всем за проявленное внимание и терпение.
Пжл...
Один вопрос вдогонку.
Данная программа нужна для ЕДИНИЧНОГО расчёта в каком-то разовом чертеже или может применяться в разных чертежах?
Тогда меняется подход к запуску и завершению её работы.
Зачем например по кнопке ВЫХОД закрывать Автокад?
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 27.01.2016, 14:02
#12
trushev


 
Регистрация: 12.01.2015
Сообщений: 261


Цитата:
Сообщение от Alan Посмотреть сообщение
Данная программа нужна для ЕДИНИЧНОГО расчёта в каком-то разовом чертеже или может применяться в разных чертежах?
Это фрагмент из программы параметрического вычерчивания профиля водоотвода. Предназначен для обоснования в записке глубины элементов водоотвода и примененного типа укрепления.
Результат работы программы вычерчивания во вложении.
Вложения
Тип файла: dwg
DWG 2007
vodt2-46+53.dwg (126.3 Кб, 903 просмотров)
trushev вне форума  
 
Непрочитано 27.01.2016, 15:14
#13
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от trushev Посмотреть сообщение
Это фрагмент из программы параметрического вычерчивания профиля водоотвода.
Зачем ТОГДА по кнопке ВЫХОД закрывать Автокад?
ИМХО. Самое правильное и простое решение всё-таки создать профиль с путями и запускать Автокад с этим профилем.
Вот пример инсталляции и запуска известно программы, в адаптации которой я тоже принимал посильное участие
Цитата:
Программа ПРОКАТ черчения сортамента
Двутавры, швеллеры, уголки
с выбором профиля из диалогового окна.
Работает под Автокадом 2000-2006,
английская или русская версии.
procat.lsp - для плоского чертежа
prcat3d.lsp - для объёмного изображения профилей
Автор: Кондрат Василий. (С)2000г.
------------------------------------------------------------------------------------
Инсталяция (версия 2007г.):
Папка Prokat с файлами копируется в любую папку,
описанную в "Путях доступа к вспомогательным файлам" Автокада,
например Support Автокада. Тогда это будет выглядеть так:
"d:\Program Files\AutoCAD 2005\Support\prokat\"
P.S. Папка должна быть именно под таким именем. Желающим адаптировать
ПРОКАТ под себя рекомендуется посмотреть исходные тексты
(файлы: procat.lsp prkt3d.lsp)
------------------------------------------------------------------------------------
Загрузка и пуск программы
В Автокаде необходимо выполнить следующие действия:
1. Сервис-Приложения-Найти и Загрузить: procat.lsp или prcat3d.lsp
2. Набрать в командной строке: prokat или prkt3d, соответственно
для плоского или объёмного изображения профилей
P.S. Можно создать кнопку с макросом, например, такую:
(if (= PROKAT nil) ( Load (findfile "prokat/prokat.lsp"))) PROKAT
(if (= PRKT3D nil) ( Load (findfile "prokat/prcat3d.lsp"))) PRKT3D
"И не надо лохматить бабушку!" (с)Задорнов
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...

Последний раз редактировалось Alan, 27.01.2016 в 15:26.
Alan вне форума  
 
Непрочитано 27.01.2016, 15:17
#14
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Offtop:
Цитата:
Сообщение от Alan Посмотреть сообщение
"И не надо лохматить бабушку!" (с)М.Жванецкий
А не Задорнов?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.01.2016, 15:25
#15
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Offtop:
А не Задорнов?
Обидел классика... Да, Задорнов
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 27.01.2016, 15:41
#16
trushev


 
Регистрация: 12.01.2015
Сообщений: 261


Каюсь. В данном случае автокад используется через одно место. Он нужен только для работы lisp'а. При двухмониторной системе после заполнения таблицы на соседнем мониторе потребность в программе отпадает.
PS
Цитата:
Сообщение от Alan Посмотреть сообщение
например Support Автокада
Если есть допуск к системным папкам автокада.

----- добавлено через ~46 мин. -----
PS PS Наверное я не достаточно точно высказался: Это фрагмент оформленный в самостоятельную программу.

Последний раз редактировалось trushev, 27.01.2016 в 15:54.
trushev вне форума  
 
Непрочитано 27.01.2016, 17:22
#17
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Что значит "если есть доступ к системным папкам"?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.01.2016, 08:35
#18
trushev


 
Регистрация: 12.01.2015
Сообщений: 261


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Что значит "если есть доступ к системным папкам"?
Правом на внесение изменений может обладать только сисадмин.
trushev вне форума  
 
Непрочитано 28.01.2016, 08:56
#19
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Правом на изменение чего? Папок (точнее, их содержимого)? Или их перечня?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.01.2016, 09:08
#20
trushev


 
Регистрация: 12.01.2015
Сообщений: 261


Кулик Алексей aka kpblc, Содержимого папок. Приходилось сталкиваться с этим явлением, когда без помощи админа невозможно ни удалить ни добавить файл в папке.
trushev вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Адаптация древних lisp-приложений под AutoCad 2016

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В AutoCAD 2016 некорректно открываются файлы, созданные в AutoCAD 2014 Nadija_arh AutoCAD 4 11.01.2016 22:09
Как добавить префикс к однострочному тексту в AutoCAD 2016 andrey_artphoto AutoCAD 5 27.05.2015 17:11