Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Zeichnung in dxf, pdf und dwfx mit einem Makro ausgeben

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:  Zeichnung in dxf, pdf und dwfx mit einem Makro ausgeben (4958 mal gelesen)
themass
Mitglied


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

Beiträge: 6
Registriert: 19.02.2013

Inv2014SP1, Win7ProSP1

erstellt am: 19. Feb. 2013 14:32    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

Hallo,
ist es möglich mit einem Makro eine Zeichnung mit zwei oder mehr Blättern in einem Durchgang als
dxf (für Zulieferer), pdf (für Zeichnungsaustausch) und dwfx (für die Fertigung) in den selben Ordner,
wo die entsprechende Zeichnung liegt, auszugeben.
Ich habe schon etwas mit dem VB Tool experimentiert und verschiedene Makros aus dem Forum versucht.
Einzelne pdf-Blätter habe ich herausbekommen.
Ebenso auch mehrere dxf-Blätter.
dwfx wollte nicht so richtig.
Grundlegende Programmierkenntnisse habe ich, jedoch bin ich schon sehr lange raus.
Es währe schön, wenn mir jemand eine Hilfestellung geben könnte, wie ich das Makro aufbaue und wie den Export von dwfx erledigen kann.
Es sollen einfach nur die Dateien abgelegt werden (Alte überschrieben), damit alle den selben Stand haben.
Gruß

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

noctis79
Mitglied
Konstrukteur/ CAD-Administrator


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

Beiträge: 164
Registriert: 07.10.2009

Inventor Pro 2017
Cideon Workspace

erstellt am: 19. Feb. 2013 17:26    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 themass 10 Unities + Antwort hilfreich

Hallo...
Sollte möglich sein...
Ungetestet:

Code:
Sub drawing()

Dim oapp As Inventor.Application
Set oapp = ThisApplication
Dim odoc As Inventor.DrawingDocument
Dim osource As String
Dim odest As String

If oapp.ActiveDocument Is Nothing Then
    Exit Sub
End If

If oapp.ActiveDocumentType <> kDrawingDocumentObject Then
    Exit Sub
End If

Set odoc = oapp.ActiveDocument
osource = odoc.FullFileName
odest = Left(osource, Len(osource) - 4)


Dim osheet As Inventor.Sheet
Dim counter As String

counter = 1

For Each osheet In odoc.Sheets
osheet.Activate
Call odoc.SaveAs(odest & "Blatt" & counter & ".dxf", True)
Call odoc.SaveAs(odest & "Blatt" & counter & ".pdf", True)
Call odoc.SaveAs(odest & "Blatt" & counter & ".dwfx", True)
counter = counter + 1
Next

End Sub


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

themass
Mitglied


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

Beiträge: 6
Registriert: 19.02.2013

Inv2014SP1, Win7ProSP1

erstellt am: 19. Feb. 2013 17:50    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

@noctis79
Danke für den Code, funktioniert erst mal ganz gut.
Hab es mal getestet.
Er wirft mit jedes Blatt einzeln als pdf, dxf und dwfx raus.
Wie müsste man den Code anpassen, damit er die einzelnen Blätter in eine dwfx zusammenfasst.
Bei dxf ist das vereinzeln ok.
Eine weitere Frage ist, wie kann man vermeiden, das er bei einem Blatt immer Blatt1 dahinter schreibt.
Nach meinen Erfahrungen muss man doch noch einmal eine IF Schleife einbauen die abfragt, wie viele Blätter es sind und dann entsprechend weiter macht.
Welches Objekt zeigt mit die Anzahl der Blätter im Dokument?
Seh ich das Richtig?
Danke

Edit:
Meine Lösung:
Sub drawing()

Dim oapp As Inventor.Application
Set oapp = ThisApplication
Dim odoc As Inventor.DrawingDocument
Dim osource As String
Dim odest As String

If oapp.ActiveDocument Is Nothing Then
    Exit Sub
End If

If oapp.ActiveDocumentType <> kDrawingDocumentObject Then
    Exit Sub
End If

Set odoc = oapp.ActiveDocument
osource = odoc.FullFileName
odest = Left(osource, Len(osource) - 4)


