STL and PLY IO layouts

This commit is contained in:
William Reynish 2019-08-21 23:34:27 +02:00
parent 2c18cce570
commit daff657d5f
2 changed files with 220 additions and 10 deletions

View File

@ -165,19 +165,61 @@ class ExportPLY(bpy.types.Operator, ExportHelper):
return export_ply.save(self, context, **keywords)
def draw(self, context):
pass
class PLY_PT_export_transform(bpy.types.Panel):
bl_space_type = 'FILE_BROWSER'
bl_region_type = 'TOOL_PROPS'
bl_label = "Transform"
bl_parent_id = "FILE_PT_operator"
@classmethod
def poll(cls, context):
sfile = context.space_data
operator = sfile.active_operator
return operator.bl_idname == "EXPORT_MESH_OT_ply"
def draw(self, context):
layout = self.layout
layout.use_property_split = True
layout.use_property_decorate = False # No animation.
row = layout.row()
row.prop(self, "use_mesh_modifiers")
row.prop(self, "use_normals")
row = layout.row()
row.prop(self, "use_uv_coords")
row.prop(self, "use_colors")
sfile = context.space_data
operator = sfile.active_operator
layout.prop(self, "axis_forward")
layout.prop(self, "axis_up")
layout.prop(self, "global_scale")
layout.prop(operator, "axis_forward")
layout.prop(operator, "axis_up")
layout.prop(operator, "global_scale")
class PLY_PT_export_geometry(bpy.types.Panel):
bl_space_type = 'FILE_BROWSER'
bl_region_type = 'TOOL_PROPS'
bl_label = "Geometry"
bl_parent_id = "FILE_PT_operator"
@classmethod
def poll(cls, context):
sfile = context.space_data
operator = sfile.active_operator
return operator.bl_idname == "EXPORT_MESH_OT_ply"
def draw(self, context):
layout = self.layout
layout.use_property_split = True
layout.use_property_decorate = False # No animation.
sfile = context.space_data
operator = sfile.active_operator
layout.prop(operator, "use_mesh_modifiers")
layout.prop(operator, "use_normals")
layout.prop(operator, "use_uv_coords")
layout.prop(operator, "use_colors")
def menu_func_import(self, context):
@ -191,6 +233,8 @@ def menu_func_export(self, context):
classes = (
ImportPLY,
ExportPLY,
PLY_PT_export_transform,
PLY_PT_export_geometry,
)

View File

@ -150,6 +150,61 @@ class ImportSTL(Operator, ImportHelper):
blender_utils.create_and_link_mesh(objName, tris, tri_nors, pts, global_matrix)
return {'FINISHED'}
def draw(self, context):
pass
class STL_PT_import_transform(bpy.types.Panel):
bl_space_type = 'FILE_BROWSER'
bl_region_type = 'TOOL_PROPS'
bl_label = "Transform"
bl_parent_id = "FILE_PT_operator"
@classmethod
def poll(cls, context):
sfile = context.space_data
operator = sfile.active_operator
return operator.bl_idname == "IMPORT_MESH_OT_stl"
def draw(self, context):
layout = self.layout
layout.use_property_split = True
layout.use_property_decorate = False # No animation.
sfile = context.space_data
operator = sfile.active_operator
layout.prop(operator, "global_scale")
layout.prop(operator, "use_scene_unit")
layout.prop(operator, "axis_forward")
layout.prop(operator, "axis_up")
class STL_PT_import_geometry(bpy.types.Panel):
bl_space_type = 'FILE_BROWSER'
bl_region_type = 'TOOL_PROPS'
bl_label = "Geometry"
bl_parent_id = "FILE_PT_operator"
@classmethod
def poll(cls, context):
sfile = context.space_data
operator = sfile.active_operator
return operator.bl_idname == "IMPORT_MESH_OT_stl"
def draw(self, context):
layout = self.layout
layout.use_property_split = True
layout.use_property_decorate = False # No animation.
sfile = context.space_data
operator = sfile.active_operator
layout.prop(operator, "use_facet_normal")
@orientation_helper(axis_forward='Y', axis_up='Z')
@ -243,6 +298,111 @@ class ExportSTL(Operator, ExportHelper):
stl_utils.write_stl(faces=faces, **keywords_temp)
return {'FINISHED'}
def draw(self, context):
pass
class STL_PT_export_main(bpy.types.Panel):
bl_space_type = 'FILE_BROWSER'
bl_region_type = 'TOOL_PROPS'
bl_label = ""
bl_parent_id = "FILE_PT_operator"
bl_options = {'HIDE_HEADER'}
@classmethod
def poll(cls, context):
sfile = context.space_data
operator = sfile.active_operator
return operator.bl_idname == "EXPORT_MESH_OT_stl"
def draw(self, context):
layout = self.layout
layout.use_property_split = True
layout.use_property_decorate = False # No animation.
sfile = context.space_data
operator = sfile.active_operator
layout.prop(operator, "ascii")
layout.prop(operator, "batch_mode")
class STL_PT_export_include(bpy.types.Panel):
bl_space_type = 'FILE_BROWSER'
bl_region_type = 'TOOL_PROPS'
bl_label = "Include"
bl_parent_id = "FILE_PT_operator"
@classmethod
def poll(cls, context):
sfile = context.space_data
operator = sfile.active_operator
return operator.bl_idname == "EXPORT_MESH_OT_stl"
def draw(self, context):
layout = self.layout
layout.use_property_split = True
layout.use_property_decorate = False # No animation.
sfile = context.space_data
operator = sfile.active_operator
layout.prop(operator, "use_selection")
class STL_PT_export_transform(bpy.types.Panel):
bl_space_type = 'FILE_BROWSER'
bl_region_type = 'TOOL_PROPS'
bl_label = "Transform"
bl_parent_id = "FILE_PT_operator"
@classmethod
def poll(cls, context):
sfile = context.space_data
operator = sfile.active_operator
return operator.bl_idname == "EXPORT_MESH_OT_stl"
def draw(self, context):
layout = self.layout
layout.use_property_split = True
layout.use_property_decorate = False # No animation.
sfile = context.space_data
operator = sfile.active_operator
layout.prop(operator, "global_scale")
layout.prop(operator, "use_scene_unit")
layout.prop(operator, "axis_forward")
layout.prop(operator, "axis_up")
class STL_PT_export_geometry(bpy.types.Panel):
bl_space_type = 'FILE_BROWSER'
bl_region_type = 'TOOL_PROPS'
bl_label = "Geometry"
bl_parent_id = "FILE_PT_operator"
@classmethod
def poll(cls, context):
sfile = context.space_data
operator = sfile.active_operator
return operator.bl_idname == "EXPORT_MESH_OT_stl"
def draw(self, context):
layout = self.layout
layout.use_property_split = True
layout.use_property_decorate = False # No animation.
sfile = context.space_data
operator = sfile.active_operator
layout.prop(operator, "use_mesh_modifiers")
def menu_import(self, context):
@ -255,7 +415,13 @@ def menu_export(self, context):
classes = (
ImportSTL,
ExportSTL
STL_PT_import_transform,
STL_PT_import_geometry,
ExportSTL,
STL_PT_export_main,
STL_PT_export_include,
STL_PT_export_transform,
STL_PT_export_geometry,
)
def register():