Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  Screenshot vom Bauteil - AddIn mit C#

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Screenshot vom Bauteil - AddIn mit C# (1906 mal gelesen)
elbardoni
Mitglied


Sehen Sie sich das Profil von elbardoni an!   Senden Sie eine Private Message an elbardoni  Schreiben Sie einen Gästebucheintrag für elbardoni

Beiträge: 8
Registriert: 30.12.2014

erstellt am: 23. Feb. 2015 15:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten Tag liebe Gemeinde,

mir geht es heute darum einen Screenshot vom Bauteil zu machen und diese dann zu speichern.
Es funktioniert beim ersten mal wunderbar , aber beim zweiten Mal kommt leider eine Fehlermeldung.

Code:
private void btnScreenshot_Click(object sender, EventArgs e)
        {
            Application app = AddinGlobal.InventorApp;
            var oDoc = app.ActiveDocument;
            if (oDoc == null) {}
            else
            {
                try
                {
                    //  Datei wird als PNG gespeichert.
                    oDoc.SaveAs("C:\\Temp\\Test.png", true);
                    _mmHc.ShareFileWithRoom(_room, "C:\\Temp\\Test.png", rTBEingabe.Text);
                    rTBEingabe.Text = "";
                    var imagelist = new ImageList();
                    String[] imageFiles = {"C:\\Temp\\Test.png"};
                    pBScreenshot.Image = Image.FromFile("C:\\Temp\\Test.png");
                    foreach (var file in imageFiles)
                    {
                        //Screenshot wird zur Imagelist hinzugefügt
                        imagelist.Images.Add(Image.FromFile(file));
                    }
                }
                catch (Exception exception)
                {
                    MessageBox.Show(Resources.FormChat_SaveAsBmp_Bitte_öffnen_bzw__erstellen_Sie_ein_Dokument_ + exception);
                }
               
            }

        }


C# meckert bei dieser Zeile

Code:
oDoc.SaveAs("C:\\Temp\\Test.png", true);

Dann kommt diese Fehlermeldung:

Zitat:
System.Runtime.InteropServices.COMException (0x80004005): Unbekannter Fehler (Ausnahme von HRESULT: 0x80004005 (E_FAIL))
  bei System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
  bei Inventor._DocumentClass.SaveAs(String FileName, Boolean SaveCopyAs)
  bei InvAddIn.FormChat.btnScreenshot_Click(Object sender, EventArgs e) in c:\Users\elbardoni\Desktop\Hassan daten\HTW\Programmieren\svn\Klu-Pro-El\Hassan El-Bardan\Prototyp\InventorAddIn2\InventorAddIn2\FormChat.cs:Zeile 135.
 

Bitte um Rat.

Vielen Dank schon mal für die Antwort.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

Inventor 20xx, Visual Studio Express

erstellt am: 23. Feb. 2015 17:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für elbardoni 10 Unities + Antwort hilfreich

Ohne den Code genauer zu analysieren, könntest du statt
Code:
odoc.SaveAs

testhalber auch
Code:
oview.SaveAsBitmap

verwenden
http://modthemachine.typepad.com/my_weblog/2009/02/saving-image-files.html


------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

