Vytisknout stránku | Zavřít okno

Náhled souboru

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=27777
Datum vytištění: 13.kvě.2026 v 07:25


Téma: Náhled souboru
Odeslal: Radek Pícha
Předmět: Náhled souboru
Datum odeslání: 03.říj.2018 v 07:50
Při otevírání souboru v Inventoru mám v levé části okna Otevřít náhled souboru na kterém stojím. Dá se takový náhled zobrazovat pomocí VBA ? Jde mi zejména o iam, ipt a idw.


-------------
<font color=BLUE>Ing. Radek Pícha[/COLOR] (konstruktér)

http://www.itsbenda.cz" rel="nofollow - ITS BENDA s.r.o.



Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 03.říj.2018 v 08:07
Myslíte mimo prostředí Inventoru? Ve VBA je to problém vzhledem ke způsobu jakým komunikuje s 64bitovým Inventorem. Ale jde to např. přes Inventor Apprentice (VB.Net):
 
Imports Inventor
Imports Microsoft.VisualBasic
'References: Autodesk.Inventor.Interop, Microsoft.VisualBasic.Compatibility, stdole
 
Dim Apprentice As New ApprenticeServerComponent
Dim doc As ApprenticeServerDocument
doc = Apprentice.Open("C:\MyFolder\Part1.ipt")
Dim summaryInfo As PropertySet
summaryInfo = doc.PropertySets.Item("Inventor Summary Information")
Dim thumbProp As Inventor.Property
thumbProp = summaryInfo.Item("Thumbnail")
Dim thumbnail As stdole.IPictureDisp
thumbnail = thumbProp.Value
If Not thumbnail Is Nothing Then
   Dim img As Image = Compatibility.VB6.IPictureDispToImage(thumbnail)
   ' Call SavePicture(img, "C:\Img\Thumb.bmp")
End If


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: Radek Pícha
Datum odeslání: 03.říj.2018 v 08:26
Jde mi právě o VBA...


Odeslal: Radek Pícha
Datum odeslání: 05.říj.2018 v 06:59
Dal by se použít ShowOpen, tam náhledy fungují. Ale nevím jak se postavit s kurzorem na odpovídající soubor. Zkusil jsem použít SendKeys, ale to občas funguje, občas ne. Asi by bylo nutné nějak mazat buffer klávesnice, ale jak ?

Call ThisApplication.CreateFileDialog(oF)
Sbr="soubor"
oF.InitialDirectory = "cesta"
oF.Filter = Sbr + "|" + Sbr + "|Soubory Inventoru (iam / ipt / idw)|*.iam;*.ipt;*.idw"
oF.FilterIndex = 1
SendKeys "%H", True
SendKeys "+{TAB}+{TAB}", True
SendKeys Sbr, True
oF.ShowOpen

Je zajímavé, že se to chová jinak když chci zobrazit soubor z lokálního disku anebo ze serveru.
Příkaz:
oF.FileName = "cesta+soubor"
neudělá nic, ten zřejmě funguje jen pro ShowSave...

Nějaký nápad ?



Odeslal: Radek Pícha
Datum odeslání: 08.říj.2018 v 07:21
Pokouším se použít InventorViewCtrl.ocx, ale při pokusu vložit mu FileName spadne Inventor.
Inventor View Control mám verzi 1.0, Inventor 2018, 64bit.
Funguje to někomu ?


Odeslal: Vladimír Michl
Datum odeslání: 08.říj.2018 v 07:36
Máte OCX zaregistrované v systému? Registrace žádnou chybu nehlásila? V Office to funguje?

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: Radek Pícha
Datum odeslání: 08.říj.2018 v 08:04
Zaregistrováno mám, žádnou chybu nehlásil.
V Office to neodzkouším, mám verzi 2013 a tam je staré VBA (6.5) a pokud si to dobře pamatuji, je to 32 bitová verze. Knihovnu do References... vložím, ale v Additional Controls... se vůbec neobjeví.
V Inventoru vložím objekt InventorViewControl do formuláře a jakmile chci vybrat ve FileName nějaký soubor (v jeho Properties - FileName kliknu na [...], vyskočí okno Property Pages, karta Filename, kliknu na tlačítko [ ... ]) Inventor spadne.


Odeslal: Vladimír Michl
Datum odeslání: 08.říj.2018 v 08:36
Aha, nezkoušel jsem, ale je možné že to naráží na nějakou kolizi - ten prvek nebyl určen pro použití v Inventoru, ale právě v externích aplikacích typu Office nebo ERP/PDM.

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: Navara
Datum odeslání: 04.úno.2019 v 14:48
Možná už je to mimo mísu, ale zobrazení náhledu je ve VBA velice jednoduché.
Stačí vytvořit formulář s jedním objektem Image a na kliknutí do formuláře napsat kód
 
Private Sub Image1_Click()
    Me.Image1.Picture = ThisApplication.activeDocument.PropertySets("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}")("Thumbnail").value
End Sub
 
 
 
 
 


Odeslal: Radek Pícha
Datum odeslání: 05.úno.2019 v 14:36
Není to mimo mísu, stále to není vyřešené.

Tohle zobrazí náhled otevřeného dokumentu a to nepotřebuji. Chtěl jsem zobrazit náhled dokumentu před otevřením.

Moje představa je zobrazit to co je v přiloženém obrázku v červeném rámečku.




Odeslal: Vladimír Michl
Datum odeslání: 05.úno.2019 v 17:30
Pokud to potřebujete pro externí (nenačtený) dokument, musíte jej ve VBA otevřít (nejlépe jako neviditelný). Následující kód částečně funguje, ale jsou tam potíže v komunikaci procesů VBA a Inventor. Zřejmě z toho důvodu zafunguje vždy až napodruhé. Ale můžete když tak zkoumat. UserForm1 je normální formulář s polem obrázku (Image1).


Const strNew_Filename = "c:\Users\UZIVATEL\Documents\SoucastRnd.ipt"

Sub GO()

Dim oDoc As Document
Set oDoc = ThisApplication.Documents.Open(strNew_Filename, False)
UserForm1.Show
Dim oPropSets As PropertySets
Set oPropSets = oDoc.PropertySets
Dim summaryInfo As PropertySet
Set summaryInfo = oPropSets.Item("Inventor Summary Information")
Dim thumbProp As Inventor.Property
Set thumbProp = summaryInfo.Item("Thumbnail")
Dim thumbnail As stdole.IPictureDisp
Set thumbnail = thumbProp.Value
UserForm1.Image1.Picture = thumbnail
oDoc.Close

End Sub


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: Radek Pícha
Datum odeslání: 11.úno.2019 v 07:42
Právě že nechci soubor otevřít, příliš to zatěžuje systém.
Např. hledám nějakou velkou sestavu, soubor má desítky MB a načítá se několik minut. Najít ten správný trvá klidně hodiny.
Inventor to dokáže - Otevřít a tam je náhled, ještě před otevřením. Nedal by se ten dialog rozpitvat a zjistit jak to dělá ?


Odeslal: Vladimír Michl
Datum odeslání: 11.úno.2019 v 08:33
Dialog otevři vychází ze standardního dialogu Windows. Takže buď přes ten Apprentice viz výše, nebo - protože v souboru je náhled uložen jako standardní document.container - jde použít univerzální vytahovač thumbnail obrázků (používáme např. v katalogu bloků zde na CADfóru).

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)



Vytisknout stránku | Zavřít okno