Is het mogelijk om een macro te maken voor de volgende functie:
Ik zou graag willen dat door het selecteren van een onderdeel "A" of een assemblage "B" in een assemblage "C", het bovenste vlak van "A" of "B" wordt beperkt parallel aan het bovenste vlak van "C".
Wij werken niet op basis van plaatsing met oorsprongen. Maar tijdens onze ontwerpen zorgen we ervoor dat we meestal het feit respecteren dat het bovenste vlak horizontaal is op al onze onderdelen en assemblages.
Opmerking: Vervang indien nodig de namen van de assemblage en componenttekeningen
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