Een beperking in een API voor verwijderde status plaatsen

Hallo

Al een mooie verbetering van het forum, ik zie dat het hier de goede kant op evolueert!

Ik heb een verzoek van een collega die wil dat ik mijn macro verbeter die me in staat stelt om een component in te voegen, de ' vrijgegeven ' zet een oorsprong / punt toeval en repareer het.

Probleem in sommige gevallen hebben we herpositionering te doen, dus om ons leven gemakkelijker te maken en een paar ' klikken ' te krijgen, vraagt hij me om in de staat te zetten verwijder de beperking voordat ik mijn deel repareer.

Ik heb veel onderzoek gedaan en automatisch opnemen van macro's, maar er kwam niets uit. Ik kan mijn beperking niet selecteren en ik kan een beperking ook niet in de status Verwijderd zetten

'suppression du "Fixe" sur la première pièce
boolstatus = swModel.Extension.SelectByID2(CompInsert, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
swModel.UnfixComponent

'Selection du composant et ajout contrainte coincident origine/origine
swModel.ClearSelection2 True
boolstatus = swModel.Extension.SelectByID2(FirstSelection, "EXTSKETCHPOINT", 0, 0, 0, False, 1, Nothing, 0)
boolstatus = swModel.Extension.SelectByID2(SecondSelection, "COORDSYS", 0, 0, 0, True, 1, Nothing, 0)
Set swMate = swModel.AddMate5(20, -1, False, 0, 0.001, 0.001, 0.001, 0.001, 0.5235987755983, 0.5235987755983, 0.5235987755983, False, False, 0, longstatus)

'Remettre la pièce "Fixe"
boolstatus = swModel.Extension.SelectByID2(CompInsert, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
swModel.FixComponent
swModel.ClearSelection2 True

In afwachting van uw antwoorden wens ik u allen fijne feestdagen.

Hallo @mandragore
Ik denk dat ik door de boom moet gaan en de bijbehorende functie moet krijgen

Dim swApp As SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim swAssembly As AssemblyDoc
Dim swswSelmgr As SelectionMgr
Dim swFeature As Feature
Dim swMate As Mate2
Sub main()

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swAssembly = swModel
Set swSelmgr = swModel.SelectionManager
Dim swError As Long
Set swMate = swAssembly.AddMate5(swMateType_e.swMateCOINCIDENT, swMateAlign_e.swAlignNONE, False, 0, 0, 0, 0, 0, 0, 0, 0, False, False, 0, swError)
swModel.ForceRebuild3 True
Set swFeature = GET_MATE_FEATURE()
swFeature.SetSuppression2 swFeatureSuppressionAction_e.swSuppressFeature, swInConfigurationOpts_e.swThisConfiguration, Nothing
End Sub

Function GET_MATE_FEATURE() As Feature
    Dim curentFeature As Feature
    Set curentFeature = swModel.FirstFeature
    Dim lastFeature As Feature
    Do While Not curentFeature Is Nothing
    If curentFeature.GetTypeName2() = "MateGroup" Then
        Dim subFeature As Feature
        Set subFeature = curentFeature.GetFirstSubFeature
        Set lastFeature = subFeature
        Do While Not subFeature Is Nothing
            Set lastFeature = subFeature
            Set subFeature = subFeature.GetNextSubFeature
        Loop
        Exit Do
    End If
    Set curentFeature = curentFeature.GetNextFeature()
    Loop
    Set GET_MATE_FEATURE = lastFeature
End Function

2 likes

Vanaf de 2019-versie kunt u met de Createmate-functie ook de standaardbeperkingen maken en de functie direct retourneren,

2 likes