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.
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.
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".
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