Dove risiedono le immagine dei preview controllati dai thumbs.db?

saracf

Utente Standard
Professione: disegno
Software: Swx15 standard sp5
Regione: Italia
#1
Buona giornata a tutti voi ,
in ufficio stiamo cercando un sistema per visualizzare le immagini delle parti e degli assiemi di solidworks anche nel nostro gestionale .

Per fare ciò ci viene richiesto la preparazione delle immagini relative , avendo notato che solidworks o windows7 preparano già queste immagini , memorizzandole da qualche parte e che rpobabilmente vengono gestite o contenute da file thumbs.db , ci chiedavamo se si potessero sfruttare per il nostro scopo.

Avete mai usato quelle immagini per altri scopi ? Sapreste dirci dove si trovano , se si possono usare e come e che formato hanno ?
 

Allegati

Onda

Moderatore
Staff Forum
Professione: Ingegnere Meccanico settore Navale
Software: SolidWorks 2015, Rhino v5, Autocad 2008, Patran 2014, Nastran 2014
Regione: Italia
#2
Che io sappia le immagini di una singola parte vengono salvate all'interno della parte stessa.
in effetti un file di solidworks è una cartella zippata (apribile con un programma zip come 7Zip) al cui interno si trovano tanti files differenti, tra cui l'immagine di preview. Non credo che vengano salvate da altre parti, ma potrei sbagliarmi
 
Professione: Ingegnere
Software: Alcuni, ma non tutti
Regione: Campania
#3
tratto da: http://en.wikipedia.org/wiki/Windows_thumbnail_cache

Thumbs.db files are stored in each directory that contains thumbnails on Windows systems. The file is created locally among the images, however, preventing system wide use of the data and creating additional data load on removable devices.[3] Windows XP Media Center Edition also creates ehthumbs.db which holds previews of video files. Each thumbnail created in a directory is represented in this database file as a small JPEG file, regardless of the file's original format. The images are resized to 96×96 pixels by default or a proportional miniature of their original shape for non-square images, with 96 pixels on the longer side. The size can be controlled by a setting on Windows Registry. Each folder with initiated thumbnail views (that is where they have displayed a Thumbnails or Filmstrip view in Windows Explorer) will have a Thumbs.db file. Folders with pictures also display previews on their icon when displayed in Thumbnail mode – the first four images in the folder at 40×40 pixels (or proportionally shaped), with a 1-pixel divider overlaid on a standard large folder icon. The Thumbs.db file is stored in OLE Compound Document format, the same format that many Microsoft Office products use.
tradotto:
Sui sistemi Windows i file thumbs.sb sono memorizzati in ciascuna directory che contenga miniature.[cut]
Windows XP Media Center Edition crea anche files ehthumbs.db che contengono i preview dei file video. Ciascuna miniatura creata in una directory è rappresentata in questo database come un piccolo file jpg, a prescindere dal formato originale del file. Le immagini sono ridimensionato di default a 96x96 pixel, oppure in modo proporzionale alle dimensioni originali per immagini non quadrate, con 96 pixel sul lato lungo. La dimensione può essere modificata sul Registry di Windows.[cut]
Quindi il file contiene le miniature.
 

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#4
Non so se SWX segue questa logica: infatti lo scrolling di una cartella contentente file jpg o di solid edge o di openoffice o qualunque altra cosa e' veloce, mentre invece per le cartelle piene di file di solidworks ci vuole una vita, probabilmente il Syst Op deve scompattare al volo tutti i file per andare a vedere questa preview...

Nell'immagine allegata, si vede cosa contiene un file SLDPRT una volta scompattato: il file previewPNG, una volta rinominato in PreviewPNG.png puo' essere aperto con paint ed effettivamente contiene l'anteprima della parte.
 

Allegati

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#6
Salve a tutti,
riporto le mie esperienze fatte con le Preview di Solidworks.
Ho negli anni cercato di cambiare soluzione ma secondo il mio punto di vista le soluzioni più effiaci sono due, essendo che comunque sia, l'immagine che ci serve non è messa a disposizione come file fisico, ma bisogna ricavarsela.

Prima soluzione:
Solidworks mette a disposizione le sue Api per poterla estrarre, senza dover aprire il file con l'intefaccia, e senza avre Solidworks installato nel proprio pc.
Queste Api sono le SwDocument dove al suo interno si trova la chiamata
GetPreviewPNGBitmap
che ritorna l'immagine della preview della configurazione interessata.
Questo Api sono in effetti quelle utilizzate da SwExplorer per farci vedere le preview dei file, le proprietà personalizzate, i link e le dipendenze dei singoli file di Solidworks.

