Wybór powierzchni lub krawędzi

Cze wszystkim

Szukam sposobu na wybranie określonej powierzchni części w zespole za pomocą funkcji "Part.Extension.SelectByID2" dla interfejsu API

 

Witam

Czy możesz sprecyzować swoją prośbę?

Chcesz wybrać powierzchnię części w zespole z jego nazwy operacji:

Lub z jego nazwy jednostki:

Pozdrowienia

3 polubienia

Witam

Wreszcie mam wyciągnięcie (objętość ) i chcę wybrać konkretną stronę tego wyciągnięcia

C

Witam

Jeśli jest to coś takiego:

MySelection = "Twarz<1>@Boss.-Extru.1@maPiece-1@monAssemblage"
bRet = swDocExt.SelectByID2(MySelection, "TWARZ", 0, 0, 0, Fałsz, 1, Nic, swSelectOptionDefault)

że chcesz to zrobić, jest, o ile mi wiadomo, niemożliwe, wydaje mi się, że ta możliwość nie jest zaimplementowana w funkcji "SelectByID2".

Z drugiej strony, jeśli masz możliwość umieszczenia określonej nazwy we właściwościach twarzy (kliknij prawym przyciskiem myszy na twarz, a następnie na właściwości twarzy), możesz ją następnie wybrać za pomocą interfejsów API za pomocą funkcji "GetEntityName", którą znajdziesz TUTAJ.

Pozdrowienia

Witam

Zlokalizowałem prawym przyciskiem myszy twarz, którą chcesz wybrać, ale nie ma wyboru, załączam mój przykładowy kod

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

 

Pozdrowienia

 


Część 1.SLDPRT

Witam

Oto przykład kodu umożliwiającego wybranie twarzy o nazwie "foo" w załączniku.

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

Pozdrowienia

2 polubienia