Предпросмотр многолистового чертежа при открытии файла

Автор snegok74, 07.12.12, 14:41:35

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

snegok74

Подскажите пожалуйста как выполнить предварительный просмотр (при открытии файла) чтоб было видно все листы и объекты из документа, как в стандартном диалоге открытия.
"pic1.jpg" - так надо
"pic2.jpg" - так выводит функция "ksDrawKompasDocument" - так не надо :)
исходник тут http://forum.ascon.ru/index.php/topic,5841.msg163713.html#msg163713

artemy

Всем привет.

Собственно, ап. Интересует тот же вопрос: как получить изображение второго листа в память?

Также, чтобы два раза не вставать, вопрос касательно вывода изображения самого чертежа на любой контрол в своей программе: можно ли как-то получать чертёж, кроме как с помощью api5 и ksDrawDocument?

Заранее спасибо за ответы.

Можно и по другому, но нужно знать, что Вы хотите сделать?

artemy

Хочу, условно говоря, получить картинку чертежа (каждого их листов) либо в экземпляр класса Bitmap; либо, например, вывести в PictureBox или на Panel. Короче говоря, получить Image. Причём желательно, чтобы была возможность вывода именно в виде чертежа (цвета линий и фона), а не самого окна Компаса, как это происходит в случае с ksDrawDocument.

Вариант с сохранением картинки в файл и последующим её открытием не подходит, хотя работает именно так, как нужно. Необходимо производить чтение непосредственно в память.

Ещё раз спасибо.


artemy

Что именно Компас реализует?

Повторюсь: есть программа (не библиотека, а совершенно отдельная - управляющая); на форме расположен условный Picturebox. Так вот в него мне нужно вывести, к примеру, изображение второго листа многолистового файла чертежа. Как мне это сделать?

Чтобы вывести должен стоять Компас. :)

artemy

Вы так шутите? Естественно, у меня установлен Компас и мои сообщения выше это подтверждают.


artemy

Так, ладно. Спасибо, мы с вами явно друг друга не поймём.

Прошу помощи у остальных участников форума. Вопросы всё те же.

Можно использовать ksDrawKompasGroup, но тут будет проблема с оформлением листа.

Slaviation

Может попробовать конвертнуть, к примеру, в png (см. ksRasterFormatParam::pages) и его давать на предпросмотр.

artemy

Спасибо, но выше я уже отметил, что такой вариант отлично работает, но не подходит.

Можете, более подробно описать, чем именно не подходит?
Есть ещё одна возможность использовать ActiveX компонент KGAX.

Slaviation

31.07.13, 07:37:19 #14 Последнее редактирование: 31.07.13, 07:58:36 от Slaviation
Еще один фокус :)
Суть в том, чтобы суметь из cdw получить frw.
Например: сохрани свой чертеж в dxf, затем открой его в КОМПАС - он сконвертится в frw.
frw отданный на вход ksDrawKompasDocument отобразится весь.
Проверил в Менеджере шаблонов, в нем используется ksDrawKompasDocument (рис.)

31.07.13, 07:43:24 #15 Последнее редактирование: 31.07.13, 10:14:27 от Sabahs
Вроде уважаемый Slaviation, дал неплохой вариант с ksRasterFormatParam, то, что хотели, как это работает http://forum.ascon.ru/index.php/topic,22913.msg158656.html#msg158656

artemy

Не подходит любой вариант работы с диском. Задача заключается в получении изображения чертежа непосредственно в память.

31.07.13, 19:22:02 #17 Последнее редактирование: 31.07.13, 20:16:50 от Sabahs
Почему, не подходит работа с диском?
ksDrawKompasGroup - не работает с диском.

artemy

Работа с диском отнимает время и ресурсы системы, к тому же запись может быть по тем или иным причинам недоступна. Так или иначе задача стоит именно так, если нет нормального решения, то придётся думать немного в другом направлении.

Отрисовка группы - не то, что мне нужно. Просто я думал, что, возможно, от моего взора где-то укрылась функция получения изображения чертежа или возможность использовать ksDrawDocument не только для первого листа. Нет, так нет.

Всем спасибо за помощь.

Есть места, куда запись всегда открыта, а по поводу ресурсов, многое зависит от железа.
Жесткий не SSD, иначе оценка была бы ещё выше.