Тема: Как определить имя DWG файла, в котором запущено ARX приложение?

Как определить имя открытого DWG файла, в котором запущено ARX приложение?

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

(getvar "dwgname")

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

> Александр Ривилис
Спасиб, на самом деле дурацкий вопрос :)
Просто что-тонигде не увидел необходимой информации...

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

> Александр Ривилис
Александр,
А как использовать данную команду?
В ObjectARX Я такой функции не нашёл.
Да и компилятор на неё ругается...

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

Может я конечно чего-то недопонимаю...
Если не сложно кинь ссылку на то как использовать эти переменные...
В help по ObjectARX2006 я этого не нашёл

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

> Pharaon
Попробуйте поискать по имени функции
acedGetVar ().

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

> Pharaon
Вот что бывает, когда начинаешь программировать в ObjectARX не зная основ AutoCAD. wink

> AY
Абсолютно верно! smile

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

Ну а проще всего пожалуй так:

    AcDbDatabase *DB;
    char *FName;
    DB = acdbHostApplicationServices()->workingDatabase();
    DB->getFilename(FName);
    acutPrintf(FName);

Короче сколько людей столько и мнений.

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

> Debalance
Такой вариант мне даже больше нравится

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

> Debalance

> Pharaon
Ну тогда еще парочку вариантов:

char *Fname = acDocManagerPtr()->curDocument()->fileName();

или

char *Fname = acDocManagerPtr()->mdiActiveDocument()->fileName();

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

> Александр Ривилис
Даже можно сразу через AcApDocument минуя AcApDocumentManager:

    CString str1 = curDoc()->fileName();

или даже:

    CString str1 = curDoc()->docTitle();

что согласитесь несколько короче...

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

> Debalance
1) docTitle() я бы не стал рекомендовать, т.к. заголовок окна можно изменить и оно не будет соотвествовать имени DWG-файла.
2) curDoc() и acDocManagerPtr()->curDocument() - это эквиваленты (см. ACDOCMAN.H). Т.е. и она не минует AcApDocumentManage. Но запись curDoc() конечно короче - соглашаюсь.

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

> Александр Ривилис
1) Это всего-лишь вариант...
2) Склоняю шляпу:

inline AcApDocument* curDoc() { return acDocManager->curDocument(); }

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

> Debalance
Если уж пошла такая песня, то и для acdbHostApplicationServices()->workingDatabase() есть короткий эквивалент: acdbCurDwg() (см. migrtion.h)

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

Не могу успокоиться... Еще один вариант имени текущего чертежа, но уже используя MFC через CDocument:

CString str2 = curDoc()->cDoc()->GetPathName();

Спросите "а зачем?". Ответ: "а так...":)))))

Re: Как определить имя DWG файла, в котором запущено ARX приложение?

> Debalance

> Александр Ривилис
Во спасиб.
Осталось только это всё куда-нить в инциклопедию записать...