Napisano 29 Wrzesień 201014 l Witam, męczę się z tym problemem już pół dnia. muszę wyeksportować ponad 200 plików do formatu OBJ. każdy model ma tekstury swoje więc potrzebuje opcji map export>convert bitmaps i extended map-params. a właśnie przy nich nie działa mi skrypt batch exporter http://ypuechweb.free.fr/batch_exporter.html z którego zawsze korzystam w takich sytuacjach. działą zawsze, dla każdego innego formatu, dla OBJ też, tylko jak zaznacze opcje w map export to się zacina po pierwszym pliku. więc pomyślałem że spróbuje sam napisać skrypt. mam coś takiego: Dir = #("C:\\Source\\") MaxFiles = #() For d in Dir do Join MaxFiles (getFiles (d + "*.max")) for f in MaxFiles do ( LoadMAXFile f ; -- SaveMaxFile f; ExportFile ("C:\\destination\\" + getFilenameFile (MaxFileName) + ".obj") #noPrompt ; -- Cleanup file and viewports --resetMaxFile f #noPrompt ) działa dla innych rozszerzeń, tylko dla OBJ się zacina po 1 pliku. resetmaxfile który jest zakomentowany nic nie pomaga. jakieś sugestie? podpowiedzi? nie chce 200 plików ręcznie exportować;/
Napisano 29 Wrzesień 201014 l batch_exporter i twoj skrypt dzialaja u mnie bez zarzutow (max 2009). Czy plik na ktorym zacina sie skrypt da sie wyeksportowac "recznie"? Zacinanie sie skryptu oznacza ze zawiesza sie czy konczy dzialanie?
Napisano 29 Wrzesień 201014 l Autor bez zarzutów... u mnie zawsze na drugim pliku się zawiesza. zmieniłeś wpierw manualnie na jednym pliku do wyeksportowania opcje map exporter o których pisałem?
Napisano 29 Wrzesień 201014 l Autor albo loading ślepe albo standardowy dialog crasha maxowego wywala się przy LoadMAXFile f ; po exporcie pierwszego pliku w którym ustawie map export
Napisano 29 Wrzesień 201014 l loading ślepe? Ktorego maxa uzywasz? Recznie scena sie exportuje? Probowales wykonac exportfile dla pojedynczego pliku? Tego na ktorym zacina sie skrypt?
Napisano 29 Wrzesień 201014 l odpal ponizszy kod i napisz co przy bledzie jest napisane w messageboxie fn BatchExport sourceFolders OutputFolder = ( if (maxVersion())[1] > 12000 do ( theINI = objexp.getIniName() setIniSetting theINI "General" "UseLogging" "0" setIniSetting theINI "Material" "ConvertBitmaps" "1" setIniSetting theINI "Material" "ExtendedParams" "1" ) MaxFiles = #() For sourceFolder in sourceFolders do Join MaxFiles (getFiles (sourceFolder + "*.max")) for f in MaxFiles do ( LoadMAXFile f if (maxVersion())[1] > 12000 then ( ExportFile ( OutputFolder + getFilenameFile (MaxFileName) + ".obj") #noPrompt using:ObjExp )else( ExportFile ( OutputFolder + getFilenameFile (MaxFileName) + ".obj") #noPrompt ) freescenebitmaps() gc() ) ) try( BatchExport #("C:\\Source\\") "C:\\destination\\" )catch( messagebox (getCurrentException() ) ) Edytowane 29 Wrzesień 201014 l przez CgBartosz
Napisano 29 Wrzesień 201014 l Autor dzięki wielkie CgBartosz, unknown system exception. ale dzięki za próbowanie
Napisano 29 Wrzesień 201014 l To enigmatyczny komunikat :) Zdaza sie ze w takich przypadkach pomaga restart maxa. Duze objectosciowo sa te sceny ? 200Mb ? 500 ? Edytowane 29 Wrzesień 201014 l przez CgBartosz
Napisano 29 Wrzesień 201014 l jeszcze mozna tak sprobowac: fn BatchExport sourceFolders OutputFolder = ( if (maxVersion())[1] > 12000 do ( theINI = objexp.getIniName() setIniSetting theINI "General" "UseLogging" "0" setIniSetting theINI "Material" "ConvertBitmaps" "1" setIniSetting theINI "Material" "ExtendedParams" "1" ) MaxFiles = #() For sourceFolder in sourceFolders do Join MaxFiles (getFiles (sourceFolder + "*.max")) for f in MaxFiles do ( LoadMAXFile f tempFile = (OutputFolder+"tmp.max") saveNodes (geometry as array) tempFile quiet:true resetMaxfile #noprompt LoadMAXFile tempFile if (maxVersion())[1] > 12000 then ( ExportFile ( OutputFolder + getFilenameFile (MaxFileName) + ".obj") #noPrompt using:ObjExp )else( ExportFile ( OutputFolder + getFilenameFile (MaxFileName) + ".obj") #noPrompt ) freescenebitmaps() gc() ) ) try( BatchExport #("C:\\Source\\") "C:\\destination\\" )catch( messagebox (getCurrentException() ) )
Napisano 29 Wrzesień 201014 l Autor pliki są malutkie,nie ma różnicy jakie pliki mu dam, i tak na drugim zawsze dead.
Napisano 30 Wrzesień 201014 l Sprawdz to jesli nie pomogly inne metody. Troche przekombinowane ale moze pomoze. fn BatchExport sourceFolders OutputFolder = ( if (maxVersion())[1] > 11000 do ( theINI = objexp.getIniName() setIniSetting theINI "General" "UseLogging" "0" setIniSetting theINI "Material" "ConvertBitmaps" "1" setIniSetting theINI "Material" "ExtendedParams" "1" ) MaxFiles = #() For sourceFolder in sourceFolders do Join MaxFiles (getFiles (sourceFolder + "*.max")) for f in MaxFiles do ( LoadMAXFile f inputFileName = getfilenamefile MaxFileName tempFile = (OutputFolder+"tmp.max") saveNodes (geometry as array) tempFile quiet:true resetMaxfile #noprompt LoadMAXFile tempFile outputSubfolder = OutputFolder + inputFileName + "/" try (makedir outputSubfolder ) catch (messagebox (getCurrentException())) command = "" command += "ExportFile " command += "\"" + (outputSubfolder + inputFileName + ".obj") + "\"" command += " #noPrompt" if (maxVersion())[1] > 11000 do command += " using:ObjExp" execute command gc() ) ) try( BatchExport #("C:/Source/") "C:/destination/" )catch( messagebox (getCurrentException() ) ) Edytowane 12 Październik 201014 l przez CgBartosz
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto