Automatische Makrobeschränkung

Hallo

Ist es möglich, ein Makro für die folgende Funktion zu erstellen:

Ich möchte, dass durch die Auswahl eines Teils "A" oder einer Baugruppe "B" in einer Baugruppe "C" die obere Ebene von "A" oder "B" parallel zur oberen Ebene von "C" beschränkt wird.

Vielen Dank

Was ist der Zweck der Regelung ???

Schon zunächst, wenn die Ursprünge noch gut platziert waren

Es würde enorm bei der Montage helfen

@+

 

Wir arbeiten nicht durch Vermittlung mit Herkunft. Bei unseren Entwürfen achten wir jedoch darauf, dass die obere Ebene bei allen unseren Teilen und Baugruppen in den meisten Fällen horizontal verläuft.

2 Lösungen, die es zu erkunden gilt:

1- Magnetische Beschränkungen (insbesondere die "Masse"-Beschränkung, die in Ihrem Fall die "übere" Beschränkung sein wird)

Sehen Sie hier, wo wir vor kurzem darüber gesprochen haben: https://www.lynkoa.com/forum/solidworks/contrainte-magn%C3%A9tique-sw?page=0#answer-1027848

2 - oder das "Constraint Reference"-Werkzeug, mit dem ich meine Bibliotheksstücke an die Wände drücke.

1 „Gefällt mir“

Ich habe es gerade mit den Einschränkungsverweisen versucht, die nicht zu funktionieren scheinen.

Und ich gebe zu, dass ich nicht allzu viel über magnetische Einschränkungen weiß. Aber wenn es Arbeit im Vorfeld erfordert, werden wir die Arbeit "verschieben".

Oh ja, ich habe nicht gesagt, dass die Beschränkungsreferenz im Assembler-Modus funktioniert. (muss noch bestätigt werden)

Hallo. Versuchen Sie Folgendes:

Anmerkung: Ersetzen Sie ggf. die Namen der Baugruppen und Komponentenzeichnungen

Option Explicit
Sub main()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swSelMgr As SldWorks.SelectionMgr
    Dim swComp As SldWorks.Component2
    Dim boolstatus As Boolean
    Dim swMate As Mate2
    Dim longstatus As Long
    Dim NomPlanAssy As String
    Dim NomPlanComp As String
    NomPlanAssy = "Plan de dessus"
    NomPlanComp = "Plan de dessus"
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swSelMgr = swModel.SelectionManager
    Set swComp = swSelMgr.GetSelectedObjectsComponent3(1, 0)
    If swComp Is Nothing Then
        MsgBox "Sélectionner une pièce"
        Exit Sub
    End If
    NomPlanComp = NomPlanComp & "@" & swComp.Name2 & "@" & swModel.GetTitle
    If InStr(LCase(swModel.GetTitle), ".sldasm") > 0 Then
        NomPlanComp = Left(NomPlanComp, Len(NomPlanComp) - 7)
    End If
    boolstatus = swModel.Extension.SelectByID2(NomPlanComp, "PLANE", 0, 0, 0, False, 0, Nothing, 0)
    boolstatus = swModel.Extension.SelectByID2(NomPlanAssy, "PLANE", 0, 0, 0, True, 0, Nothing, 0)
    Set swMate = swModel.AddMate5(swMateType_e.swMatePARALLEL, swMateAlign_e.swMateAlignALIGNED, False, 0, 0, 0, 0, 0, 0, 0, 0, False, False, 0, longstatus)
    swModel.EditRebuild3
    swModel.ClearSelection2 True
End Sub

 

2 „Gefällt mir“

Hallo

Formidabel! Vielen Dank, JeromeP. Genau das ist es.