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ę