Closed Meteor0id closed 6 years ago
The svg gets written to scene.render.frame_path
(run that in the console to get a path, depends on defaults and your system).
That returned "name 'scene' is not defined So I tried bpy.data.scene.render.filepath which also returned "obect BlendData has no attribute 'scene'" So I tried bpy.context.scene.render.filepath, which worked and returned the path defined in the renders tab (buth with escape slashes, so: 'C:\Blender render output\'. But I don't see the output file at that location after rendering.
Either it's not outputting at all, or its outputting elsewhere.
@Meteor0id It will certainly be in your /tmp
(system temporary folder). That's where Blender stores it's files when they have not been saved or when the render output has not been defined.
@xuv that is what I expected too, so that was the first place I looked. It is where other output was send before I defined a new path. But no .svg there either. On windows //tmp\ gets resolved as C:\tmp\ Still no idea where the output might have went, if there is any.
Sorry for the incomplete piece of code. When I (on linux) run the command
>>> bpy.context.scene.render.filepath
'/tmp/'
This value is set in the Properties at render > output
.
I have already succesfully ran the same command on Windows 10, whcih did indeed return the output path. However no svg file is at that location, not after redering an image nor after rendering an animation.
Is it possible the plugin fails to properly escape the Windows filepath, or uses the wrong kind of slashes somethere?
I have not gone though the python involved, as I have much on my hands at the time.
The relevant code is here
def create_path(scene):
"""Creates the output path for the svg file"""
dirname = os.path.dirname(scene.render.frame_path())
basename = bpy.path.basename(scene.render.filepath)
if scene.svg_export.mode == 'FRAME':
frame = "{:04d}".format(scene.frame_current)
else:
frame = "{:04d}-{:04d}".format(scene.frame_start, scene.frame_end)
return os.path.join(dirname, basename + frame + ".svg")
Handling path names in a cross-platform way is tricky, but I don't see anything that could go wrong here. It might also be some sort of permissions issue. Did you run blender in console mode, and did it throw any exceptions/warnings there?
I tried all sorts of things. I ran blender with administrator privileges both the gui and the comand line, still no sign of the add-on outputing anything, not even a warning or error.
I have no idea how to even check if it is being run.
I have to also enable freestyle itself don't I? :\ Yup, now I see an svg.
Lets document this clearly? Idiots like me don't catch up on that on their first 10 attempts.
everything works perfectly after simply also checking freestyle itself. Thanks for this add-on it works great, as soon as I checked that box I had a working svg animation in less than a minute of rendering. Perfect.
Happy it works! Good luck with it.
Made sure I have the latest version from this repository, made sure I have the default output path set in "user preferences > file > render output". Made sure the plugin is enabled and checked in the render tab. Have restarted blender to make sure all settings apply. Still, when rendering, only getting the png's had set to render but no svg anywhere I can find it.
Using blender on Windows 10.