Seconda soluzione:
Utilizzare le Windows API Code Pack 1.1 e il comando Shell per farla recuperare direttamente a Windows.
E' quello che vediamo in windows Explore nel'angola in basso a sinistra, e a destra in grande se attiviamo l'anteprima.
Questo soluzione in realta estrae le anteprime anche di altri file, come pdf, txt, Word, Excel ecc.
Molto potente perchè non legata alla versione di Solidworks, ma ha bisogno di Solidworks installato nel pc, e inoltre ha il limite di vedere la preview dell'ultima configurazione salvata.
Spero vi possa essere di aiuto, anche se per fare questo cè bisogno di esperienza in programmazione Dotnet, ma credo che chi vi segua nel gestionale non abbia problemi.
Buona giornata
 

saracf

Utente Standard
Professione: disegno
Software: Swx15 standard sp5
Regione: Italia
#7
Tutto molto interessante, non sapevo che ci fosse così tanto materiale contenuto in un singolo file di SW.
Interessante anche il discorso API, lo suggerirò a chi segue il gestionale anche se al momento avevamo ipotizzato di chiedere una esportazione batch tramite PDM: siamo in attesa di fattibilità e costi.

Un grazie a tutti voi.
 

weldox

Utente Junior
Professione: Disegnatore
Software: Solidworks
Regione: Lombardia
#8
Salve a tutti,
riporto le mie esperienze fatte con le Preview di Solidworks.
Ho negli anni cercato di cambiare soluzione ma secondo il mio punto di vista le soluzioni più effiaci sono due, essendo che comunque sia, l'immagine che ci serve non è messa a disposizione come file fisico, ma bisogna ricavarsela.

Prima soluzione:
Solidworks mette a disposizione le sue Api per poterla estrarre, senza dover aprire il file con l'intefaccia, e senza avre Solidworks installato nel proprio pc.
Queste Api sono le SwDocument dove al suo interno si trova la chiamata
GetPreviewPNGBitmap
che ritorna l'immagine della preview della configurazione interessata.
Questo Api sono in effetti quelle utilizzate da SwExplorer per farci vedere le preview dei file, le proprietà personalizzate, i link e le dipendenze dei singoli file di Solidworks.

Seconda soluzione:
Utilizzare le Windows API Code Pack 1.1 e il comando Shell per farla recuperare direttamente a Windows.
E' quello che vediamo in windows Explore nel'angola in basso a sinistra, e a destra in grande se attiviamo l'anteprima.
Questo soluzione in realta estrae le anteprime anche di altri file, come pdf, txt, Word, Excel ecc.
Molto potente perchè non legata alla versione di Solidworks, ma ha bisogno di Solidworks installato nel pc, e inoltre ha il limite di vedere la preview dell'ultima configurazione salvata.
Spero vi possa essere di aiuto, anche se per fare questo cè bisogno di esperienza in programmazione Dotnet, ma credo che chi vi segua nel gestionale non abbia problemi.
Buona giornata
x jenuary,

Non hai per caso un esempio di codice per ottenere la preview con il primo metodo da te indicato?
ho provato ad arrangiarmi ma mi perdo un po' con i riferimenti da abilitare e con il codice..
Grazie mille!

PS: Mi scuso con tutti se riesumo questa discussione ma ho la necessità di stampare delle preview dei file di solidworks su un report di access.
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#9
Ciao Weldox,

per l'esempio nessun problema, se ti serve ti sviluppo qualcosa.
Volevo capire bene cosa ti serve:
- ti serve una macro di Solidworks che estragga la preview dal file attualmente aperto e la salva dentro ad un certo percorso, poi tu ne fai quello che vuoi?
- ti serve una macro che da dentro Excel o Word che apre il file in Solidworks e la salva da qualche parte?
- ti serve un programmino.exe che salva l'immagine senza dover aprile il file in SolidWorks da utilizzare poi come meglio credi? Il programmino che lanci direttamente da dentro Acces, ti salva l'immagine dove decidi e poi la riutilizzi, oppure la stampi?

Dallo scopo finale si prendono strade diverse per poterla ottenere.

Fammi sapere

Ciao

Jenuary
 

weldox

Utente Junior
Professione: Disegnatore
Software: Solidworks
Regione: Lombardia
#10
Grazie jenuary per la risposta e per la grande disponibilità!

