Feste seitliche Anzeige einer entfalteten MEP

Hallo
Ich möchte einer Anfrage aus unseren Ordnern folgen, eines unserer Makros zu ändern, um den Schnitt- + Faltplan zu erstellen, über Vba eine Anmerkung hinzufügen, die die feste Seite eines abgewickelten auf MEP angibt.
Die manuelle Methode, um diese Fläche zu verkleiden:
image
image

Aus einem Raum gelingt es mir, dieses Gesicht in einer Auswahl mit diesem Code abzurufen:

Option Explicit
Dim swApp                   As SldWorks.SldWorks
Dim swModel                 As ModelDoc2
Dim selManager              As SldWorks.SelectionMgr
Dim swFeat                  As SldWorks.Feature
Dim swFlatPatt              As SldWorks.FlatPatternFeatureData
Dim lErrors                 As Long
Dim lWarnings               As Long
Dim bRet                    As Boolean


Sub main()

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set selManager = swModel.SelectionManager

'********************************************************************************    
'A modifier pour sélectionner depuis une MEP au lieu de depuis la pièce
'******************************************************************************** 

    If (swModel.GetType <> swDocPART) Then
        MsgBox "Merci d'ouvrir une pièce de tôlerie avant de relancer!"
        Exit Sub
    End If
    
    'On lance la fonction pour afficher la face fixe (= côté protection PVC)
    get_fixed_face
    
    Dim swFace1 As Face2
    Dim reponse As Integer
    
    reponse = MsgBox("Voulez vous sélectionner une autre face protégée (film PVC) pour la pièce de tôlerie?" + Chr(10) + "Si oui merci de sélectionner une nouvelle face une fois cette fenêtre fermé.", vbQuestion + vbYesNo + vbDefaultButton1, "Selection de la face protéger (PVC)")
    If reponse = vbNo Then
        'On descend la barre
        swFlatPatt.ReleaseSelectionAccess
        Exit Sub
    Else
    'On descend la barre
    swFlatPatt.ReleaseSelectionAccess
    End If
    
    Do While swFace1 Is Nothing
        Set swFace1 = selManager.GetSelectedObject6(1, -1)
        DoEvents
    Loop
   
    'On lance les 2 fonctions imbriquées
    set_fixed_face get_flat_feature(swFace1.GetBody), swFace1
    
    'On sauvegarde les changements
     bRet = swModel.Save3(swSaveAsOptions_Silent, lErrors, lWarnings)
    
End Sub
Public Function get_flat_feature(bod As Body2) As Feature
    Dim featurmgr As FeatureManager
    Set featurmgr = swModel.FeatureManager
    Dim flatpaternfolder As FlatPatternFolder
    Set flatpaternfolder = featurmgr.GetFlatPatternFolder()
    Dim flatfeatures As Variant
    flatfeatures = flatpaternfolder.GetFlatPatterns()
    Dim sFlatPatternFeatureData As FlatPatternFeatureData
    Dim face As Face2
    Dim feat As Variant
    For Each feat In flatfeatures
        Set sFlatPatternFeatureData = feat.GetDefinition()
        Set face = sFlatPatternFeatureData.FixedFace2
        If face.GetBody.Name = bod.Name Then
            Set get_flat_feature = feat
            Exit Function
        End If
    Next
End Function

Public Sub set_fixed_face(feat As Feature, face As Face2)
    Dim sFlatPatternFeatureData As FlatPatternFeatureData
    Set sFlatPatternFeatureData = feat.GetDefinition()
    sFlatPatternFeatureData.AccessSelections swModel, Nothing
    sFlatPatternFeatureData.FixedFace2 = face
    feat.ModifyDefinition sFlatPatternFeatureData, swModel, Nothing
End Sub



Public Function get_fixed_face()

    Set swFeat = swModel.FirstFeature               'Va au 1er feature dans la pièce.
    'Tourne jusqu'à trouver un feature 'FlatPattern'.
    Do Until swFeat Is Nothing
        'On vérifie si le feature est 'FlatPattern' ou pas.
        Debug.Print "Type name:" & swFeat.GetTypeName
        Debug.Print "Name:" & swFeat.Name
        If swFeat.GetTypeName = "FlatPattern" Then
        
            Dim swFixedFace             As SldWorks.Face2
            Dim selectData              As SldWorks.selectData


            Set swFlatPatt = swFeat.GetDefinition
            bRet = swFlatPatt.AccessSelections(swModel, Nothing)
            Set swFixedFace = swFlatPatt.FixedFace2
            bRet = swFixedFace.Select4(True, selectData)

           '********************************************************************************  
           'Depuis cette sélection ajout d'une annotation sur la face sélectionné avec texte face fixe
           '********************************************************************************  
            
            Exit Function

        Else
        
        End If

        Set swFeat = swFeat.GetNextFeature          'Va au feature suivant.
    Loop

