Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  .dwf-save as-options - Zugriff per VBA?

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:  .dwf-save as-options - Zugriff per VBA? (2183 mal gelesen)
Bigles2
Mitglied
CAD Designer

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

Beiträge: 6
Registriert: 28.06.2010

erstellt am: 13. Aug. 2010 17:04    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 zusammen!

Ich habe eine Frage bezüglich dwf.-Erstellung per VBA. Wie man als .dwf speichert ist mir klar und man findet beliebig viele Beispiele im Web. Gibt es aber die Möglichkeit, dass man per Makro auch auf die Optionen zugreifen kann, bzw. diese verändern? Mein Makro speichert nämlich nur die erste Seite meines DWF's; was aber wenn ich mehrer Seiten habe? (Manuell würde ich das über "Save copy as, options, drawing, alle seiten markieren, publish" erstellen.)

Vielen Dank schon im voraus und einen schönen Tag!
Bigles

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: 15. Aug. 2010 14:36    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 Bigles2 10 Unities + Antwort hilfreich

Hallo

Die Optionen werden über eine NameValueMap übergeben.

Code:

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

oOptions.Value("Publish_All_Sheets") = 1

Call DWFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)


Hab's auf den betreffenden Teil zusammengekürzt. Das volle Beispiel steht in der Programmierhilfe unter "TranslatorAddIn.SaveCopyAs Method".

------------------
MfG
RK

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

Bigles2
Mitglied
CAD Designer

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

Beiträge: 6
Registriert: 28.06.2010

erstellt am: 16. Aug. 2010 17: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

Awesome!! Vielen Dank! Ich konnte es zwar nicht direkt verwenden, war aber in der Lage mit dem Codeschnipsel mit Hilfe von Google das Gesuchte zu finden.
danke/gruss Bigles

Für alle die das gleiche Problem haben wie ich hatte, hier wäre der Code (funktioniert mind. auf Inventor 2011):

Public Sub PublishDWF()
'Set a reference to the AddIns collection
Dim AddIns As ApplicationAddIns
Set AddIns = ThisApplication.ApplicationAddIns

'Get the DWF translator AddIn
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

'Set a reference to the active document (the document to be published).
Dim oDocument As Document
Set oDocument = ThisApplication.ActiveDocument

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

' Create a NameValueMap object
Dim oOptions As NameValueMap
Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap

' Create a DataMedium object
Dim oDataMedium As DataMedium
Set oDataMedium = ThisApplication.TransientObjects.CreateDataMedium

' Check whether the translator has 'SaveCopyAs' options
If DWFAddIn.HasSaveCopyAsOptions(oDataMedium, oContext, oOptions) Then

oOptions.Value("Launch_Viewer") = 1

' 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") = 0

' The specified sheets will be ignored if
' the option "Publish_All_Sheets" is True (1)
Dim oSheets As NameValueMap
Set oSheets = ThisApplication.TransientObjects.CreateNameValueMap

' Publish the first sheet AND its 3D model
Dim oSheet1Options As NameValueMap
Set oSheet1Options = ThisApplication.TransientObjects.CreateNameValueMap

oSheet1Options.Add "Name", "Sheet:1"
oSheet1Options.Add "3DModel", True

oSheets.Value("Sheet1") = oSheet1Options

' Publish the third sheet but NOT its 3D model
Dim oSheet3Options As NameValueMap
Set oSheet3Options = ThisApplication.TransientObjects.CreateNameValueMap

oSheet3Options.Add "Name", "Sheet:3"
oSheet3Options.Add "3DModel", False

oSheets.Value("Sheet2") = oSheet3Options

'Set the sheet options object in the oOptions NameValueMap
oOptions.Value("Sheets") = oSheets
End If

End If

'Set the destination file name
oDataMedium.FileName = "c:\temp\test.dwf"

'Publish document.
Call DWFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
End Sub

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