Cze wszystkim
Szukam sposobu na wybranie określonej powierzchni części w zespole za pomocą funkcji "Part.Extension.SelectByID2" dla interfejsu API
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
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
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