2

I need to open an STL file with Blender, run a script that finds it's dimensions and send them to a php page. All of this should essentially be done through command line or a python script.

So far I've been using cmd with this command:

blender -b C:\blenderTesting\test.blend -o C:\blenderTesting\ -P C:\blenderTesting\test.py

blender -b C:\blenderTesting\test.blend opens the file in blender

-o C:\blenderTesting\ sets the folder for the file to be saved to when finished

-P C:\blenderTesting\test.py runs the python script that finds the dimensions of the object

When I use the above command cmd returns, Error executing Python script from command-line: C:\blenderTesting\test.py (at line 231).

This is the end of the python script

def write(filename):
    outputFile = open(filename, "w")
    outputFile.write(String);
    outputFile.close()

This is line 231 of test.py

Blender.Window.FileSelector(write, "Export")

I'm assuming the problem is that since I'm running this script via Blender background mode it can't open the export window in Blender. I don't want to do this anyway, since I want the script to automatically save the data in a php file. So is there a way to change the ending (line 231) of the python script to automatically save the data without using the export window?

If not, could I accomplish this another way?

Thanks for the help!

Alex Husarenko
  • 545
  • 2
  • 4
  • 10

1 Answers1

2

You could run Blender through PHP, pass arguments (see here) and let Blender print JSON-encoded data wrapped by some text markers. Extract and parse the JSON-data with PHP and use it.

Example implementation:

https://github.com/CoDEmanX/blend_stats

Note that Blender.Window.FileSelector(...) is only valid in Blender 2.4x, API is completely different in 2.5x / 2.6x.

CodeManX
  • 29,298
  • 3
  • 89
  • 128