diff --git a/io_coat3D/__init__.py b/io_coat3D/__init__.py index 1fe5a6f9743ecc6cfd8435c6ce9f4759ab60cbd6..5d3e05d334f46914cd67016d407d3018fc79a6c2 100644 --- a/io_coat3D/__init__.py +++ b/io_coat3D/__init__.py @@ -304,6 +304,27 @@ class SCENE_OT_opencoat(bpy.types.Operator): return {'FINISHED'} +def scaleParents(): + save = [] + names =[] + + for objekti in bpy.context.selected_objects: + temp = objekti + while (temp.parent is not None and temp.parent.name not in names): + save.append([temp.parent,(temp.parent.scale[0],temp.parent.scale[1],temp.parent.scale[2])]) + names.append(temp.parent) + temp = temp.parent + + for name in names: + name.scale = (1,1,1) + + return save + +def scaleBackParents(save): + + for data in save: + data[0].scale = data[1] + def deleteNodes(type): deletelist = [] @@ -511,6 +532,8 @@ class SCENE_OT_export(bpy.types.Operator): if (export_ok == False): return {'FINISHED'} + scaled_objects = scaleParents() + activeobj = bpy.context.active_object.name checkname = '' coa = bpy.context.active_object.coat3D @@ -742,7 +765,8 @@ class SCENE_OT_export(bpy.types.Operator): if(mat_list == '__' + objekti.name): for ind, mat in enumerate(mod_mat_list[mat_list]): objekti.material_slots[mod_mat_list[mat_list][ind][0]].material = mod_mat_list[mat_list][ind][1] - + + scaleBackParents(scaled_objects) bpy.context.scene.render.engine = active_render return {'FINISHED'}