Makro zum Hinzufügen von Eigenschaften entsprechend der Blechdicke

Hallo ihr alle

Ich werde Hilfe brauchen, ich habe eine ganze Weile daran gearbeitet, ohne voranzukommen.

Ich möchte ein Makro erstellen, das die Eigenschaften der geschweißten Teileliste automatisch mit einigen spezifischen Eigenschaften füllt. Hier ist der Algorithmus, den ich mit dem Makro ausführen möchte.

- Erkennen Sie in der Liste der geschweißten Teile, bei denen es sich um Bleche handelt

- Wenn es sich um ein Blech handelt, stellen Sie die Dicke des Blechs und des Materials wieder her.

- Erstellen Sie zwei Eigenschaften "CODE" und "DETAIL", deren Werte je nach Dicke des Blechs und des Materials variieren (z.B. für ein 2mm Blech aus S235 Stahl: CODE = 02156 und DETAIL=Schwarzes Blech 2mm dick - für ein 5mm Blech aus Edelstahl: CODE = 02582 und DETAIL=Edelstahlblech  5mm dick.

Heute kann ich nur ein Makro erstellen, das diese Eigenschaften im ersten Artikel erstellt, aber ohne einen Variablenwert zuzuweisen (zusammenfassend kann ich nicht viel tun).

Ich weiß, ich frage viel, aber es würde mir viel Zeit sparen.

Danke im Voraus,

Moe

Zu Ihrer Information, ich bin immer noch bei SolidWorks 2012

2 „Gefällt mir“

Guten Abend, ohne das Makro wird es schwierig sein, es zu verbessern! Können Sie es bitte in einer Textdatei posten?

Aber ich denke, es wäre klüger, Ihre Probleme aufzuschlüsseln, indem Sie mehrere Fragen stellen: Es wird für alle klarer sein und Sie werden viel mehr Antworten haben, anstatt nach einem kompletten vorgefertigten Makro zu fragen!

Die erste Frage wäre:  Wie prüft man mit den SPS, ob es sich bei einem Teil um Blech handelt?

1 „Gefällt mir“

Hallo

Ja, senden Sie uns das bereits erstellte Makro, damit wir leichter führen können.

Und der Zweck des Forums ist es auch, viel zu verlangen und dann viel zu geben :)

Vielen Dank für Ihr Feedback.

Hier wird an dieser Stelle das Makro angehängt.

Der Mycad-Support hat mir gerade mitgeteilt, dass es nicht möglich ist, danach zu filtern, ob es sich um ein Blech oder ein mechanisch geschweißtes Element handelt. Aber ich denke, es muss möglich sein, nach einer anderen Eigenschaft zu filtern (Beispiel: Wenn Sie ein Blatt erstellen, erstellt SW eine "Folds"-Eigenschaft, die in anderen Fällen nicht erstellt wird).


20160125_-_copie.swp

Hallo

Ich versuche, genau das Gleiche zu tun.

In der Tat haben wir Bleche aus Edelstahl 304L, 304L ROHSTAHL, 316L Edelstahl und 316L ROHSTAHL in Stärken von 1, 1,5, 2, 3 und 5 mm mit einem spezifischen CODE für jedes Blech.

Ich möchte in der Lage sein, ein Makro auszuführen, das dem "Blatt"-Körper basierend auf der gewählten Dicke und dem ausgewählten Material automatisch  eine "CODE"-Eigenschaft hinzufügt.

Haben Sie es seitdem geschafft, Ihr Makro zum Laufen zu bringen?

Danke im Voraus,

Lionel

Hallo. Probieren Sie den folgenden Code aus.

Anmerkung: Ich habe SolidWorks auf Englisch konfiguriert, daher müssen Sie "Blechdicke" und "Material" durch die Dicke und die Materialeigenschaften der Teile ersetzen.

Option Explicit
Sub main()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swFeat As SldWorks.Feature
    Dim custPrpMgr As SldWorks.CustomPropertyManager
    Dim myThickness As String
    Dim myMaterial As String
    Dim myCode As String
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    If swModel Is Nothing Then Exit Sub
    Set swFeat = swModel.FirstFeature
    While Not swFeat Is Nothing
        If swFeat.GetTypeName2 = "CutListFolder" Then
            Set custPrpMgr = swFeat.CustomPropertyManager
            custPrpMgr.Get2 "Sheet Metal Thickness", "", myThickness
            Debug.Print "Epaisseur: " & myThickness
            custPrpMgr.Get2 "Material", "", myMaterial
            Debug.Print "Materiel: " & myMaterial
            Select Case myMaterial
                Case "INOX 304L"
                    Select Case myThickness
                        Case "1"
                            myCode = "0001"
                        Case "1.5"
                            myCode = "0002"
                        Case "2"
                            myCode = "0003"
                        Case "3"
                            myCode = "0004"
                        Case "5"
                            myCode = "0005"
                    End Select

                Case "INOX 304L BRUT"
                    Select Case myThickness
                        Case "1"
                            myCode = "0011"
                        Case "1.5"
                            myCode = "0012"
                        Case "2"
                            myCode = "0013"
                        Case "3"
                            myCode = "0014"
                        Case "5"
                            myCode = "0015"
                    End Select
                Case "INOX 316L"
                    Select Case myThickness
                        Case "1"
                            myCode = "0021"
                        Case "1.5"
                            myCode = "0022"
                        Case "2"
                            myCode = "0023"
                        Case "3"
                            myCode = "0024"
                        Case "5"
                            myCode = "0025"
                    End Select
                
                Case "INOX 316L BRUT"
                    Select Case myThickness
                        Case "1"
                            myCode = "0031"
                        Case "1.5"
                            myCode = "0032"
                        Case "2"
                            myCode = "0033"
                        Case "3"
                            myCode = "0034"
                        Case "5"
                            myCode = "0035"
                    End Select
            End Select
            Debug.Print "Code: " & myCode
            Debug.Print
            custPrpMgr.Delete "CODE"
            custPrpMgr.Add2 "CODE", swCustomInfoType_e.swCustomInfoText, myCode
        End If
        Set swFeat = swFeat.GetNextFeature
    Wend
End Sub

 

 

 

Danke, ich habe es versucht... Er hat meine "CODE"-Eigenschaft erstellt, aber nichts im Wert.

Meine Eigenschaften sind:

Eigenschaftsname: "Blechdicke" für die Dicke

Eigenschaftsname: "Material" für Material

Und ich möchte, dass es eine Eigenschaft erstellt, deren Name "GPAO_BRUT" mit meinen verschiedenen Codes als Wert wäre.

Danke im Voraus,

Lionel

Es ist in Ordnung, es funktioniert... Ich habe eine falsche Variable für mein Motiv genommen.

Vielen Dank.