PDF-Registrierung

Hallo
Ich möchte eine PDF-Aufzeichnung meiner Zeichnungen in einem definierten Ordner mit einer Formatierung erstellen, die durch die Zeichnungsinformationen definiert ist

Beispiel: Noirmoutier - Bonnotte - MP - Ind C - Datum

fett gedruckt, was ich in Solidworks ausfülle, und kursiv, was hinzugefügt werden soll

In jeder Zeichnung, die ich mache, habe ich die folgenden Eigenschaften auszufüllen :

Name der Eigenschaft
C-Index              
Stadt                  Noirmoutier
Rue/Quartier    Bonnotte

und ich speichere es für den Moment in einem Ordner auf meinem PC "D:\Downloads\PDF Plan\___.PDF".

Wenn es später möglich ist, sollte ich diesen Ordner durch einen Ordner des zukünftigen Remote-Servers ersetzen (wahrscheinlich mit einem VPN) 

Hier ist für jetzt ein sehr einfaches Makro, das ich geschafft habe (ein Wunder, dass es funktioniert, lol)
Können Sie mir helfen, dieses Makro zu schreiben?

Zu Ihrer Information, ich muss alle Blätter meiner Zeichnung speichern, also normalerweise zwischen 4 und 8 Blatt in derselben Datei

Vielen Dank im Voraus

' ******************************************************************************
' C:\Users\Proprietaire\AppData\Local\Temp\swx1544\Macro1.swb - macro recorded on 11/17/17 by Proprietaire
' ******************************************************************************
Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized

' Save As
longstatus = Part.SaveAs3("D:\Téléchargements\Plan PDF\MP.PDF", 0, 0)
End Sub


 


ext_to_pdf.swp

Sehen Sie sich diesen Beitrag gleich unten an!

http://www.lynkoa.com/forum/mise-en-plan/macro-pdf-enregistrer-sous

3 „Gefällt mir“

Um Ihre Suche zu verkürzen, kann hier das entsprechende Makro sein.

Cdt

 

Makro:

Dim swApp               As Object Dim Part                
As SldWorks.ModelDoc2
Dim swView              As SldWorks.View
Dim swModExt            As SldWorks.ModelDocExtension
Dim Prop                As SldWorks.CustomPropertyManager
Dim swExportPDFData     As SldWorks.ExportPdfData
Dim boolstatus          As Boolean
Dim swModel             As SldWorks.ModelDoc2
Dim swPathName          As String
Dim swPath As String
Dim swName                            As String
Dim ValOut              As String Dim Dim
Att                 As String
Dim OldAtt              As String
Dim iAtt                As Integer
Dim Errors As Long
Dim Warnings                          As Long
Dim oFSO                As Scripting.FileSystemObject
Dim oFld                As Folder
Const swDocDRAWING = 3

Sub main()

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc 'Associates Part To The Document In Progress
Set oFSO = New Scripting.FileSystemObject


