Skocz do zawartości
View in the app

A better way to browse. Learn more.

Max3D.pl

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Napisano

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ć;/

  • Odpowiedzi 11
  • Wyświetleń 2,6k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

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
  • 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
  • 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

loading ślepe?

Ktorego maxa uzywasz? Recznie scena sie exportuje? Probowales wykonac exportfile dla pojedynczego pliku? Tego na ktorym zacina sie skrypt?

Napisano

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 przez CgBartosz

Napisano

To enigmatyczny komunikat :) Zdaza sie ze w takich przypadkach pomaga restart maxa. Duze objectosciowo sa te sceny ? 200Mb ? 500 ?

Edytowane przez CgBartosz

Napisano

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

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 przez CgBartosz

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.