Selectie van zijde of rand

Hoi allemaal

Ik ben op zoek naar hoe ik een specifiek vlak van een onderdeel in een assemblage kan selecteren met de functie "Part.Extension.SelectByID2" voor een API

 

Hallo

Kunt u uw verzoek specificeren?

U wilt een zijde van een onderdeel in een merk selecteren uit de functienaam:

Of uit de naam van de entiteit:

Vriendelijke groeten

3 likes

Hallo

Ten slotte heb ik een extrusie (een volume) en ik wil een specifieke kant van deze extrusie selecteren

C

Hallo

Als het iets is als:

MySelection = "Gezicht<1>@Boss.-Extru.1@maPiece-1@monAssemblage"
bRet = swDocExt.SelectByID2(MySelection, "FACE", 0, 0, 0, False, 1, Nothing, swSelectOptionDefault)

dat u dit wilt doen is, voor zover ik weet, niet mogelijk, het lijkt mij dat deze mogelijkheid niet is geïmplementeerd in de functie "SelectByID2".

Aan de andere kant, als je de mogelijkheid hebt om een specifieke naam in de eigenschappen van het gezicht te zetten (klik met de rechtermuisknop op het gezicht en vervolgens op de eigenschappen van het gezicht), dan kun je deze vervolgens selecteren door de API's met behulp van de functie "GetEntityName" die je HIER kunt vinden.

Vriendelijke groeten

Hallo

Ik heb gelokaliseerd met de rechtermuisknop op het gezicht om te selecteren, maar het heeft geen selectie, ik voeg mijn voorbeeldcode toe

value = Part.Extension.GetEntityName("toto@Pièce1.prt")

 

Vriendelijke groeten

 


Deel 1.SLDPRT

Hallo

Hier is een voorbeeld van code om uw gezicht met de naam "foo" op uw bijlage te selecteren.

Option Explicit

Sub main()
    Dim swApp                   As SldWorks.SldWorks
    Dim swModel                 As SldWorks.ModelDoc2
    Dim swSelData               As SldWorks.SelectData
    Dim swBody                  As SldWorks.Body2
    Dim swFaceFeat              As SldWorks.Feature
    Dim vBody                   As Variant
    Dim vBodyArr                As Variant
    Dim swFace                  As SldWorks.Face2
    Dim swEnt                   As SldWorks.Entity
    Dim bRet                    As Boolean
    Dim EntityName              As String

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc

    If swModel.GetType = swDocPART Then
        swModel.ClearSelection2 True
        vBodyArr = swModel.GetBodies2(swSolidBody, False)
        For Each vBody In vBodyArr
            Set swBody = vBody
            Set swFace = swBody.GetFirstFace
            Do While Not swFace Is Nothing
                Set swEnt = swFace
                EntityName = swModel.GetEntityName(swEnt)
                If EntityName = "toto" Then
                    bRet = swEnt.Select4(True, swSelData): Debug.Assert bRet
                End If
                Set swFace = swFace.GetNextFace
            Loop
        Next
    End If
End Sub

Vriendelijke groeten

2 likes