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!