If Part.GetType = swDocDRAWING Then 'verif type document

    Set swModExt = Part.Extension
    Set Prop = swModExt.CustomPropertyManager("")
    iRet = Prop.Set("Bon_Pour", " ")
    
    Part.ForceRebuild3 True

    Set swView = Part.GetFirstView
    ' die erste Ansicht ist das Blatt, geht weiter zur nächsten
    Set swView = swView.GetNextView
    ' Abrufen des Teils
    Set swModel = swView.ReferencedDocument
    Set swModExt = swModel.Extension
    ' Zuweisen von "Hint" zu " att"
    Set prop = swModExt.CustomPropertyManager("")
    boolstatus = Prop.Get3("Hint", false, ValOut, att)
    if att = " " then att = """
    
    full path
    recovery swPathName = Part.GetPathName
    if swPathName = "" then
        swApp.SendMsgToUser ("Die Zeichnungsdatei wird nicht gespeichert, bitte machen Sie es und beginnen Sie von vorne")Beenden
        Sie Sub
    End If
    
    Zuweisen des Ordnerspeicherorts
    swPath = Left(swPathName, InStrRev(swPathName, "FABRICATION", , 1))swPath
    = swPath & "C:\... "
    
    'Überprüfen des Vorhandenseins des Pfads swPath
    If oFSO.FolderExists(swPath) = False Then
        swApp.SendMsgToUser ("Registrierungsfehler: Überprüfen Sie, ob das Verzeichnis vorhanden ist: '" & swPath + "'")
        Exit Sub
    End If
    
    ' Abrufen des Namens
    swName = Right(swPathName, Len(swPathName) - InStrRev(swPathName, "\"))swName
    = Left(swName, InStrRev(swName, ".") - 1)
    
    swPathName = swPath + swName
    
    ' Abrufen des vorherigen Hinweises
    If Att = "A" Then
        OldAtt = ""
    ElseIf Att = "" Then
        OldAtt = ""Else
    
        iAtt = Asc(Att)
        iAtt = iAtt - 1
        OldAtt = Chr(iAtt)
    End If
    
suite:
    
    'record dxf
    'swPathName = swPathName & Att + ".dxf" ' add .dxf"
    'Set swModExt = Part.Extension
    'Part.ViewZoomtofit2
    'boolstatus = swModExt.SaveAs(swPathName, 0, 0, swExportPDFData, Fehler, Warnungen) 'Speichern als dxf
    
    ' pdf
    record swPathName = swPath + swName
    swPathName = swPathName & Att + ".pdf" ' add .pdf"
    Set swModExt = Part.Extension
    Part.ViewZoomtofit2
    boolstatus = swModExt.SaveAs(swPathName, 0, 0, swExportPDFData, Fehler, Warnungen) 'Als PDF

    
    
    speichernAnsonsten: swApp.SendMsgToUser ("Dieses Makro funktioniert nur mit einem Plan")
    
End If

Fin:
    
End Sub
2 „Gefällt mir“

Hallo

Was den Beitrag http://www.lynkoa.com/forum/mise-en-plan/macro-pdf-enregistrer-sous betrifft, sollten Sie in der Lage sein, mit dem angehängten Makro zu beginnen.

Wenn Sie den Zielordner nicht auswählen, sondern im Code definieren möchten, können Sie die Zeilen löschen:

Set objShell = Neue Shell
Set objFolder = objShell.BrowseForFolder(0, "Bitte wählen Sie den Zielordner für PDF-Dateien aus.", 0, 0)
if (not objFolder is nothing) dann

und das entsprechende End If

und legen Sie die Variable path wie folgt fest:

Pfad = "D:\Downloads\PDF-Plan"

Sie müssen auch die Zeilen ändern:

swCustProp.Get2 "Plannummer", valOut1, gelöstValOut1
swCustProp.Get2 "Ind1", valOut2, resolvedValOut2

, um den Namen Ihrer Variablen einzugeben, und fügen Sie natürlich eine weitere ähnliche Zeile hinzu, da Sie 3 Eigenschaften abrufen müssen.

Sie müssen auch die Zeile ändern:

nFileName = Pfad & "\" & aufgelöstValOut1 & "-" & gelöstValOut2 & "-" & swSheet.GetName & ".PDF"

, um es an die Dateinamen anzupassen, die Sie einfügen möchten.

Für das Datum müssen Sie das / durch ein anderes Zeichen ersetzen, da es sonst zu einem Problem im Dateinamen kommt, zum Beispiel:

Dim dateNow als String
dateNow = Ersetzen(Datum, "/", "-")

Und das ist also das dateNow, das in den Dateinamen eingefügt wurde.

Herzliche Grüße


macro_pdf_enregistrer_sous.swp

Hallo

Vielen Dank @sbadenis für Ihre Antwort, ich hatte sie gelesen. 

Vielen Dank @G. für Ihre Antwort, ich habe gestern versucht, 2 oder 3 Tricks zu ändern, um den Zielordner zu ändern, aber es hat nicht funktioniert

Vielen Dank @d.roger für Ihre Antwort. Ich probiere es morgen oder dieses Wochenende aus und werde mich bei Ihnen melden, um Ihnen zu sagen, was passiert.

Einen schönen Tag euch allen

Was gab es dann??? :)