Dim osheet As Inventor.Sheet
Dim counter As String
Dim zaehler As String

zaehler = 0
counter = 1

For Each osheet In odoc.Sheets
osheet.Activate
zaehler = zaehler + 1
Next

If zaehler = 1 Then
    Call odoc.SaveAs(odest & ".dxf", True)
    Call odoc.SaveAs(odest & ".pdf", True)
    Call odoc.SaveAs(odest & ".dwfx", True)
Exit Sub
End If

For Each osheet In odoc.Sheets
osheet.Activate
Call odoc.SaveAs(odest & "Blatt" & counter & ".dxf", True)
Call odoc.SaveAs(odest & "Blatt" & counter & ".pdf", True)
Call odoc.SaveAs(odest & "Blatt" & counter & ".dwfx", True)
counter = counter + 1
Next

End Sub


[Diese Nachricht wurde von themass am 19. Feb. 2013 editiert.]

[Diese Nachricht wurde von themass am 20. Feb. 2013 editiert.]

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

noctis79
Mitglied
Konstrukteur/ CAD-Administrator


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

Beiträge: 164
Registriert: 07.10.2009

Inventor Pro 2017
Cideon Workspace

erstellt am: 21. Feb. 2013 17:05    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 themass 10 Unities + Antwort hilfreich

Hallo,

hm.. wenn Du alle Blätter haben willst, würde ich über das
Translator AddIn gehen...

Siehe hierzu:
Beitrag

Den Namen baust du ja im Call- Befehl zusammen:

Code:
Call odoc.SaveAs(odest & "Blatt" & counter & ".dxf", True)

Wenn Du hier

Code:
& "Blatt"
entfernst kommt dann die laufende Nummerierung ohne "Blatt".
Die Anzahl der Blätter brauchst du für die schleife nicht.
Du durchläufst ja alle Blätter mit der For Each- Schleife.

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

themass
Mitglied


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

Beiträge: 6
Registriert: 19.02.2013

Inv2014SP1, Win7ProSP1

erstellt am: 26. Feb. 2013 07:47    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

Hier noch mal mein angepasster Code.
Der legt die Zeichnungen als dwfx in einer Datei ab und vereinzelt die Blätter als pdf und dxf.

Sub dxf_pdf_dwfx_export()

Dim AddIns As ApplicationAddIns
Set AddIns = ThisApplication.ApplicationAddIns

Dim oapp As Inventor.Application
Set oapp = ThisApplication
Dim odoc As Inventor.DrawingDocument
Dim osource As String
Dim odest As String

Dim DWFAddIn As TranslatorAddIn
Dim i As Integer
For i = 1 To AddIns.Count
If AddIns(i).AddInType = kTranslationApplicationAddIn Then
If AddIns(i).ClassIdString = "{0AC6FD95-2F4D-42CE-8BE0-8AEA580399E4}" Then
Set DWFAddIn = AddIns.Item(i)
Exit For
End If
End If
Next i

Dim oDocument As Document
Set oDocument = ThisApplication.ActiveDocument

Dim oContext As TranslationContext
Set oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = kFileBrowseIOMechanism

Dim oOptions As NameValueMap
Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap

Dim oDataMedium As DataMedium
Set oDataMedium = ThisApplication.TransientObjects.CreateDataMedium


If oapp.ActiveDocument Is Nothing Then
    Exit Sub
End If

If oapp.ActiveDocumentType <> kDrawingDocumentObject Then
    Exit Sub
End If

Set odoc = oapp.ActiveDocument
osource = odoc.FullFileName
odest = Left(osource, Len(osource) - 4)


Dim osheet As Inventor.Sheet
Dim counter As String
Dim zaehler As String

zaehler = 0
counter = 1

For Each osheet In odoc.Sheets
osheet.Activate
zaehler = zaehler + 1
Next

If zaehler = 1 Then
    Call odoc.SaveAs(odest & ".dxf", True)
    Call odoc.SaveAs(odest & ".pdf", True)
    'Call odoc.SaveAs(odest & ".dwfx", True)
   
