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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > NanoCAD: как гарантированно узнать папку текущего открытого файла ?

NanoCAD: как гарантированно узнать папку текущего открытого файла ?

Ответ
Поиск в этой теме
Непрочитано 21.03.2024, 10:23
NanoCAD: как гарантированно узнать папку текущего открытого файла ?
===AAA===
 
г. Норильск
Регистрация: 15.08.2005
Сообщений: 616

Всем привет!

Забавный вопрос - не правда ли?

(getvar "dwgprefix") - чем не устаивает? :-)

Не спешите.

Если запустить nanoCAD + открыть файл из *.bat-файла командой типа:

start "DREAM-START" "C:\Program Files\Nanosoft\nanoCAD x64 23.1\nCad.exe" "0-str2.dwg"

То nanoCAD запустится и файл откроется, но (getvar "dwgprefix") выдаст "0-str2.dwg".

Т.е. результат (getvar "dwgprefix") = (getvar "dwgname")

Вопрос:

а) Как можно гарантированно получить путь папки файла альтернативно, т.е. не читая "dwgprefix"

или

б) Какой строкой *.bat-файла можно запустить nanoCAD + открыть указанный файл,
чтобы в "dwgprefix" был-таки путь папки, а не имя файла.

Конечно, если путь будет в явном виде указан в строке,

start "DREAM-START" "C:\Program Files\Nanosoft\nanoCAD x64 23.1\nCad.exe" "C:\Путь\0-str2.dwg"

то этот C:\Путь\ попадёт в "dwgprefix" ... но это опять же "частный случай",
хотелось бы решения "в общем виде".

И да - в AutoCAD'е этого глюка нет.
__________________
Счастливо, Алексей!

Последний раз редактировалось ===AAA===, 21.03.2024 в 11:36.
Просмотров: 2451
 
Непрочитано 22.03.2024, 12:28
#21
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


если нет официального ТЗ и разработка ПО не являются прямыми должностными обязанностями - просто проверил бы наличие прямого и обратного слеша в имени файла и выдал предупреждение пользователю. Стоит ли столько времени тратить на нахождение путей обхода чужих косяков...
Сергей812 вне форума  
 
Автор темы   Непрочитано 22.03.2024, 12:53
#22
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Цитата:
и разработка ПО не являются прямыми должностными обязанностями
Я так отдыхаю. :-)

А ларчик-то просто открывается, оказывается. Только что нашёл:

(findfile (getvar "dwgname"))

даёт полный путь к файлу, загруженному даже таким вот своеобразным батником.
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 22.03.2024, 13:34
#23
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
findfile
вроде же только в прописанных в настройках *кад каталогах ищет
Сергей812 вне форума  
 
Непрочитано 22.03.2024, 13:55
#24
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
вроде же только в прописанных в настройках *кад каталогах ищет
автокад ищет по путям поиска
нана вдобавок ищет в текущем каталоге
не обязательно файла dwg
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 22.03.2024, 13:58
#25
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


но текущий каталог можно и из окружения получить - круг замкнулся)
Сергей812 вне форума  
 
Непрочитано 22.03.2024, 14:05
#26
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
но текущий каталог можно и из окружения получить - круг замкнулся)
Offtop:

в нанокад можно провернуть такую фигню невозможную в автокад
(все файлы лежат не по путям поиска)
загружаем первый лисп по полному пути
этот лисп может загружать другие лиспы по относительным путям относительно своего файла
из любого лиспа можно перезагрузить самого себя просто по имени файла без пути
Код:
[Выделить все]
 
(defun c:зз ()
  (load "comNana");comNana.lsp
  (princ)
) ;_enddefun



----- добавлено через ~24 мин. -----
Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
А ларчик-то просто открывается, оказывается. Только что нашёл:

(findfile (getvar "dwgname"))
главное, чтобы одноименный файл в путях поиска или C:\\Program Files\\Nanosoft\\nanoCAD x64 23.1\ не оказался)))
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 22.03.2024, 14:34
#27
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от doctorraz Посмотреть сообщение
автокад ищет по путям поиска
нана вдобавок ищет в текущем каталоге
не обязательно файла dwg
кад сначала ищет в каталоге текущего документа, потом уже лезет в каталоги поиска. Как оно в нанике - без понятия
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.03.2024, 14:46
#28
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Как оно в нанике
Наоборот очевидножэж)))
__________________
Мастерская СПДС
doctorraz вне форума  
 
Автор темы   Непрочитано 22.03.2024, 15:32
#29
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Цитата:
главное, чтобы одноименный файл в путях поиска или C:\\Program Files\\Nanosoft\\nanoCAD x64 23.1\ не оказался)))
Да я уже по-всякому его погонял... Одноимённые файлы
из разных папок открывал в разной последовательности,
разных сеансах и разных копиях запущенного нано.

Пока без сбоев - выдаёт путь именно того файла, в ком. строку
которого вводишь эту команду.

Т.е. алгоритм действий такой - читаем dwgprefix, если там этих
самых префиксов "\\" нет - лезем узнавать их из findfile.
__________________
Счастливо, Алексей!
===AAA=== вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > NanoCAD: как гарантированно узнать папку текущего открытого файла ?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для редактирования XML файла acad.cuix МишаИнженер Программирование 30 12.09.2012 11:30
Lisp. Проблема после копирование стиля несущего элемента (ADT) из файла молодой человек LISP 1 02.05.2011 22:56
Как реализовать "подгрузку/вставку" файла в нужное место открытого чертежа? star282 AutoCAD 10 18.03.2011 21:12
Как присоединить к одному чертежу (из 1ого файла) кусок продолжение (из 2ого)? star282 AutoCAD 13 17.03.2011 12:13
Частичное открытие файла - не активно при открытии файла ADik AutoCAD 4 22.06.2006 07:35