Ti spiego, ho un gestionale fatto in access 2007 ed ho solidworks installato solo su una macchina.
Ogni commessa fa riferimento ad un assieme.
Ho creato un report dove sono elencate le parti che compongono questo assieme e che fanno riferimento alla relativa parte solidworks (c'è un campo in cui salvo il collegamento ipertestuale al file).
Questo report lo utilizzo per prelevare i pezzi in magazzino.
Volevo includere nel report anche le anteprime delle varie parti di solidworks in modo che il prelievo venga facilitato.

Quindi stavo cercando il modo per visualizzare nei report e nelle maschere l'immagine dell'anteprima delle parti.
Io di solito lavoro con vba, di macro sono un po' acerbo.

In realtà avrei anche un'altra necessità relativamente all'interfacciamento fra access e solidworks, però è fuori dall'argomento di questa discussione.
Quindi eventualmente ne aprirò un'altra o ti chiederò in privato se non ti disturbo.

Grazie ancora!
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#11
Ciao,
ho creato un file eseguibile che estrae la preview da un file Solidworks e la salva nello stesso percorso dell'eseguibile, in formato PNG.
L'immagine viene estratta senza dover aprire il file in Solidworks e senza dover avere installato Solidworks nel computer.
Ricordiamoci che Windows Explorer non riesce a farti vedere la preview se il programma (nel nostro caso SolidWorks) non è installato, quindi dobbiamo utilizzare uno strumento messo a disposizione da SolidWorks stesso (DocumentManager) per poterla estrarre senza dover avere installato Solidworks nel pc.
Per poter fare questo dobbiamo avere una licenza gratuita rilasciata da parte della casa stessa, che vi può essere spedita mediante una semplice email da parte della SolidWorks, che non può essere divulgata e per questo motivo non posso postare le sorgenti complete.
Il programmino è fatto in Visual Studio 2010, e per aiutarvi ho postato anche un video per vedere come funziona.

Come noterete il programmino pesca il percorso del file a cui vogliamo estrarre la preview dal file di testo, cambiando il percorso e rilanciando l'eseguibile l'immagine PNG viene sovrascritta con quella nuova.

Nel caso di Weldox io farei una macro dentro Acces che cambia il percorso dentro al file di testo e successivamente lancia il file eseguibile.

Fatto questo utilizzo la preview come vi serve.

Riporto qui sotto la parte di codice in Vba per cambiare il percorso nel file di testo e lanciare il programmino:


Open "x:\xxx\File.txt" For Output As #1
Print #1, "C:\prova.sldprt"
Close #1

Shell "x:\GetPreview\GetPreview.exe", vbNormalFocus


Ciao
Jenuary
 

Allegati

weldox

Utente Junior
Professione: Disegnatore
Software: Solidworks
Regione: Lombardia
#13
Ho un problemino con il tuo eseguibile.
Per quanto riguarda le parti va benissimo, per quanto riguarda assiemi e disegni invece non riesce a creare la preview.
Probabilmente non mi servirà ottenere la preview di assiemi e disegni, però magari potrebbe servire a qualcuno.
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#14
Ciao,
per gli assiemi credo non ci siano problemi, per le tavole invece non so se ci sia l'accesso.
Ci do in occhiata e ti faccio sapere fino a dove ci possiamo spingere.
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#15
Come ricordavo...
mediante questa API non è possibile ricavare la preview della tavola, ma solo di parti e assiemi.
Allego programmino aggiornato, sperando che sia utile.

Fammi sapere!

Ciao
Jenuary
 

Allegati

weldox

Utente Junior
Professione: Disegnatore
Software: Solidworks
Regione: Lombardia
#16
mi va benissimo così! grazie ancora, adesso lo provo e poi ti faccio sapere!

ti sono infinitamente grato!
 

weldox

Utente Junior
Professione: Disegnatore
Software: Solidworks
Regione: Lombardia
#17
Per gli assiemi mi esce una finestra:

Microsoft .NET Framework

Eccezione non gestita nell'applicazione. Fare clic su Continua per ignorare l'errore e tentare di proseguire. Fare clic su Esci per arrestare l'applicazione immediatamente.

Riferimento a un oggetto non ipostato su un'istanza di oggetto.
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#18
Ho provato e a me funziona.
Dobbiamo capire cosa causa l'errore e per farlo devo chiederti alcune informazioni:
- Nella macchinina hai Solidworks installato oppure no?
- Nella cartella dove sei andato a copiarti l'eseguibile, ti sei portato dietro il file di testo e la sottocartella "Reference" che era contenuta nel file .rar?
- La macchina è un 64bit o 32 bit?

Perdonami ma dobbiamo andare per esclusione, così capisco da cosa può dipendere.

Saluti
Roberto
 

weldox

Utente Junior
Professione: Disegnatore
Software: Solidworks
Regione: Lombardia
#19
Eccomi,
allora
-Si, l'ho provato sulla macchina con installato SW2015
-Si, sia cartella che file di testo
-La macchina ha installato Windows 7 Professional 64 bit
 

weldox

Utente Junior
Professione: Disegnatore
Software: Solidworks
Regione: Lombardia
#20
Aggiornamento: me lo fa anche con le parti adesso, però se premo "esci" nella finestra dell'errore, mi genera la preview.
cosa che non succede per l'assieme.

Una volta che accade quest'errore il pc non riesco più ad arrestarlo normalmente (continua a rimanere accesa "disconnessione" ma finchè non resetto proprio col pulsante non si spegne).

Domani faccio qualche prova in più e ti dico.