Einstellbarer Puffer

Hallo

Ich suche nach einer Möglichkeit, bei der Erstellung unserer Pläne im PDF-Format einen Stempel zu setzen, aber mit spezifischen Daten für jede Konvertierung.

Das bedeutet, dass ich in der Lage sein möchte, ein Feld mit einem Text oder einer Zahl auszufüllen, und dass der Stempel diese Informationen enthält.

Hat das jemals jemand gemacht?

Hallo;

Wenn Sie diesen Stempel nur auf PDFs haben möchten, sehe ich nur ein Makro, um dies zu tun. (Ich habe diese Art von Makro im Moment nicht auf Lager, aber es scheint nicht allzu kompliziert zu sein.)

Andernfalls ist es möglich, die mit einer Eigenschaft verknüpften Anmerkungen oder einen Block zu durchlaufen, aber der Stempel wird in Solidworks und all Ihren Konvertierungen sichtbar sein. (PDF-Datei; DWG; dxf...) (es sei denn, wir schließen einen bestimmten Schlag ins Gesicht aus, in dem diese Anmerkung zu finden sein wird...)

3 „Gefällt mir“

Vielen Dank für Ihre Antwort,

Ich bin nicht an Makros gewöhnt und ich gebe zu, dass ich nicht weiß, wie man das macht. Ich werde versuchen, es herauszufinden.

Sie können dies per Makro tun, wie @MacLane Ihnen gerade erklärt haben.

Hier ist ein Beispiel für das Hinzufügen von Anmerkungen aus dem Makro, sie müssen weiterhin in PDF exportiert werden, ein Beispiel, das Sie leicht über eine Suche finden können.

Option Explicit

Dim swApp                       As SldWorks.SldWorks
Dim swModel                     As SldWorks.ModelDoc2
Dim swDraw                      As SldWorks.DrawingDoc
Dim swSketchBlockDef            As SldWorks.SketchBlockDefinition
Dim swBlockInst                 As SldWorks.SketchBlockInstance
Dim swSketchMgr                 As SldWorks.SketchManager
Dim swModelDocExt               As SldWorks.ModelDocExtension
Dim swSheet                     As SldWorks.Sheet
Dim mySheet                     As SldWorks.Sheet
Dim paperSize                   As swDwgPaperSizes_e
Dim myBlockDefinition           As Object
Dim vSheetNames                 As Variant
Dim bRet                        As Boolean
Dim i                           As Long
Dim swMathUtil                  As SldWorks.MathUtility
Dim swMathPoint                 As SldWorks.MathPoint
Dim width                       As Double
Dim height                      As Double
Dim nPt(2)                      As Double
Dim vPt                         As Variant
Dim posX                        As Double
Dim posY                        As Double
Dim nomDuBloc                   As String
Dim swTextFormat                As SldWorks.TextFormat
Public X                        As Double
Public Y                        As Double
Public str                      As String



 
Sub contactAlimentaire()
'On appelle la procédure et on place le texte comme argument
coordonnéeXY "Contact Alimentaire"
End Sub

Sub traçabilitéNuance()
'On appelle la procédure et on place le texte comme argument
coordonnéeXY "Traçabilité Nuance"
End Sub
Sub traçabilitéNuanceEtContactAlimentaire()
'On appelle la procédure et on place le texte comme argument
coordonnéeXY "Traçabilité Nuance" + Chr(10) + "Contact Alimentaire"
End Sub

Sub coordonnéeXY(str As String)
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swDraw = swModel
    Set swSheet = swDraw.GetCurrentSheet
    vSheetNames = swDraw.GetSheetNames

    
    For i = 0 To UBound(vSheetNames)

        posX = 0.065       'modifier ici le décalage en X par rapport à l'angle en haut à gauche
        posY = 0.015      'modifier ici le décalage en Y par rapport à l'angle en haut à gauche
        swDraw.ActivateSheet (vSheetNames(i))
        Set mySheet = swDraw.GetCurrentSheet
        paperSize = mySheet.GetSize(width, height)
        posX = width - posX
        posY = height - posY
        insertionNote swModel, posX, posY, str
        swDraw.GraphicsRedraw2
        
    Next i
    swDraw.ActivateSheet (swSheet.GetName)
End Sub

Sub insertionNote(swModel As ModelDoc2, X As Double, Y As Double, monBloc As String)
    Dim myNote As Note
    Dim myAnnotation As Annotation
    Dim swTextFormat As SldWorks.TextFormat
    Dim boolstatus As Boolean
    Set myNote = swModel.InsertNote(monBloc)
    If Not myNote Is Nothing Then
        boolstatus = myNote.SetBalloon(4, 0)
        Set myAnnotation = myNote.GetAnnotation()
        If Not myAnnotation Is Nothing Then
            boolstatus = myAnnotation.SetPosition(X, Y, 0)
            Set swTextFormat = myAnnotation.GetTextFormat(1)
            swTextFormat.CharHeight = 0.004
            swTextFormat.Bold = True
            swTextFormat.Italic = True
            boolstatus = myAnnotation.SetTextFormat(1, False, swTextFormat)
        End If
    End If
    ListeCalque swDraw, myAnnotation
End Sub

Sub ListeCalque(swModel As DrawingDoc, myAnnotation As Annotation)
    Dim swLayerMgr As SldWorks.LayerMgr
    Dim vLayerArr As Variant
    Dim vLayer As Variant
    Dim swLayer As SldWorks.Layer
    Dim noteLayer As Integer
    Dim layerExist As Boolean
    Set swLayerMgr = swModel.GetLayerManager
    vLayerArr = swLayerMgr.GetLayerList
    For Each vLayer In vLayerArr
        Set swLayer = swLayerMgr.GetLayer(vLayer)
        If swLayer.Name = "NotesRouge" Then
            layerExist = True
        Else
            layerExist = False
        End If
    Next
    If layerExist = True Then
        myAnnotation.Layer = "NotesRouge"
    Else
        noteLayer = swLayerMgr.AddLayer("NotesRouge", "Calque pour les notes rouge", RGB(255, 0, 0), 0, 0)
        myAnnotation.Layer = "NotesRouge"
    End If
End Sub

Eine andere Lösung ist in der Tat ein Eigentümerwechsel @Maclane.

Um dies zu tun, ist es für Sie am einfachsten, eine leere Eigenschaft in Ihrer Grundkarte zu erstellen, die Sie mit Integration (Visiative-Dienstprogramm, auf das Sie über Ihr Mycadservice-Abonnement zugreifen können)  gemäß einer möglichen Regel ändern und mit der Sie auch in pdf exportieren können, und dies ohne Kenntnisse der VBA-Sprache von Makros.

Darüber hinaus kann dieser Start über eine Dateiliste erfolgen

Hilfe bei der Integration:

https://help.visiativ.com/mycadtools/2020/fr/Integration.html

2 „Gefällt mir“

Hallo

Werden Ihre PDFs von einem EPDM-Auftrag generiert?
Wenn ja, gibt es im Dienstprogramm eine Option zum Hinzufügen eines Puffers

Hallo, vielen Dank für Ihre zusätzlichen Informationen.

Pierre S, ja, sie werden über eine Beize generiert und ja, Sie können einen Stempel hinzufügen, aber er müsste wie gewünscht konfigurierbar sein.