Exit Sub
End If

For Each osheet In odoc.Sheets
osheet.Activate
Call odoc.SaveAs(odest & "_Blatt_" & counter & ".dxf", True)
Call odoc.SaveAs(odest & "_Blatt_" & counter & ".pdf", True)
'Call odoc.SaveAs(odest & "_Blatt_" & counter & ".dwfx", True)
counter = counter + 1
Next
' Check whether the translator has 'SaveCopyAs' options
        If DWFAddIn.HasSaveCopyAsOptions(oDataMedium, oContext, oOptions) Then
        oOptions.Value("Launch_Viewer") = 0
' Other options...
'oOptions.Value("Publish_Component_Props") = 0
'oOptions.Value("Publish_Mass_Props") = 0
'oOptions.Value("Password") = 0
            If TypeOf oDocument Is DrawingDocument Then
' Drawing options
            oOptions.Value("Publish_All_Sheets") = 1
            End If
        End If
oDataMedium.FileName = Replace(odoc.FullFileName, Right(odoc.FullFileName, 3), "dwfx")
Call DWFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)

End Sub

Wenn es noch irgendwo besser geht, bin ich für Anregungen jeder Zeit offen.
Danke

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

themass
Mitglied


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

Beiträge: 6
Registriert: 19.02.2013

Inv2014SP1, Win7ProSP1

erstellt am: 01. Okt. 2013 12:43    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

Ich hoffe mir kann jemand helfen.
Wir haben in der Firma alle Inventorinstallationen auf 2014 umgestellt.
Nun wollte ich mein Makro zur Ausgabe der dxf, pdf unf dwfx übertragen.
Leider bricht die Ausführung mit Laufzeitfehler 5 in der Zeile

......
If oapp.ActiveDocumentType <> kDrawingDocumentObject Then
    Exit Sub
End If

Set odoc = oapp.ActiveDocument
osource = odoc.FullFileName
odest = Left(osource, Len(osource) - 4)

Dim osheet As Inventor.Sheet
.....

ab.
Irgendwie bin ich mit meinem Latein am Ende.
Ich hoffe mir kann jemand einen Tipp geben.
Danke

[Diese Nachricht wurde von themass am 01. Okt. 2013 editiert.]

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: 01. Okt. 2013 15: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 Nur für themass 10 Unities + Antwort hilfreich

Hallo

Wurde die Datei vorher gespeichert? Sonst ist FullFileName leer und es kracht. Setz mal einen Haltepunkt auf die Zeile mit dem Fehler und schau dir den Inhalt von osource an.

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

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

themass
Mitglied


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

Beiträge: 6
Registriert: 19.02.2013

Inv2014SP1, Win7ProSP1

erstellt am: 01. Okt. 2013 16:02    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

Oh Mannnnnn 
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Ich hatte die Datei nicht gespeichert.
Und dann ist natürlich klar, dass er keinen Dateinamen findet.
Danke für den Hinweis.

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

Pie2909
Mitglied


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

Beiträge: 4
Registriert: 01.03.2019

Inventor 2019

erstellt am: 01. Mrz. 2019 16:38    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 themass 10 Unities + Antwort hilfreich

Hi bin neu hier.
Der Code find ich super nur hab ich das problem das ich mit vielen IParts arbeite und dadurch Zeichnungen mit mehreren Blätter habe ist es möglich den Speichernamen nicht als FullPartName sondern als Bauteilnummer zu speichern?

Für eure Hilfe bedanke ich mich schon mal.

Grüße Piero


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

Meierjo
Mitglied



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

Beiträge: 358
Registriert: 20.08.2003

erstellt am: 01. Mrz. 2019 19:13    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 themass 10 Unities + Antwort hilfreich

Hall0 Pie2909

Wie willst du denn in einer IDW die Bauteilnummer abfragen?? Der Zeichnungsname muss ja nicht zwigend mit dem Bauteilnamen identisch sein.
Oder hast du pro IPart ein einzelnes Blatt??

Kannst du mal ein Beispiel hochladen?
Gruss

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

Pie2909
Mitglied


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

