VBA Excel do Solidworks

Cze wszystkim
Chciałbym sterować funkcją solidworks za pomocą pliku Excel z makrem VBA


W załączeniu kod funkcji EditSuppress2(), która mnie interesuje.
'Dim instance As IModelDoc
'Dim value As System.Boolean (wartość przyciemniona)
'value = wystąpienie. EditSuppress2()

 

W załączeniu znajduje się rekord makra za pośrednictwem oprogramowania Solidworks
'Sub main()

'Ustaw swApp = _
'Aplikacja.SldWorks

'Ustaw część = swApp.ActiveDoc
'boolstatus = Part.Extension.SelectByID2("Usunięto mat.-Extru.1@PièceX.part", "BODYFEATURE", 0, 0, 0, Fałsz, 0, Nic, 0)
'Part.EditSuppress2 (Część.EditSuppress2)
'Part.ClearSelection2 Prawda
"Koniec sub

Czy ktoś kiedykolwiek pracował nad tym typem VBA? Jak pogodzić te dwie rzeczy?

Chcę kontrolować usuwanie funkcji za pomocą programu Excel części?

Z góry dziękuję za pomoc.

Witam

Wydaje się, że to, co chcesz zrobić, jest podobne do rodziny pokoi. Równie wydajny i prosty, Excel już natywnie obsługuje oprogramowanie w tym kontekście.

2 polubienia

Tak, absolutnie, ale chciałbym kontynuować z makrem Excela, czy jest to możliwe?

Ponieważ mam kilka funkcji do usunięcia, chciałbym użyć makra programu Excel, które steruje usuwaniem funkcji Solidworks (EditSuppress2())

Witam

Oto przykład makra w programie Excel, które umożliwia pobranie nazwy części załadowanej do Solidworks:

Sub Macro1()
    
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2

Set swApp = CreateObject("SldWorks.Application")
swApp.Visible = True
        
Set swModel = swApp.ActiveDoc

MsgBox swModel.GetTitle

End Sub

Nie zapomnij dodać odniesień do Solidworks w edytorze makr programu Excel:

Reszta to po prostu standardowe pisanie makr vba.

Pozdrowienia

Witam, dziękuję za odpowiedź, 

Zrobiłem już makro podobne do Twojego do modyfikacji wymiarów monety z załączonym kodem:

Part.Parameter("D1@Esquisse1@PièceX.Part").SystemValue = Excel.Range("B2") / 1000

 

Ale utknąłem na usunięciu funkcji z części, wydaje mi się, że powinienem użyć funkcji EditSuppress2(), ale nie mogę jej sformatować w VBA, aby usunąć usunięcie materiału z mojej części ("Usuwanie mat.-Extru.1@PièceX.Part") 

Mam swoją próbkę na posterunku.

Dziękuję za pomoc.

 


piecex.sldprt powiedział:

Witam

Przykład użycia funkcji EditSuppress2() znajduje się TUTAJ.

Pozdrowienia

Nie próbowałem tego, ale nadal mam ten sam wynik "to nie działa"

Umieściłem ten kod:

Model.SelectByID("Enlèv. mat.-Extru.1@PièceX.Part", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0) = Model.EditSuppress()

 

Mam błąd wykonania "424" Wymagany przedmiot

 

Chodzi o to, że masz obiekt, który nie jest zdefiniowany, prawdopodobnie "Model".

Dlaczego umieszczasz "@piecex. Część" po "Enlevèv. mat.-Extru.1" w "SelectByID", który powinien być "SelectByID2", a także w "EditSuppress()", który powinien być "EditSuppress2()"...

Ustaw model = swApp.ActiveDoc
boolstatus = Model.Extension.SelectByID2("Usunięto mat.-Extru.1", "BODYFEATURE", 0, 0, 0, Fałsz, 0, Nic, 0)
boolstatus = swModel.EditSuppress2()

Pozdrowienia

dziękuję za odpowiedź, ale mam ten sam wynik 

Załączam cały mój kod

Dim swApp As Object


Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Private Sub CommandButton1_Click()

Set swApp = CreateObject("SldWorks.application")

Set Model = swApp.ActiveDoc
boolstatus = Model.Extension.SelectByID2("Enlèv. mat.-Extru.1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = swModel.EditSuppress2()

Part.ClearSelection2 True


End Sub

 

i nadal mam ten sam błąd na końcu  "Błąd wykonania "424": Wymagany obiekt

Błąd z mojej strony w kopiowaniu i wklejaniu, zamień boolstatus = swModel.EditSuppress2() na boolstatus = Model.EditSuppress2()

świetna funkcja Bardzo dziękuję, cały tydzień zmagałem się z tym kodem, bardzo dziękuję