| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: dxf Speichern (1509 / mal gelesen)
|
Lupu101 Mitglied
Beiträge: 20 Registriert: 21.09.2011
|
erstellt am: 02. Feb. 2016 20:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute Kann sich Jemand mein Problem ansehen ich möchte dxf Exportieren und bekomme die Fehlermeldung von Inv das Dokument, das Sie speichern möchten, ist kein Zeichnungsdokument. Private Function SaveAsDXF(ByVal DrawingDoc As Inventor.DrawingDocument, ByVal Filename As String) As Boolean Try Dim invApp As Inventor.Application = DrawingDoc.Parent ' PDF Übersetzer Add-In. Dim DXFAddIn As Inventor.TranslatorAddIn DXFAddIn = invApp.ApplicationAddIns.ItemById("{C24E3AC4-122E-11D5-8E91-0010B541CD80}") Dim Context As Inventor.TranslationContext Context = invApp.TransientObjects.CreateTranslationContext Context.Type = Inventor.IOMechanismEnum.kFileBrowseIOMechanism ' Erstelle Name Dim Options As Inventor.NameValueMap Options = invApp.TransientObjects.CreateNameValueMap ' Erstelle Medium Dim DataMedium As Inventor.DataMedium DataMedium = invApp.TransientObjects.CreateDataMedium Dim oReferencedDoc As Document oReferencedDoc = DrawingDoc.ReferencedDocuments.Item(1) Dim customPropSet As PropertySet customPropSet = DrawingDoc.PropertySets.Item("Inventor User Defined Properties") Dim ZnNr As [Property] ZnNr = customPropSet.Item("Zeichnungsnummer") 'Zieldateinamen DataMedium.FileName = ZnNr.Value 'Dokument veröffentlichen. Call DXFAddIn.SaveCopyAs(DrawingDoc, Context, Options, DataMedium) Return True Catch ex As Exception Return False End Try End Function LG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RolandD Mitglied
Beiträge: 533 Registriert: 07.01.2005 i7-9700k 32GB DDR4-RAM Nvidia RTX 2060 SSD 970 m.2 Win10-64 (21H2) AIP 2020.3 Dell U3417W
|
erstellt am: 03. Feb. 2016 12:39 <-- editieren / zitieren --> Unities abgeben: Nur für Lupu101
Hallo Lupu101, was passiert denn im Debugger, wenn du schrittweise bis vor die Ausgabe des DXF gehst? Stimmt dein DXF-Dateiname? änder mal
Code: 'Zieldateinamen DataMedium.FileName = ZnNr.Value
in Code: 'Zieldateinamen DataMedium.FileName = "D:\" & ZnNr.Value & ".dxf"
------------------ Gruß Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2013/2015 Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 03. Feb. 2016 14:38 <-- editieren / zitieren --> Unities abgeben: Nur für Lupu101
Bis auf den Fehler, den Roland schon geschrieben hat, kann ich auch keinen Weiteren finden. Aber die Lösung von Roland sollte den Fehler auch schon beheben. Falls du einen bestimmten Speicherpfad nutzen möchtest gehört der natürlich da hin: Code: DataMedium.FileName = "DER PFAD IN DEM DU SPEICHERN MÖCHTEST\" & ZnNr.Value & ".dxf"
------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lupu101 Mitglied
Beiträge: 20 Registriert: 21.09.2011
|
erstellt am: 03. Feb. 2016 16:51 <-- editieren / zitieren --> Unities abgeben:
Danke RolandD Danke Chris 31 Datei Pfad und satfix es klappt. Ich habe noch Fragen das ganze Programm ist wie folgt aus: Man öffnet einen Ordne und alle darin enthaltenen idw werden geöffnet und in dxf gespeichert. Wie kann man nur den aktuell eingestellten Project Pfad öffnen? (erspart ein paar Klicks) Und zum Speichern: Es sollte ein Ordner namens DXF erstellt werden (falls noch nicht vorhanden) in gleichen Verzeichnis wo sich die idw befindet und dort speichern. LB Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RolandD Mitglied
Beiträge: 533 Registriert: 07.01.2005 i7-9700k 32GB DDR4-RAM Nvidia RTX 2060 SSD 970 m.2 Win10-64 (21H2) AIP 2020.3 Dell U3417W
|
erstellt am: 03. Feb. 2016 17:52 <-- editieren / zitieren --> Unities abgeben: Nur für Lupu101
Hallo Lupu101, du musst nur den Namen des DXF mit allen Ordnern angeben, dann wird das entsprechend erstellt. Zitat: Es sollte ein Ordner namens DXF erstellt werden (falls noch nicht vorhanden) in gleichen Verzeichnis wo sich die idw befindet und dort speichern
Das kannst du aus FullFileName der IDW auslesen, Pfad daraus extrahieren und Code: DataMedium.FileName = Pfad & "\DXF\" & ZnNr.Value & ".dxf" anfügen
------------------ Gruß Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2013/2015 Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 04. Feb. 2016 11:11 <-- editieren / zitieren --> Unities abgeben: Nur für Lupu101
Was genau meinst du mit "nur den aktuell eingestellten Project Pfad öffnen"??? An die Daten, Pfade, Bibliothekspfade, etc des aktuellen Projektes kommst du mit: Code: ThisApplication.DesignProjectManager.ActiveDesignProject
------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lupu101 Mitglied
Beiträge: 20 Registriert: 21.09.2011
|
erstellt am: 04. Feb. 2016 12:24 <-- editieren / zitieren --> Unities abgeben:
Danke Chris 31 Das hatte ich gemeint Das Speichern möchte ich auswählbar machen klappt aber nicht Private Function SaveAsDXF(ByVal DrawingDoc As Inventor.DrawingDocument, ByVal Filename As String) As Boolean Try Dim invApp As Inventor.Application = DrawingDoc.Parent ' PDF Übersetzer Add-In. Dim DXFAddIn As Inventor.TranslatorAddIn DXFAddIn = invApp.ApplicationAddIns.ItemById("{C24E3AC4-122E-11D5-8E91-0010B541CD80}") Dim Context As Inventor.TranslationContext Context = invApp.TransientObjects.CreateTranslationContext Context.Type = Inventor.IOMechanismEnum.kFileBrowseIOMechanism ' Erstelle Name Dim Options As Inventor.NameValueMap Options = invApp.TransientObjects.CreateNameValueMap ' Erstelle Medium Dim DataMedium As Inventor.DataMedium DataMedium = invApp.TransientObjects.CreateDataMedium Dim oReferencedDoc As Document oReferencedDoc = DrawingDoc.ReferencedDocuments.Item(1) Dim customPropSet As PropertySet customPropSet = DrawingDoc.PropertySets.Item("Inventor User Defined Properties") Dim ZnNr As [Property] ZnNr = customPropSet.Item("Zeichnungsnummer") Dim dir As String = "" Dim fb As New FolderBrowserDialog With fb .Description = "Speicherort" If .ShowDialog = System.Windows.Forms.DialogResult.OK Then txtPath.Text = .SelectedPath Else End If End With DataMedium.FileName = txtPath.Text("\" & ZnNr.Value & ".dxf") 'Dokument veröffentlichen. Call DXFAddIn.SaveCopyAs(DrawingDoc, Context, Options, DataMedium) Return True Catch ex As Exception Return False End Try End Function MFG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2013/2015 Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 04. Feb. 2016 13:03 <-- editieren / zitieren --> Unities abgeben: Nur für Lupu101
Was genau klappt denn nicht? Ich glaube du hast dir hier einen Fehler eingebaut: Code: Dim dir As String = "" Dim fb As New FolderBrowserDialog With fb .Description = "Speicherort" If .ShowDialog = System.Windows.Forms.DialogResult.OK Then txtPath.Text = .SelectedPath '<----txtPath.Text ist nicht definiert.... Da sollte sicher dir stehen! Else End If End With DataMedium.FileName = txtPath.Text("\" & ZnNr.Value & ".dxf") '<---- hier müsste dann DataMedium.FileName= dir & "\" & ZnNr.Value & ".dxf" stehen
Dann sollte es eigentlich klappen, zumindest kann ich sonst erstmal nicht finden. ------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RolandD Mitglied
Beiträge: 533 Registriert: 07.01.2005 i7-9700k 32GB DDR4-RAM Nvidia RTX 2060 SSD 970 m.2 Win10-64 (21H2) AIP 2020.3 Dell U3417W
|
erstellt am: 04. Feb. 2016 16:26 <-- editieren / zitieren --> Unities abgeben: Nur für Lupu101
Hallo Lupu, du musst dir noch einmal genau überlegen, was du willst. Ich habe bisher so verstanden: 1. Den Ordner abfragen, dessen gesamter IDW-Inhalt verarbeitet werden soll. z.B. D:\Irgendwo 2. nacheinander alle darin enthaltenen IDWs öffnen und als DXF speichern unter D:\Irgendwo\PDF\Datei1.dxf usw. Für 1. musst du die Dateiliste für *.idw aus dem Ordner von txtPath.Text einlesen Für 2. Danach eine Schleife für alle IDW der Liste abarbeiten: 2.1. öffnen, 2.2. ZnNr.Value ermitteln, 2.3. Dateinamen bilden: DataMedium.FileName = Pfad & "\DXF\" & ZnNr.Value & ".dxf" (siehe meine Antwort vom 03.02.) 2.4. DXF ausgeben ------------------ Gruß Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lupu101 Mitglied
Beiträge: 20 Registriert: 21.09.2011
|
erstellt am: 04. Feb. 2016 18:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Danke soweit funktioniert es Allerdings wen mehrere idw aufgerufen werden muss man anschließend jeder dxf den Speicherpfad angeben und bestätigen. Beim speichern muss noch was rein aber wo und was? Gruß Lupu101 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RolandD Mitglied
Beiträge: 533 Registriert: 07.01.2005 i7-9700k 32GB DDR4-RAM Nvidia RTX 2060 SSD 970 m.2 Win10-64 (21H2) AIP 2020.3 Dell U3417W
|
erstellt am: 04. Feb. 2016 21:42 <-- editieren / zitieren --> Unities abgeben: Nur für Lupu101
|
Lupu101 Mitglied
Beiträge: 20 Registriert: 21.09.2011
|
erstellt am: 05. Feb. 2016 16:26 <-- editieren / zitieren --> Unities abgeben:
|