Beiträge: 4
Registriert: 01.03.2019

Inventor 2019

erstellt am: 02. Mrz. 2019 11:33    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 themass 10 Unities + Antwort hilfreich

Hi Meierjo,

Vielen Dank für deine schnelle Antwort.
Also ich bin leider nicht im Büro daher kann ich keine Datei hoch laden.
Also jedes Blatt hat eine andere IPart Datei und jede hat eine eigene Bauteilnummer
Wenn ich das vorhandene Makro ausführe bei mehreren Blätter wird jede pdf mit dem Dateinamen und Blattnummer abgespeichert das ist halt etwas aufwendig jeden Dateinamen zu ändern.
Kannst du mir helfen den speichernamen aus jedem Blatt (bauteilnummer) zu nutzen ?

Grüße

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

Meierjo
Mitglied



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

Beiträge: 358
Registriert: 20.08.2003

erstellt am: 02. Mrz. 2019 14:26    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 themass 10 Unities + Antwort hilfreich

Hallo

Sorry, da steig ich nicht durch.
Eine IDW hat eine eigene Bezeichnung! Egal, was für ein Bauteil du da drin abbildest.
Können ja auch mehrere Ansichten von verschiedenen Bauteilen oder gar Bauteilen und Baugruppen drin sein.

Ohne zu wissen, wie eure Zeichnungen organisiert sind, und wo du den Bauteilnamen her holen willst, kann ich da nichts machen

Gruss

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

RolandD
Mitglied



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

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: 02. Mrz. 2019 18: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 themass 10 Unities + Antwort hilfreich

Hallo Pie2909,

du musst jedes Blatt der IDW einzeln nacheinander bearbeiten:
- Erstansicht des Blattes ermitteln,
- dargestellte Komponente der Erstansicht (IPT) und deren Bauteilnummer ermitteln.
- daraus den Dateinamen mit Pfad und .PDF bilden
- nur dieses eine Blatt als PDF ausgeben.
- Wenn Du DXF und DWFX brauchst, dann eben auch dieses Blatt entsprechend ausgeben.
Danach das nächste Blatt der IDW, bis alle fertig sind.

 

------------------
Gruß Roland

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

Meierjo
Mitglied



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

Beiträge: 358
Registriert: 20.08.2003

erstellt am: 02. Mrz. 2019 20: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 Nur für themass 10 Unities + Antwort hilfreich

Hallo

Probier mal diesen Code

Code:
Sub dxf_pdf_dwfx_export()

Dim AddIns As ApplicationAddIns
Set AddIns = ThisApplication.ApplicationAddIns

Dim oapp As Inventor.Application
Set oapp = ThisApplication
Dim odoc As Inventor.DrawingDocument
Dim osource As String
Dim odest As String

Dim DWFAddIn As TranslatorAddIn
Dim i As Integer
For i = 1 To AddIns.Count
If AddIns(i).AddInType = kTranslationApplicationAddIn Then
If AddIns(i).ClassIdString = "{0AC6FD95-2F4D-42CE-8BE0-8AEA580399E4}" Then
Set DWFAddIn = AddIns.Item(i)
Exit For
End If
End If
Next i

Dim oDocument As Document
Set oDocument = ThisApplication.ActiveDocument

Dim oContext As TranslationContext
Set oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = kFileBrowseIOMechanism

Dim oOptions As NameValueMap
Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap

Dim oDataMedium As DataMedium
Set oDataMedium = ThisApplication.TransientObjects.CreateDataMedium


If oapp.ActiveDocument Is Nothing Then
    Exit Sub
End If

If oapp.ActiveDocumentType <> kDrawingDocumentObject Then
    Exit Sub
End If

Set odoc = oapp.ActiveDocument
osource = odoc.FullFileName
odest = Left(osource, Len(osource) - 4)


Dim osheet As Inventor.Sheet
Dim counter As String
Dim zaehler As String

zaehler = 0
counter = 1

For Each osheet In odoc.Sheets
osheet.Activate
zaehler = zaehler + 1
Next

