VBA Excel naar Solidworks

Hoi allemaal
Ik wil graag een solidworks-functie aansturen via een Excel-bestand met een VBA-macro


Bijgevoegd is de code voor de EditSuppress2() functie waarin ik geïnteresseerd ben.
'Dim instantie als IModelDoc
'Dim waarde als System.Booleaanse
'waarde = instantie. EditSuppress2()

 

Bijgevoegd is het macrorecord via de Solidworks-software
"Sub hoofd()

'Stel swApp in = _
'Toepassing.SldWorks

'Deel instellen = swApp.ActiveDoc
'boolstatus = Part.Extension.SelectByID2("Verwijderde mat.-Extru.1@PièceX.part", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
'Deel.BewerkenOnderdrukken2
'Deel.ClearSelection2 Waar
'Einde Sub

Heeft iemand ooit aan dit type VBA gewerkt? Hoe verzoen je die twee?

Ik wil het verwijderen van een functie via Excel van een onderdeel beheren?

Bij voorbaat dank voor uw hulp.

Hallo

Wat je lijkt te willen doen, is verwant aan een familie van kamers. Net zo efficiënt en eenvoudig is dat Excel in deze context al native SW aanstuurt.

2 likes

Ja absoluut, maar ik wil graag doorgaan met een Excel-macro, is dat mogelijk?

Omdat ik verschillende functies moet verwijderen, wil ik graag een Excel-macro gebruiken die het verwijderen van Solidworks-functies stimuleert (EditSuppress2())

Hallo

Hier is een voorbeeld van een macro in Excel waarmee u de naam van het in Solidworks geladen onderdeel kunt ophalen:

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

Vergeet niet de verwijzingen naar Solidworks toe te voegen in de Excel-macro-editor:

De rest is gewoon standaard vba macro schrijven.

Vriendelijke groeten

Hallo, bedankt voor je antwoord, 

Ik heb al een macro gemaakt die vergelijkbaar is met die van jou om de afmetingen van een munt te wijzigen met de bijgevoegde code:

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

 

Maar ik zit vast aan het verwijderen van een functie uit het onderdeel, het lijkt me dat ik de functie EditSuppress2() moet gebruiken, maar ik kan het niet in VBA formatteren om het verwijderen van materiaal uit mijn deel te verwijderen ("Removing mat.-Extru.1@PièceX.Part") 

Ik heb mijn proefstuk bij de post.

Dank u voor uw hulp.

 


piecex.sldprt

Hallo

Je hebt HIER een voorbeeld van hoe je de functie EditSuppress2() kunt gebruiken.

Vriendelijke groeten

Ik had dit niet geprobeerd , maar ik heb nog steeds hetzelfde resultaat "het werkt niet"

Ik heb deze code gezet:

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

 

Ik heb een uitvoeringsfout "424" Vereist artikel

 

Het is dat je een object hebt dat niet is gedefinieerd, waarschijnlijk "Model".

Waarom zet je "@piecex. Deel" na de "Enlevèv. mat.-Extru.1" in de "SelectByID" die "SelectByID2" zou moeten zijn, evenals de "EditSuppress()" die "EditSuppress2()" zou moeten zijn...

Model instellen = swApp.ActiveDoc
boolstatus = Model.Extension.SelectByID2("Verwijderde mat.-Extru.1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = swModel.EditSuppress2()

Vriendelijke groeten

bedankt voor je antwoord, maar ik heb hetzelfde resultaat 

Ik voeg mijn hele code toe

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

 

en ik heb nog steeds dezelfde fout op het einde  "Runtime error "424": Object vereist

Fout van mijn kant in een copy paste, vervang boolstatus = swModel.EditSuppress2() door boolstatus = Model.EditSuppress2()

geweldige functie, ik dank je zeer, ik heb de hele week geworsteld met deze code, heel erg bedankt