Сообщество программистов Autodesk в СНГ

ADN Club => ObjectARX => Тема начата: LegaCAD от 12-12-2016, 17:17:13

Название: Поменять путь для pdf как правильно?
Отправлено: LegaCAD от 12-12-2016, 17:17:13
При загрузке dwg нужно проверить конкретную pdf-подложку и, если необходимо, изменить имя файла для нее.
Пробую это делать в dwgFileOpened. Все бы хорошо, но при выполнении pPdf->setSourceFileName(...) Автокад сначала ищет по диску предыдущий файл.
Есть более правильный вариант для такой операции?
И еще, (пока не встречалось, но пользователи же изобретательные. :) )  Как правильно сделать то же самое, если dwg включен как xref в другой dwg?
Название: Re: Поменять путь для pdf как правильно?
Отправлено: Александр Ривилис от 12-12-2016, 19:13:04
Все бы хорошо, но при выполнении pPdf->setSourceFileName(...) Автокад сначала ищет по диску предыдущий файл.
В смысле ищет в ReadDwgFile?
Название: Re: Поменять путь для pdf как правильно?
Отправлено: LegaCAD от 12-12-2016, 19:37:18
Все бы хорошо, но при выполнении pPdf->setSourceFileName(...) Автокад сначала ищет по диску предыдущий файл.
В смысле ищет в ReadDwgFile?
Нет, ищет в момент выполнения setSourceFileName. До вызова этой функции обращений к pdf-файлу еще не производилось. Смотрю в ProcessMonitor.
Название: Re: Поменять путь для pdf как правильно?
Отправлено: Александр Ривилис от 12-12-2016, 19:51:19
Ну в любом случае изменить имя файла ты можешь только этим методом. А управлять тем, что "Автокад сначала ищет по диску предыдущий файл" ты не можешь.
Кстати, ты задаёшь абсолютный путь?
Название: Re: Поменять путь для pdf как правильно?
Отправлено: LegaCAD от 12-12-2016, 20:09:11
Ну в любом случае изменить имя файла ты можешь только этим методом. А управлять тем, что "Автокад сначала ищет по диску предыдущий файл" ты не можешь.
Жаль, особенно если в dwg попадется абсолютный путь.

Кстати, ты задаёшь абсолютный путь?
Относительный. И в dwg обычно относительный, но случаи разные бывают...

Может можно mapFile или findFile задействовать?
Название: Re: Поменять путь для pdf как правильно?
Отправлено: Александр Ривилис от 12-12-2016, 20:14:16
Может можно mapFile или findFile задействовать?
Теоретически можно. А практически есть большая вероятность сделать AutoCAD неработоспособным. Это же тебе нужно делать свой класс AcDbHostApplicationServices, переопределять большинство его методов, в том числе и findFile.