Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2022-03-08 09:01:23 +0300
committerCampbell Barton <ideasman42@gmail.com>2022-03-08 09:02:09 +0300
commit1af4eb6f32cd62d84f5a91b2d2fcb19fe0757d67 (patch)
tree71e813abf3cd2bb348469ea2b537d3f8fcefb864
parent080d74fec1b65a5e5ba29143d8a70fc68902eb5a (diff)
Fix io_anim_camera error exporting cameras with quotes in their name
Also use context to ensure the file is closed properly.
-rw-r--r--io_anim_camera.py37
1 files changed, 19 insertions, 18 deletions
diff --git a/io_anim_camera.py b/io_anim_camera.py
index 92948f58..fbc7eaab 100644
--- a/io_anim_camera.py
+++ b/io_anim_camera.py
@@ -19,23 +19,23 @@ bl_info = {
import bpy
-def write_cameras(context, filepath, frame_start, frame_end, only_selected=False):
+def write_cameras(context, fh, frame_start, frame_end, only_selected=False):
data_attrs = (
- 'lens',
- 'shift_x',
- 'shift_y',
- 'dof.focus_distance',
- 'clip_start',
- 'clip_end',
- 'display_size',
- )
+ "lens",
+ "shift_x",
+ "shift_y",
+ "dof.focus_distance",
+ "clip_start",
+ "clip_end",
+ "display_size",
+ )
obj_attrs = (
- 'hide_render',
- )
+ "hide_render",
+ )
- fw = open(filepath, 'w').write
+ fw = fh.write
scene = bpy.context.scene
@@ -77,21 +77,21 @@ def write_cameras(context, filepath, frame_start, frame_end, only_selected=False
fw("scene.frame_set(%d + frame)\n" % f)
for obj, obj_data in cameras:
- fw("obj = cameras['%s']\n" % obj.name)
+ fw("obj = cameras[%r]\n" % obj.name)
matrix = obj.matrix_world.copy()
fw("obj.location = %r, %r, %r\n" % matrix.to_translation()[:])
fw("obj.scale = %r, %r, %r\n" % matrix.to_scale()[:])
fw("obj.rotation_euler = %r, %r, %r\n" % matrix.to_euler()[:])
- fw("obj.keyframe_insert('location')\n")
- fw("obj.keyframe_insert('scale')\n")
- fw("obj.keyframe_insert('rotation_euler')\n")
+ fw("obj.keyframe_insert(\"location\")\n")
+ fw("obj.keyframe_insert(\"scale\")\n")
+ fw("obj.keyframe_insert(\"rotation_euler\")\n")
# only key the angle
fw("data = obj.data\n")
fw("data.lens = %s\n" % obj_data.lens)
- fw("data.keyframe_insert('lens')\n")
+ fw("data.keyframe_insert(\"lens\")\n")
fw("\n")
@@ -129,7 +129,8 @@ class CameraExporter(bpy.types.Operator, ExportHelper):
default=True)
def execute(self, context):
- write_cameras(context, self.filepath, self.frame_start, self.frame_end, self.only_selected)
+ with open(self.filepath, 'w', encoding='utf-8') as fh:
+ write_cameras(context, fh, self.frame_start, self.frame_end, self.only_selected)
return {'FINISHED'}
def invoke(self, context, event):