Встраивание изображения в чертеж
Вопрос:Как можно встроить изображение в чертеж так, чтобы не было необходимости передавать отдельный от чертежа растровый файл?
Ответ:
Это можно сделать двумя способами. Метод зависит от ваших требований.
- Вставка растра как OLE-объекта
Вы можете вставить растр используя меню AutoCAD Вставка->Объект (Insert -> OLE Object). Это соотвествует созданию примитива AcDbOle2Frame, который встраивает растр в чертеж. Недостаток этого метода в невозможности программно создать AcDbOle2Frame – требуется вмешательство пользователя.
- Использование пользовательского объекта - (два варианта)
Пара AcDbRasterImageDef/AcDbRasterImage может быть создана и вставлена программно, но AcDbRasterImageDef требует внешний файл для хранения данных изображения. Чтобы избежать этого вы можете:
- Наследовать пользовательский объект от AcDbRasterImageDef, или
- Поместить данные изображения в отдельный пользовательский объект, который создает временный файл при открытии и устанавливает этот файл в качестве файла, ассоциированного с AcDbRasterImageDef.
Пример проекта в конце статьи демонстрирует второй вариант. На основе оригинального файла он помещает данные в пользовательский объект AsdkBindObject.
Когда AsdkBindImage открывается, создается временный файл – копия оригинального файла и вызывается метод setActiveFileName() класса AcDbRasterImageDef, так что этот файл и будет использоваться AcDbRasterImageDef, а не тот, который определен методом setSourceFileName.
Файл проекта: arxbindimage.zip
Источник: http://adndevblog.typepad.com/autocad/2012/10/embedding-an-image-in-a-drawing.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=469
Опубликовано 20.01.2014Отредактировано 20.01.2014 в 10:14:45