2

I am very new to Blender. I am an advanced Python user. I want to do with Blender something similar as with OpenSCAD, in case somebody here knows it. So basically I want to use Blender fully from Python scripts, the graphical interface only for visualizing the results. This means that each time I run my main.py I want Blender to be restarted and execute that script from scratch, without any memory from previous runs. Is this possible?

Of course one way to achieve this is to open a new project each time I run the script, reload the script and run it. But this is completely unpractical.

Up to now I have only found this which adds two lines

bpy.ops.object.select_all(action="SELECT")
bpy.ops.object.delete(use_global=False)

to select all objects and delete them. But there are many other things like materials, world settings, etc. etc. that would be nice to restart so I can be sure the script is doing all that I want.

user171780
  • 121
  • 2
  • 4
    You can open a new Blender and run your script with blender -P script.py. Is that what you want? – scurest Sep 26 '21 at 16:50
  • Have you tried invoking bpy.ops.wm.read_factory_settings() from your script? That's pretty draconian, so maybe bpy.ops.wm.read_homefile(app_template="") which restarts from your startup file. – Marty Fouts Sep 26 '21 at 16:51
  • 1
    @scurest thanks, that is very close to what I am looking for. Please promote your comment to answer so I can accept it. – user171780 Sep 26 '21 at 16:59
  • 2
    Related https://blender.stackexchange.com/questions/219235/read-factory-settings-makes-all-other-operators-call-fail-in-a-python-script-ran – batFINGER Sep 26 '21 at 18:56

0 Answers0