Orangegraphics Napisano 29 Wrzesień 2010 Napisano 29 Wrzesień 2010 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ć;/
lechoo Napisano 29 Wrzesień 2010 Napisano 29 Wrzesień 2010 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?
Orangegraphics Napisano 29 Wrzesień 2010 Autor Napisano 29 Wrzesień 2010 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?
lechoo Napisano 29 Wrzesień 2010 Napisano 29 Wrzesień 2010 Tak. Skrypt wypisuje cos w listenerze kiedy sie zacina?
Orangegraphics Napisano 29 Wrzesień 2010 Autor Napisano 29 Wrzesień 2010 albo loading ślepe albo standardowy dialog crasha maxowego wywala się przy LoadMAXFile f ; po exporcie pierwszego pliku w którym ustawie map export
lechoo Napisano 29 Wrzesień 2010 Napisano 29 Wrzesień 2010 loading ślepe? Ktorego maxa uzywasz? Recznie scena sie exportuje? Probowales wykonac exportfile dla pojedynczego pliku? Tego na ktorym zacina sie skrypt?
CgBartosz Napisano 29 Wrzesień 2010 Napisano 29 Wrzesień 2010 (edytowane) 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ń 2010 przez CgBartosz
Orangegraphics Napisano 29 Wrzesień 2010 Autor Napisano 29 Wrzesień 2010 dzięki wielkie CgBartosz, unknown system exception. ale dzięki za próbowanie
CgBartosz Napisano 29 Wrzesień 2010 Napisano 29 Wrzesień 2010 (edytowane) To enigmatyczny komunikat :) Zdaza sie ze w takich przypadkach pomaga restart maxa. Duze objectosciowo sa te sceny ? 200Mb ? 500 ? Edytowane 29 Wrzesień 2010 przez CgBartosz
CgBartosz Napisano 29 Wrzesień 2010 Napisano 29 Wrzesień 2010 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() ) )
Orangegraphics Napisano 29 Wrzesień 2010 Autor Napisano 29 Wrzesień 2010 pliki są malutkie,nie ma różnicy jakie pliki mu dam, i tak na drugim zawsze dead.
CgBartosz Napisano 30 Wrzesień 2010 Napisano 30 Wrzesień 2010 (edytowane) 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 2010 przez CgBartosz 1
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się