| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Thumbnail Speichern (2751 mal gelesen)
|
BernhardU Mitglied Techniker / Konstrukteur / Student
Beiträge: 328 Registriert: 17.08.2005 Windows XP SP3 AIP 2011 VS 2005
|
erstellt am: 27. Mrz. 2009 08:23 <-- editieren / zitieren --> Unities abgeben:
Hi Leute! Erhalte einen schweren Fehler beim speichern des bildes ins iProperty!!? Code: Inventor.View oview = odoc.Views[1]; Inventor.Camera ocam = oview.Camera; ocam.Perspective = false; ocam.ViewOrientationType = Inventor.ViewOrientationTypeEnum.kIsoTopRightViewOrientation; ocam.Fit(); ocam.Apply(); oview.Update(); oview.SaveAsBitmap("C:\\inv.bmp", 180, 180); System.Drawing.Image img = System.Drawing.Image.FromFile("C:\\inv.bmp"); stdole.IPictureDisp ip = ImageToPictureConverter.Convert(img); odoc.PropertySets["{F29F85E0-4FF9-1068-AB91-08002B27B3D9}"].get_ItemByPropId(17).Value = ip ; img.Dispose(); public sealed class ImageToPictureConverter : System.Windows.Forms.AxHost { private ImageToPictureConverter() : base(null) { } public static stdole.IPictureDisp Convert(System.Drawing.Image image) { return (stdole.IPictureDisp)System.Windows.Forms.AxHost.GetIPictureDispFromPicture(image); } }
Message = "Schwerwiegender Fehler (Ausnahme von HRESULT: 0x8000FFFF (E_UNEXPECTED))" StackTrace = " bei System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)\r\n bei Inventor.Property.set_Value(Object )\r\n bei WindowsApplication1.Form1.DateiSchreiben(String ... Hier noch das Beispiel aus der IV Hilfe:
Code: [Change the thumbnail of a document (Visual Basic)] This sample demonstrates how to change the thumbnail of a document. Sub ChangeThumbnail()
' Set a reference to the active document Dim oDoc As Document Set oDoc = ThisApplication.ActiveDocument ' Get the "Summary Information" property set Dim oPropSet As PropertySet Set oPropSet = oDoc.PropertySets("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}") ' Get the "Thumbnail" property Dim oProp As Property Set oProp = oPropSet.ItemByPropId(17) Dim oDisp As IPictureDisp Set oDisp = LoadPicture("C:\temp\thumbnail.bmp") ' Set the value of the thumbnail file property oProp.Value = oDisp ' Save the document oDoc.Save End Sub
? ?Vielen Dank Bernhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Niwrex Mitglied CAD Softwareentwickler
Beiträge: 40 Registriert: 24.08.2007
|
erstellt am: 30. Mrz. 2009 12:10 <-- editieren / zitieren --> Unities abgeben: Nur für BernhardU
Hi Bernhard, bleibt er hier: Code: System.Drawing.Image img = System.Drawing.Image.FromFile("C:\\inv.bmp");
oder hier
Code: odoc.PropertySets["{F29F85E0-4FF9-1068-AB91-08002B27B3D9}"].get_ItemByPropId(17).Value = ip ;
hängen? Gruß Steffen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernhardU Mitglied Techniker / Konstrukteur / Student
Beiträge: 328 Registriert: 17.08.2005 Windows XP SP3 AIP 2011 VS 2005
|
erstellt am: 30. Mrz. 2009 12:37 <-- editieren / zitieren --> Unities abgeben:
|
Niwrex Mitglied CAD Softwareentwickler
Beiträge: 40 Registriert: 24.08.2007
|
erstellt am: 31. Mrz. 2009 14:48 <-- editieren / zitieren --> Unities abgeben: Nur für BernhardU
Hi Bernhard, Also leider muss ich dir erstmal sagen, bei mir geht es . Hab den Code einfach übernommen von dir. Welche Inventor Version nutzt du ? Ich hab es mit AIP 2009 probiert. Code:
Inventor.Document mydoc = StandardAddInServer.m_inventorApplication.ActiveDocument; Inventor.View oview = mydoc.Views[1]; Inventor.Camera ocam = oview.Camera; ocam.Perspective = false; ocam.ViewOrientationType = Inventor.ViewOrientationTypeEnum.kIsoTopRightViewOrientation; ocam.Fit(); ocam.Apply(); oview.Update(); oview.SaveAsBitmap("C:\\inv.bmp", 180, 180); System.Drawing.Image img = System.Drawing.Image.FromFile("C:\\inv.bmp"); stdole.IPictureDisp ip = ImageToPictureConverter.Convert(img); mydoc.PropertySets["{F29F85E0-4FF9-1068-AB91-08002B27B3D9}"].get_ItemByPropId(17).Value = ip; img.Dispose();
Die Funktion hab ich natürlich auch mit in die Klasse eingefügt.Aber ich glaube du Probierst das ganze eher so:
Code:
Inventor.Document mydoc = StandardAddInServer.m_inventorApplication.OpenDocument("C:\\VaultWorkSpace\\Daten\\Biegung.ipt",(object)false);
Und das klappt nicht da der Inventor die "InventorKamera" nur bewegen kann wenn die datei visible geöffnet wird.Gruß Steffen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernhardU Mitglied Techniker / Konstrukteur / Student
Beiträge: 328 Registriert: 17.08.2005 Windows XP SP3 AIP 2011 VS 2005
|
erstellt am: 31. Mrz. 2009 15:49 <-- editieren / zitieren --> Unities abgeben:
Hi Steffen, Ich mache das ganze nicht mit einem AdDIn sondern über eine normale EXE Datei
Code: oapp = (Inventor.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application"); Inventor.Document odoc = oapp.OpenDocument(Dateiname, true);
Habe es jetzt einfach einmal mit einer Kombination von EXE und IV VBA gelöst!Aber ich hab keine Ahnung warum das bei mir nicht funkt!? Ich verwende IV 2009 Prof. Vielen Dank mfg Bernhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernhardU Mitglied Techniker / Konstrukteur / Student
Beiträge: 328 Registriert: 17.08.2005 Windows XP SP3 AIP 2011 VS 2005
|
erstellt am: 21. Sep. 2009 12:42 <-- editieren / zitieren --> Unities abgeben:
|