Как получить картинку превью?

Автор lavgirb, 14.12.24, 16:01:02

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

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

lavgirb

Добрый день!
Кажется, получить картинку-превью файла КОМПАС средствами API КОМПАС не представляется возможным.
Чтение форума показало, что вероятно, можно использовать KGAX.ocx
Но дальше
Dim oKGAX As New KGAXLib.KGAXне продвигаюсь.  :|
Может ли кто-то подсказать как на форме получить изображение-превью?
Хотя бы в общих словах.
Или где об этом можно посмотреть.
Спасибо.

Михаил88

Добрый день.

kompas_object.ksDrawKompasDocument(hwnd, file_name)

Это имеете ввиду?


lavgirb

Цитата: Михаил88 от 14.12.24, 16:19:47Добрый день.

kompas_object.ksDrawKompasDocument(hwnd, file_name)

Это имеете ввиду?

Не знаю. У меня слова слайд в присланном окне не ассоциируются с превью, изображение.

если можно получить такие изображения на форме без загрузки файла, то оно.

image.JPG


Михаил88

#3
Так работает. У меня есть библиотека kle. В filename передаю путь до детали внутри библиотеки.
Так же работает и с обычными деталями и т.д. (не из библиотеки), все делает эта одна строчка кода, которую я выслал выше. Ни чего дополнительно не загружаю.

p3452

Если не пугает использование Windows API то можно получить универсальный "ридер" привьюшек, такой же как в самой Windows:
Превьюшки файлов.png
+ Благодарностей: 1

Михаил88

Цитата: p3452 от 14.12.24, 17:21:42Если не пугает использование Windows API то можно получить универсальный "ридер" привьюшек, такой же как в самой Windows:

Я давненько искал, как чисто на python это делать, но так и не нашел.

p3452

Цитата: Михаил88 от 14.12.24, 17:25:44Я давненько искал, как чисто на python это делать, но так и не нашел.
Ну, за python не скажу, но, думаю, если погуглить "Windows Thumbnail Provider" в сочетании с "python" можно что-то найти.
+ Благодарностей: 1

Михаил88

Цитата: p3452 от 14.12.24, 17:38:23Ну, за python не скажу, но, думаю, если погуглить "Windows Thumbnail Provider" в сочетании с "python" можно что-то найти.

Спасибо за информацию, поищу, почитаю.

Михаил88

Цитата: p3452 от 14.12.24, 17:38:23Ну, за python не скажу, но, думаю, если погуглить "Windows Thumbnail Provider" в сочетании с "python" можно что-то найти.

Еще раз спасибо, все получилось. Совет рабочий.

lavgirb

Цитата: Михаил88 от 14.12.24, 17:18:44все делает эта одна строчка кода, которую я выслал выше. Ни чего дополнительно не загружаю.
Все получилось. Удобно, когда одна строчка кода. :-)))
Спасибо.  :beer:

lavgirb

Цитата: Михаил88 от 14.12.24, 16:19:47kompas_object.ksDrawKompasDocument(hwnd, file_name)
Поработал с функцией ksDrawKompasDocument
1 Слегка затянутая перерисовка на мой взгляд. Чертежи перерисовываются дольше, чем модели. Не критично.
2 Если после загрузки и отображения формы с PictureBox не сделать Refresh формы, то у меня изображение после первой вставки появляется и пропадает.
Refresh формы, после ее отображения, решает эту проблему.
3 При уже загруженной форме изображения в PictureBox появляются нормально.
4 У чертежей показывается только первый лист. В этом и плюс и минус: крупнее видно примерное содержание первого листа, но иногда и количество листов информативно)


Михаил88

Тоже были аналогичные проблемы, но были все решены. Чтобы уйти от затянутой перерисовки, выводил слайд с помощью ksDrawKompasDocument в нужное окно потом с помощью ImageGrab.grab делал скриншот и уже его выводил в окно.
Еще есть минус с отображением деталей с исполнениями, показывает слайд активного.

В некоторых программах отказался от этого метода, делаю просто сохранение детали в png и уже загружаю картинку.

lavgirb

Цитата: Михаил88 от 16.12.24, 13:34:34Еще есть минус с отображением деталей с исполнениями, показывает слайд активного.
Спасибо. Учту.
С исполнениями, вообще, отдельная песня. В том числе и при замене ссылок.


Цитата: Михаил88 от 16.12.24, 13:34:34В некоторых программах отказался от этого метода, делаю просто сохранение детали в png и уже загружаю картинку.
Этим методом пользовался для отображения превью файлов последних версий SW.
Здесь можно использовать два способа:
1 Сохранять картинку при программном сохранении файла.
2 Изредка нажимать на кнопку типа "Пересоздать все изображения". Программа переоткроет все файлы и пересохранит все картинки.
Способ 2 кажется, даже удобнее. Особенно, при коллективной работе.
Ну есть и организационные моменты: как называть, куда складывать...

У меня есть хороший, надеюсь, "превьюшник". Но для VB6. Им и пользуюсь для VB6. Не требует открытого КОМПАС.
А мне сейчас надо показывать в VB.Net.
Как его прикрутить к VB.Net быстро не соображу. не хватает знаний, а на долго не хватает времени.

Toptotal

Цитата: lavgirb от 16.12.24, 14:28:07Способ 2 кажется, даже удобнее. Особенно, при коллективной работе.
Ну есть и организационные моменты: как называть, куда складывать...
У Тотала реализованна база превьюшек  всех файлов и расширений что дают плагины. И как я понимаю по хешу он определяет какой фаил и какая привью.
База имеет сжатие и чистку от удаленных файлов. Так что вполне рабоатет такой вариант.