Тема: Как определить имя DWG файла, в котором запущено ARX приложение?
Как определить имя открытого DWG файла, в котором запущено ARX приложение?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → ObjectARX → Как определить имя DWG файла, в котором запущено ARX приложение?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как определить имя открытого DWG файла, в котором запущено ARX приложение?
(getvar "dwgname")
> Александр Ривилис
Спасиб, на самом деле дурацкий вопрос :)
Просто что-тонигде не увидел необходимой информации...
> Александр Ривилис
Александр,
А как использовать данную команду?
В ObjectARX Я такой функции не нашёл.
Да и компилятор на неё ругается...
Может я конечно чего-то недопонимаю...
Если не сложно кинь ссылку на то как использовать эти переменные...
В help по ObjectARX2006 я этого не нашёл
> Pharaon
Попробуйте поискать по имени функции
acedGetVar ().
> Pharaon
Вот что бывает, когда начинаешь программировать в ObjectARX не зная основ AutoCAD.
> AY
Абсолютно верно!
Ну а проще всего пожалуй так:
AcDbDatabase *DB; char *FName; DB = acdbHostApplicationServices()->workingDatabase(); DB->getFilename(FName); acutPrintf(FName);
Короче сколько людей столько и мнений.
> Debalance
Такой вариант мне даже больше нравится
> Debalance
> Pharaon
Ну тогда еще парочку вариантов:
char *Fname = acDocManagerPtr()->curDocument()->fileName();
или
char *Fname = acDocManagerPtr()->mdiActiveDocument()->fileName();
> Александр Ривилис
Даже можно сразу через AcApDocument минуя AcApDocumentManager:
CString str1 = curDoc()->fileName();
или даже:
CString str1 = curDoc()->docTitle();
что согласитесь несколько короче...
> Debalance
1) docTitle() я бы не стал рекомендовать, т.к. заголовок окна можно изменить и оно не будет соотвествовать имени DWG-файла.
2) curDoc() и acDocManagerPtr()->curDocument() - это эквиваленты (см. ACDOCMAN.H). Т.е. и она не минует AcApDocumentManage. Но запись curDoc() конечно короче - соглашаюсь.
> Александр Ривилис
1) Это всего-лишь вариант...
2) Склоняю шляпу:
inline AcApDocument* curDoc() { return acDocManager->curDocument(); }
> Debalance
Если уж пошла такая песня, то и для acdbHostApplicationServices()->workingDatabase() есть короткий эквивалент: acdbCurDwg() (см. migrtion.h)
Не могу успокоиться... Еще один вариант имени текущего чертежа, но уже используя MFC через CDocument:
CString str2 = curDoc()->cDoc()->GetPathName();
Спросите "а зачем?". Ответ: "а так...":)))))
> Debalance
> Александр Ривилис
Во спасиб.
Осталось только это всё куда-нить в инциклопедию записать...
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → ObjectARX → Как определить имя DWG файла, в котором запущено ARX приложение?
Форум работает на PunBB, при поддержке Informer Technologies, Inc