End Function


Haben Sie eine Idee, wie Sie:
1-Starten Sie das Makro von einer MEP aus statt aus dem Raum
2-Fügen Sie die Anmerkung auf der ausgewählten Seite hinzu (feste Seite)

Punkt 1 scheint mir machbar, Punkt 2 Ich sehe nicht wirklich, welche Funktion ich verwenden soll und einige Ideen wären willkommen!

Vielen Dank im Voraus

Bonjour
Peut-être jouer avec ces deux macros:
Beispiel für die Auswahl eines Objekts in der Zeichnungsansicht (VBA) - 2024 - SOLIDWORKS API-Hilfe
Beispiel zum Erstellen eines Layers für eine ausgewählte Ansicht (VBA) - 2024 - SOLIDWORKS API-Hilfe

1 „Gefällt mir“

Hallo
Ich sehe nicht wirklich den Grund für diese Anfrage aus Ihrem Ordner :thinking:

1 „Gefällt mir“

Hallo;

Ich stimme @Le_Bidule zu, die Anfrage ist merkwürdig in dem Sinne, dass... Naja... ", das ist schließlich ihr Job." 
Außerdem geben wir bei uns nicht mehr das " entfaltet " (oder mit dem Vermerk " Nur zur Information " ") an.
Abhängig von den Biegewinkeln, den Dicken, dem Material, dem Kesselmacher/Biegeer, dem Biegematerial, den Biegegewohnheiten... Das sind zu viele Variablen, die wir nicht kontrollieren können.
Wir geben ihnen eine Zeichnung des " fertigen Produkts" und 3D für diejenigen, die es anfordern, aber das war's.
Bei " Unfolding " sind es unsere Lieferanten, die das managen.

5 „Gefällt mir“

Vielleicht eine CNC-Presse, die eine feste Fläche für den Gcode benötigt? :thinking:

1 „Gefällt mir“

Ich hatte die Gelegenheit, seine handgemachte Zeichnung mit einer Kesselmacherin und einer von SolidWorks und Catia erstellten Zeichnung zu vergleichen. Das Ergebnis war auf der CAD-Seite falsch. Danach, je nachdem, was Sie verlangen und wie komplex das Teil ist...

1 „Gefällt mir“

@Le_Bidule @Maclane @Scofield : Der Grund dafür ist, dass die feste Seite die geschützte Seite ist (kaltgewalztes Edelstahlblech mit Kunststoffschutzfolie)
Die feste Seite ist also die geschützte Seite.
Das Ziel ist es daher, es anzuzeigen, um sicher zu sein, dass die geschützte Seite tatsächlich die auf dem Plan angegebene ist (wir machen manchmal einen Fehler in der entfalteten Ansicht, trotz eines Makros, um die Fläche auszuwählen.
@Maclane @FRED78 : Ansonsten erfolgt das Schneiden und Falten im eigenen Haus, die ungefalteten werden mit unseren Werten der Verluste an den Falten hergestellt, also keine Fehler beim Pressen, es ist fair!

1 „Gefällt mir“

Hallo @sbadenis, wir machen auch alles im eigenen Haus und der DXF (oder DWG) wird auf der entfalteten Seite ausgeführt, was sicherstellt, dass das Bürsten, der Schutz oder eine andere Reißplatte, das Schachbrett, die gewünschte Seite gut oben ist. Natürlich mit den richtigen Hinweisen auf das MEP. Wir sind keine Fans von Makros, systematische Selbstkontrolle verpflichtet, dadurch können NCs vermieden werden.
Andere Angaben, an die wir nicht immer denken, sind die Richtung des Bürstens und die Richtung des Walzens (Draht), die zum Beispiel für Aluminium nützlich sind.

1 „Gefällt mir“

@sbadenis
Ja, die Verlustwerte an den Falten sind nicht zu vernachlässigen, standardmäßig ist es nicht das Beste, was ich verstehe, nach einem Test, der mit einem Kesselmacher durchgeführt wurde.

Für jedes Trio aus Dicke/Material/Abkantpresse ve müssen Tabellen über das verwendete Material entwickelt/erprobt werden, die von SW verwendet werden. So sind die digitalen Entwicklungen präzise und entsprechen dem Endprodukt. Die Entwicklung ist etwas langwierig, aber sie ist zuverlässig.
Wenn es sich um einen Unterauftrag handelt, ist es besser, dem F/T das digitale Modell und den bemaßten Plan des herzustellenden Teils zu übergeben.
Um Ihnen zu antworten, ja " es ist nicht das Beste ", wenn es nicht gut gemacht ist.

1 „Gefällt mir“