[Diese Nachricht wurde von CAD-Huebner am 23. Feb. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

elbardoni
Mitglied


Sehen Sie sich das Profil von elbardoni an!   Senden Sie eine Private Message an elbardoni  Schreiben Sie einen Gästebucheintrag für elbardoni

Beiträge: 8
Registriert: 30.12.2014

erstellt am: 23. Feb. 2015 17:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke erstmal für die Antwort.

Ich habe es auch mit dem Code versucht:

Code:
Public Sub SaveAsBMP()
    ' Get the active document.
    Dim oDoc As Document
    Set oDoc = ThisApplication.activeDocument

    ' Save a copy as a BMP file.
    Call oDoc.SaveAs("C:\Temp\Test.bmp", True)
End Sub


auch mit:

Code:
Public Sub SaveAsJPG()
    ' Get the active view.
    Dim oView as View
    Set oView = ThisApplication.ActiveView

    ' Save the view as a jpg file.
    Call oView.SaveAsBitmap("C:\Temp\Test.jpg", 700, 500)
End Sub


Aber leider kommt immer die gleiche Fehlermeldung.
Auch die Tipps au der Webseite : http://modthemachine.typepad.com/my_weblog/2009/02/saving-image-files.html
waren leider nicht hilfreich.

Haben Sie noch eine Idee.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 23. Feb. 2015 21:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für elbardoni 10 Unities + Antwort hilfreich

Hallo

Fröhlich geraten, beim zweiten Mal E_Fail weil das Dokument schon existiert?

------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

elbardoni
Mitglied


Sehen Sie sich das Profil von elbardoni an!   Senden Sie eine Private Message an elbardoni  Schreiben Sie einen Gästebucheintrag für elbardoni

Beiträge: 8
Registriert: 30.12.2014

erstellt am: 23. Feb. 2015 22:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

wenn ich das Dokument lösche über:
Code:
File.Delete("C:\\Temp\\Test.png");

kommt die Fehlermeldung:
Zitat:
Der Prozess kann nicht auf die Datei "C:\Temp\Test.png" zugreifen, da sie von einem anderen Prozess verwendet wird.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Michael Puschner
Ehrenmitglied V.I.P. h.c.
Rentner



Sehen Sie sich das Profil von Michael Puschner an!   Senden Sie eine Private Message an Michael Puschner  Schreiben Sie einen Gästebucheintrag für Michael Puschner

Beiträge: 12982
Registriert: 29.08.2003

Toshiba Encore mit MS Office<P>Ein Programm sollte nicht nur Hand und Fuß, sondern auch Herz und Hirn haben.
(Michael Anton)

erstellt am: 24. Feb. 2015 08:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für elbardoni 10 Unities + Antwort hilfreich

Ich verschiebe diesen Thread in das Forum "Inventor .NET".

Da passt das Thema besser hin.

------------------
Michael Puschner
Autodesk Inventor Certified Expert
Autodesk Inventor Certified Professional
Mensch und Maschine Scholle GmbH

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2015 Professional
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 24. Feb. 2015 09:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für elbardoni 10 Unities + Antwort hilfreich

Wenn ich mich nicht ganz täusche, legst du deine Bilddatei doch in einer Imagelist ab. Das dürfte dann der Prozess sein, der die Datei belegt.

Zur Not könntest du das Bild als COM-Objekt zum Ende hin auch noch freigeben.

------------------
MFG

Chris

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

elbardoni
Mitglied


Sehen Sie sich das Profil von elbardoni an!   Senden Sie eine Private Message an elbardoni  Schreiben Sie einen Gästebucheintrag für elbardoni

Beiträge: 8
Registriert: 30.12.2014

erstellt am: 24. Feb. 2015 12:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


fehler.png

 
Hallo Chris,

danke erstmal für die Hilfe.
Dennoch es tritt immer noch der gleiche Fehler auf.

Code:
private void btnScreenshot_Click(object sender, EventArgs e)
        {

            Application app = AddinGlobal.InventorApp;
            var oDoc = app.ActiveDocument;
            if (oDoc == null) {}
            else
            {
                try
                {
                 
                    //  Datei wird als PNG gespeichert.
                    oDoc.SaveAs("C:\\Temp\\Test.png", true);  //| || Hier tritt der Fehler auf | ||\\
                    _mmHc.ShareFileWithRoom(_room, "C:\\Temp\\Test.png", rTBEingabe.Text);
                    rTBEingabe.Text = "";
                    pBScreenshot.Image = Image.FromFile("C:\\Temp\\Test.png");
             
                }
                catch (Exception exception)
                {
                    MessageBox.Show(Resources.FormChat_SaveAsBmp_Bitte_öffnen_bzw__erstellen_Sie_ein_Dokument_ + exception);
                }
            }
        }


Ich glaube eher, dass es an Inventor selbst liegt.
Den ich habe bemerkt, dass auch beim ersten Versuch die Bilddatei zu speichern, der gleiche Fehler auf tritt (siehe Anhang). Aber Inventor führt trotz allem den Befehl aus.
Erst beim zweiten Versuch mekert er mit der Fehlermeldung.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz