Probleem op solidworks macro

Hallo

 

Ik ben niet zo goed in programmeren, daarom kom ik naar je toe. 

 

Ik probeer twee macro's samen te stellen om STEP te maken van de MEP, dus ik heb een eerste macro die de tekenkamer opent en een tweede die het onderdeel in STEP-formaat opslaat.

 

im swApp als object
Deel dimmen als object
Dim boolstatus als Booleaanse
Dim longstatus As Long, longwarnings As Long
Dim Locatie Als String
Dim Locatie_aangepast als snaar
OpenDoc dimmen als object
Dim Extensie_nieuw als snaar
Dim Extensie_oud als snaar
Dim retval als snaar
Dim Naam Als String
Dim Naam_aangepast als snaar
Dim bRetVal als snaar
Dim swModel     als SldWorks.ModelDoc2
Dim swDrawing   As SldWorks.DrawingDoc
Dim swView      als SldWorks.Bekijk
Dim fouten      zo lang

Sub macro1()
Stel swApp = Toepassing.SldWorks in
Stel swModel = swApp.ActiveDoc in
Stel swApp = CreateObject("SldWorks.Application") in
Stel OpenDoc in = swApp.ActiveDoc()
Deel instellen = swApp.ActiveDoc

' Is het document actief?
Als swModel niets is, dan
swApp.SendMsgToUser2 "Een tekeningbestand moet open zijn.", swMbWarning, swMbOk
Sub afsluiten
Einde als

'Is het een deeldocument?
Als swModel.GetType <> SwConst.swDocDRAWING Dan
swApp.SendMsgToUser2 "Een tekeningbestand moet open zijn.", swMbWarning, swMbOk
Sub afsluiten
Einde als

Stel swDrawing in = swModel
Stel swView in = swDrawing.GetFirstView
Stel swView in = swView.GetNextView
Als swView niets is, dan
MsgBox "Gelieve eerst een modelweergave in te voegen!"
Einde
Anders
swApp.ActivateDoc3 swView.GetReferencedModelName, False, swRebuildOnActivation_e.swUserDecision, Fouten
Einde als

Macro2 bellen
Einde Sub


Sub macro2()


Stel swApp = CreateObject("SldWorks.Application") in
Stel swModel = swApp.ActiveDoc in
Stel OpenDoc in = swApp.ActiveDoc()
Deel instellen = swApp.ActiveDoc

boolstatus = swApp.SetUserPreferenceIntegerValue(swStepAP, 214) 'Forceer versie AP214
boolstatus = swApp.SetUserPreferenceIntegerValue(swStepExportPreference, swAcisOutputGeometryPreference_e.swAcisOutputAsSolidAndSurface) 'Forceer export in Solid/Surface Geometry formaat


Extensie_oud = ". SLDPRT"
Extensie_nieuw = ". STAP"
Locatie = OpenDoc.GetPathName
Locatie_aangepast = Links(Locatie, Len(Locatie) - 7)
retval = Dir$(Locatie_aangepast & Extensie_oud)
Naam = Dir$(Locatie)
Naam_aangepast = Links(Naam, Len(Naam) - 7)
Titel = OpenDoc.GetTitle      <------ compilatiefout
Titel = Links(Titel, (Len(Titel)))


    Als retval = Naam Dan
        nRetval = swApp.SendMsgToUser2(Naam_aangepast & " . STEP-bestand is gemaakt", swMbWarning, swMbOk)
    Einde als
    
    
Deel instellen = swApp.ActiveDoc
longstatus = Part.SaveAs3(Naam_aangepast + Format(Nu, " jjjj-mm-dd") & Extensie_nieuw, 0, 0)
swApp.CloseDoc Titel

Einde Sub
 

Macro's werken als ze alleen zijn, maar zodra ik het compileer werkt het niet meer. Ik krijg de volgende melding "Compilatiefout: variabele niet gedefinieerd"  (zie de regel hierboven vetgedrukt)

 

Als iemand me kan helpen.

 

Bij voorbaat dank!

HALLO

Titel staat niet in uw Dim-lijst en is daarom niet gedefinieerd, u moet toevoegen:

Dim Titel als String

David

1 like

Bedankt David, ik zal dit proberen.

Ik heb nog een ander probleem, de macro start niet wanneer ik op de snelkoppeling klik die ik heb gemaakt, maar het werkt wanneer ik in de editor ben en op "Afspelen" klik.

Heeft u een oplossing?

Ik zou de details controleren in de snelkoppelingsinstellingen (ik neem aan dat dit een SOLIDWORKS-knop is?)

Als de macro is opgeslagen op een netwerkstation, kunt u deze dan lokaal kopiëren en vervolgens uw knop bijwerken om naar de lokale kopie te verwijzen? Om er zeker van te zijn dat netwerkmachtigingen het probleem niet veroorzaken.

David

1 like

Ik ben erin geslaagd mijn probleem op te lossen, ik heb de macro gekopieerd naar een nieuwe macro, het is er als bij toverslag dat het werkt!