If zaehler = 1 Then
    Call odoc.SaveAs(odest & ".dxf", True)
    Call odoc.SaveAs(odest & ".pdf", True)
    'Call odoc.SaveAs(odest & ".dwfx", True)
   
Exit Sub
End If

For Each osheet In odoc.Sheets
osheet.Activate
'odest = Left(osheet.DrawingViews(1).ActiveMemberName, Len(osheet.DrawingViews(1).ActiveMemberName) - 4)
odest = Left(osource, InStrRev(osource, "\", -1, vbTextCompare)) & osheet.DrawingViews(1).ActiveMemberName
'Call odoc.SaveAs(odest & "_Blatt_" & counter & ".dxf", True)
Call odoc.SaveAs(odest & ".dxf", True)
'Call odoc.SaveAs(odest & "_Blatt_" & counter & ".pdf", True)
Call odoc.SaveAs(odest & ".pdf", True)
'Call odoc.SaveAs(odest & "_Blatt_" & counter & ".dwfx", True)
counter = counter + 1
Next
' Check whether the translator has 'SaveCopyAs' options
        If DWFAddIn.HasSaveCopyAsOptions(oDataMedium, oContext, oOptions) Then
        oOptions.Value("Launch_Viewer") = 0
' Other options...
'oOptions.Value("Publish_Component_Props") = 0
'oOptions.Value("Publish_Mass_Props") = 0
'oOptions.Value("Password") = 0
            If TypeOf oDocument Is DrawingDocument Then
' Drawing options
            oOptions.Value("Publish_All_Sheets") = 1
            End If
        End If
oDataMedium.FileName = Replace(odoc.FullFileName, Right(odoc.FullFileName, 3), "dwfx")
Call DWFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)

End Sub


Wobei ich glaube, die Schleife für die Dxf Files müsste Nichtsein, da der Inventor bei mehreren Blättern sowieso pro Blatt ein Dxf erstellt

Gruss

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

Meierjo
Mitglied



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

Beiträge: 358
Registriert: 20.08.2003

Windows 10 Prof 64 Bit
Inventor Prof 2021
Vault Basic 2021

erstellt am: 02. Mrz. 2019 20: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 Nur für themass 10 Unities + Antwort hilfreich

Hallo

Probier mal diesen Code

Code:
Sub dxf_pdf_dwfx_export()

Dim AddIns As ApplicationAddIns
Set AddIns = ThisApplication.ApplicationAddIns

Dim oapp As Inventor.Application
Set oapp = ThisApplication
Dim odoc As Inventor.DrawingDocument
Dim osource As String
Dim odest As String

Dim DWFAddIn As TranslatorAddIn
Dim i As Integer
For i = 1 To AddIns.Count
If AddIns(i).AddInType = kTranslationApplicationAddIn Then
If AddIns(i).ClassIdString = "{0AC6FD95-2F4D-42CE-8BE0-8AEA580399E4}" Then
Set DWFAddIn = AddIns.Item(i)
Exit For
End If
End If
Next i

Dim oDocument As Document
Set oDocument = ThisApplication.ActiveDocument

Dim oContext As TranslationContext
Set oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = kFileBrowseIOMechanism

Dim oOptions As NameValueMap
Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap

Dim oDataMedium As DataMedium
Set oDataMedium = ThisApplication.TransientObjects.CreateDataMedium


If oapp.ActiveDocument Is Nothing Then
    Exit Sub
End If

If oapp.ActiveDocumentType <> kDrawingDocumentObject Then
    Exit Sub
End If

Set odoc = oapp.ActiveDocument
osource = odoc.FullFileName
odest = Left(osource, Len(osource) - 4)


Dim osheet As Inventor.Sheet
Dim counter As String
Dim zaehler As String

zaehler = 0
counter = 1

For Each osheet In odoc.Sheets
osheet.Activate
zaehler = zaehler + 1
Next

If zaehler = 1 Then
    Call odoc.SaveAs(odest & ".dxf", True)
    Call odoc.SaveAs(odest & ".pdf", True)
    'Call odoc.SaveAs(odest & ".dwfx", True)
   
Exit Sub
End If

For Each osheet In odoc.Sheets
osheet.Activate
'odest = Left(osheet.DrawingViews(1).ActiveMemberName, Len(osheet.DrawingViews(1).ActiveMemberName) - 4)
odest = Left(osource, InStrRev(osource, "\", -1, vbTextCompare)) & osheet.DrawingViews(1).ActiveMemberName
'Call odoc.SaveAs(odest & "_Blatt_" & counter & ".dxf", True)
Call odoc.SaveAs(odest & ".dxf", True)
'Call odoc.SaveAs(odest & "_Blatt_" & counter & ".pdf", True)
Call odoc.SaveAs(odest & ".pdf", True)
'Call odoc.SaveAs(odest & "_Blatt_" & counter & ".dwfx", True)
counter = counter + 1
Next
' Check whether the translator has 'SaveCopyAs' options
        If DWFAddIn.HasSaveCopyAsOptions(oDataMedium, oContext, oOptions) Then
        oOptions.Value("Launch_Viewer") = 0
' Other options...
'oOptions.Value("Publish_Component_Props") = 0
'oOptions.Value("Publish_Mass_Props") = 0
'oOptions.Value("Password") = 0
            If TypeOf oDocument Is DrawingDocument Then
' Drawing options
            oOptions.Value("Publish_All_Sheets") = 1
            End If
        End If
oDataMedium.FileName = Replace(odoc.FullFileName, Right(odoc.FullFileName, 3), "dwfx")
Call DWFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)

End Sub


Wobei ich glaube, die Schleife für die Dxf Files müsste nicht sein, da der Inventor bei mehreren Blättern sowieso pro Blatt ein Dxf erstellt

Gruss

[Diese Nachricht wurde von Meierjo am 02. Mrz. 2019 editiert.]

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

Pie2909
Mitglied


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

Beiträge: 4
Registriert: 01.03.2019

Inventor 2019

erstellt am: 04. Mrz. 2019 07:56    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 themass 10 Unities + Antwort hilfreich


T2-OT-100xXXXXxXX-XXX.idw


T2-OT-100xXXXXxXX-XXX.ipt

 
Guten MorgenMeierjo,

vvielen Dank für deinen Code leider hat das nicht so geklappt.
Anbei die IDW Datei.

Ich möchte eigentlich nur die PDF erzeugen.
ERklärung:
Geöffnete und abgespeicherte IDW mit mehreren Blätter soll als PDF abgespeichert werden der Name soll aus jedem Blatt seperat heraus genommen werden da ich mit Iparts arbeite habe ich im IProperties jede Variante einen eigenen Namen vergeben PartName (Bauteilnummer)
Dieser sollte dann als Dateinamen abgespeichert werden.

Ich hoffe ich habe mich besser ausgedrückt als davor 

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

Meierjo
Mitglied



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

Beiträge: 358
Registriert: 20.08.2003

erstellt am: 04. Mrz. 2019 13:55    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 themass 10 Unities + Antwort hilfreich


Varianten.png


PDFS.png

 
Hallo

Also, bei mir erstellt er pro Blatt eine PDF anhand der Varianten-Nummer

Was passt nicht??

Gruss

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



Mitarbeiter für die Arbeitsvorbereitung (m/w/d)

Die Firma abopart ist einer der führenden Hersteller von mobilen Trennwänden in Deutschland. Sie beschäftigt ca. 80 Mitarbeiter am Standort Bad Zwischenahn bei Oldenburg (Oldb.). Der Einsatzbereich von Mobilwänden ist überall dort sinnvoll, wo flexible Raumlösungen benötigt werden wie z.B. in Hotels, Gemeindehäusern, Mehrzweckhallen, Kirchen, Casinos, Industriegebäuden, Versammlungs- und Besprechungsräumen....

Anzeige ansehenFertigung, Produktion
Pie2909
Mitglied


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

Beiträge: 4
Registriert: 01.03.2019

Inventor 2019

erstellt am: 04. Mrz. 2019 15:48    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 themass 10 Unities + Antwort hilfreich

Hi Meierjo,

habs eben nochmal versucht und funktioniert einwandfrei 

Vielen Dank!!!!

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