Autor
|
Thema: CatDrawing in PDF konvertieren mit C# (4227 mal gelesen)
|
erik.thomas Mitglied
Beiträge: 6 Registriert: 10.10.2008
|
erstellt am: 10. Okt. 2008 14:25 <-- editieren / zitieren --> Unities abgeben:
Hi, ich versuche mit C# CATIA so zu automatisieren das aus einem CATDrawing ein Pdf generiert wird. Nur gelingt mir das nicht. CATIA öffnet zwar das CATDrawing aber alle weiteren Anweisungen ignoriert CATIA vollkommen. Code:
INFITF.Application catiaApplication = (INFITF.Application)Marshal.GetActiveObject("CATIA.Application"); INFITF.Document catiaDocument; string input = "D:\\#cattest\\easy\\0001.CATDrawing"; string output = "D:\\#cattest\\easy\\0001.pdf"; string format = "pdf"; catiaDocument = catiaApplication.Documents.Open(ref input); catiaDocument = catiaApplication.ActiveDocument; catiaDocument.ExportData(ref output, ref format); catiaApplication.ActiveDocument.Close();
Die verwendete CATIA Version ist V5R16. Danke schon mal im Voraus Grüße Erik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 10. Okt. 2008 14:52 <-- editieren / zitieren --> Unities abgeben: Nur für erik.thomas
|
erik.thomas Mitglied
Beiträge: 6 Registriert: 10.10.2008
|
erstellt am: 10. Okt. 2008 14:55 <-- editieren / zitieren --> Unities abgeben:
|
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 10. Okt. 2008 19:38 <-- editieren / zitieren --> Unities abgeben: Nur für erik.thomas
Hallo, gibt es eine Fehlermeldung ? Ist der string output = "D:\\#cattest\\easy\\0001.pdf"; als Referenz deklariert? catiaDocument.ExportData(ref output, ref format);
hast du vielleicht probiert statt "ref output unf ref format" den pfad und format "pdf" einzugeben? Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
erik.thomas Mitglied
Beiträge: 6 Registriert: 10.10.2008
|
erstellt am: 13. Okt. 2008 13:01 <-- editieren / zitieren --> Unities abgeben:
Hallo, Wenn ich das Programm ausführe komt keine Fehlermeldung, es wird zwar das CATDrawing geöffnet, aber alle Anweisungen danach werden von CATIA ohne Fehlermeldung ignoriert. Wenn ich bei "catiaDocument.ExportData();" die Daten direkt reinschreibe, erhalte ich logischerweise eine Fehlermeldung beim kompilieren des .NET Programms ("Das 1-Argument muss mit dem ref-Schlüsselwort übergeben werden."). Grüße Erik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 14. Okt. 2008 08:50 <-- editieren / zitieren --> Unities abgeben: Nur für erik.thomas
Hallo, ich dachte immer das wenn ich ein ref Argument abfragen möchte der auch mit ref vorher definiert werden muß "string refinput". Hast du vielleicht versucht statt "Export Data" "Save As" zu verwenden? Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
erik.thomas Mitglied
Beiträge: 6 Registriert: 10.10.2008
|
erstellt am: 14. Okt. 2008 10:12 <-- editieren / zitieren --> Unities abgeben:
Hi, wenn ich die Methode SaveAs() benutze, dann erhalte ich einen Fehler der COM-Schnittstelle: " HRESULT E_FAIL-Fehler". Hast du noch weitere Ideen woran es liegen könnte, fehlt eine Assembly? Da ich derzeit nur die "CATIA V5 InfInterfaces Object Library" als Referenz deklariert hab. Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 14. Okt. 2008 12:29 <-- editieren / zitieren --> Unities abgeben: Nur für erik.thomas
|
erik.thomas Mitglied
Beiträge: 6 Registriert: 10.10.2008
|
erstellt am: 14. Okt. 2008 12:49 <-- editieren / zitieren --> Unities abgeben:
|
erik.thomas Mitglied
Beiträge: 6 Registriert: 10.10.2008
|
erstellt am: 14. Okt. 2008 18:08 <-- editieren / zitieren --> Unities abgeben:
|
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 15. Okt. 2008 15:49 <-- editieren / zitieren --> Unities abgeben: Nur für erik.thomas
Hallo, es konnte so funktionieren, CATIA.ActiveDocument.ExportData oder CATIA.ActiveDocument().ExportData CATIA.ActiveDocument().Close(); Oder VB6 Private Sub Form_Load() Dim CATIA As Object Set CATIA = CreateObject("CATIA.Application") Dim sFilePath As String sFilePath = "C:\Programm\drw\myDrawing.CATDrawing" 'sFilePath = CATIA.FileSelectionBox("Select a Drawing file", "*.CATDrawing",CatFileSelectionModeOpen) 'Set oDrawingDocument = CATIA.Documents.Open(sFilePath) CATIA.ActiveDocument.ExportData "C:\Programm\drw\myDrawing1.pdf", "pdf" CATIA.ActiveDocument.Close End Sub Allerdings funct der VB6 nur wenn die Catia schon offen ist, die wird zwar gestartet aber nicht sichtbar. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
0711Siggi Mitglied Konstrukteur
Beiträge: 4 Registriert: 25.08.2007 Windows XP Catia V5 R16
|
erstellt am: 25. Okt. 2008 14:58 <-- editieren / zitieren --> Unities abgeben: Nur für erik.thomas
Hallo erstmal.. Ich bin hier ein wenig am querlesen und habe auch von Programmierung nicht viel Ahnung aber eine simply solution ist es doch, sich ein PDFCreator zu besorgen (Freeware bei Chip) und es dann ganz einfach abspeichert. Hoffe ich habe mich nicht zu sehr blamiert.. Greets aus dem Ländle Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 27. Okt. 2008 08:19 <-- editieren / zitieren --> Unities abgeben: Nur für erik.thomas
Hallo, das Problem ist z.b. das PDFCreator (Freeware bei Chip) *.CATDrawings nicht unterstützt, anderer Anwendungsfall were z.b. Ich öffne die Zeichnung und Speichere die in einem Schritt auch als pdf. Gruß
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 27. Okt. 2008 08:21 <-- editieren / zitieren --> Unities abgeben: Nur für erik.thomas
|