diff --git a/render.py b/render.py new file mode 100644 index 0000000..845a356 --- /dev/null +++ b/render.py @@ -0,0 +1,27 @@ +import os +import sys +import shutil +import commands + +def render(machine): + render_dir = machine + os.sep + "render" + print render_dir + try: + os.stat(render_dir) + except: + os.mkdir(render_dir) + li = os.listdir(machine+os.sep+'stls') + stls = [] + for i in li: + stls.append(i[:-4]) + for i in stls: + command = 'blender -b utils'+os.sep+'render.blend -P utils'+os.sep+'viz.py -- '+machine+os.sep+'stls'+os.sep+i+'.stl '+machine+os.sep+'render'+os.sep+i+'.png' + print(command) + print commands.getstatusoutput(command)[1] + +if __name__ == '__main__': + if len(sys.argv) > 1: + render(sys.argv[1]) + else: + print "usage: bom [mendel|sturdy|your_machine]" + sys.exit(1) diff --git a/sturdy/render/cable_clip_AB.png b/sturdy/render/cable_clip_AB.png new file mode 100644 index 0000000..a54eadf Binary files /dev/null and b/sturdy/render/cable_clip_AB.png differ diff --git a/sturdy/render/cable_clip_AD.png b/sturdy/render/cable_clip_AD.png new file mode 100644 index 0000000..dc71e4b Binary files /dev/null and b/sturdy/render/cable_clip_AD.png differ diff --git a/sturdy/render/cable_clip_CA.png b/sturdy/render/cable_clip_CA.png new file mode 100644 index 0000000..194910a Binary files /dev/null and b/sturdy/render/cable_clip_CA.png differ diff --git a/sturdy/render/d_motor_bracket.png b/sturdy/render/d_motor_bracket.png new file mode 100644 index 0000000..76da6e0 Binary files /dev/null and b/sturdy/render/d_motor_bracket.png differ diff --git a/sturdy/render/d_motor_bracket_lid.png b/sturdy/render/d_motor_bracket_lid.png new file mode 100644 index 0000000..d8729d4 Binary files /dev/null and b/sturdy/render/d_motor_bracket_lid.png differ diff --git a/sturdy/render/d_shell.png b/sturdy/render/d_shell.png new file mode 100644 index 0000000..9563d01 Binary files /dev/null and b/sturdy/render/d_shell.png differ diff --git a/sturdy/render/d_shell_lid.png b/sturdy/render/d_shell_lid.png new file mode 100644 index 0000000..19bcf3b Binary files /dev/null and b/sturdy/render/d_shell_lid.png differ diff --git a/sturdy/render/fan_guard.png b/sturdy/render/fan_guard.png new file mode 100644 index 0000000..db51a91 Binary files /dev/null and b/sturdy/render/fan_guard.png differ diff --git a/sturdy/render/fixing_block.png b/sturdy/render/fixing_block.png new file mode 100644 index 0000000..d75d11f Binary files /dev/null and b/sturdy/render/fixing_block.png differ diff --git a/sturdy/render/pcb_spacer.png b/sturdy/render/pcb_spacer.png new file mode 100644 index 0000000..95cd8c9 Binary files /dev/null and b/sturdy/render/pcb_spacer.png differ diff --git a/sturdy/render/pulley.png b/sturdy/render/pulley.png new file mode 100644 index 0000000..e0950b9 Binary files /dev/null and b/sturdy/render/pulley.png differ diff --git a/sturdy/render/ribbon_clamp_12_33.png b/sturdy/render/ribbon_clamp_12_33.png new file mode 100644 index 0000000..2fcfe57 Binary files /dev/null and b/sturdy/render/ribbon_clamp_12_33.png differ diff --git a/sturdy/render/ribbon_clamp_20_33.png b/sturdy/render/ribbon_clamp_20_33.png new file mode 100644 index 0000000..5e13f27 Binary files /dev/null and b/sturdy/render/ribbon_clamp_20_33.png differ diff --git a/sturdy/render/ribbon_clamp_20_40.png b/sturdy/render/ribbon_clamp_20_40.png new file mode 100644 index 0000000..66545ad Binary files /dev/null and b/sturdy/render/ribbon_clamp_20_40.png differ diff --git a/sturdy/render/ribbon_clamp_22_40.png b/sturdy/render/ribbon_clamp_22_40.png new file mode 100644 index 0000000..f020943 Binary files /dev/null and b/sturdy/render/ribbon_clamp_22_40.png differ diff --git a/sturdy/render/ribbon_clamp_22_44.png b/sturdy/render/ribbon_clamp_22_44.png new file mode 100644 index 0000000..7ff408f Binary files /dev/null and b/sturdy/render/ribbon_clamp_22_44.png differ diff --git a/sturdy/render/wades_big_gear.png b/sturdy/render/wades_big_gear.png new file mode 100644 index 0000000..aac573f Binary files /dev/null and b/sturdy/render/wades_big_gear.png differ diff --git a/sturdy/render/wades_block.png b/sturdy/render/wades_block.png new file mode 100644 index 0000000..090c54d Binary files /dev/null and b/sturdy/render/wades_block.png differ diff --git a/sturdy/render/wades_gear_spacer.png b/sturdy/render/wades_gear_spacer.png new file mode 100644 index 0000000..5d885d3 Binary files /dev/null and b/sturdy/render/wades_gear_spacer.png differ diff --git a/sturdy/render/wades_idler_block.png b/sturdy/render/wades_idler_block.png new file mode 100644 index 0000000..7c3d348 Binary files /dev/null and b/sturdy/render/wades_idler_block.png differ diff --git a/sturdy/render/wades_small_gear.png b/sturdy/render/wades_small_gear.png new file mode 100644 index 0000000..f9e5ffc Binary files /dev/null and b/sturdy/render/wades_small_gear.png differ diff --git a/sturdy/render/x_belt_clamp.png b/sturdy/render/x_belt_clamp.png new file mode 100644 index 0000000..d64aea7 Binary files /dev/null and b/sturdy/render/x_belt_clamp.png differ diff --git a/sturdy/render/x_belt_grip.png b/sturdy/render/x_belt_grip.png new file mode 100644 index 0000000..8548ce8 Binary files /dev/null and b/sturdy/render/x_belt_grip.png differ diff --git a/sturdy/render/x_belt_tensioner.png b/sturdy/render/x_belt_tensioner.png new file mode 100644 index 0000000..7593d36 Binary files /dev/null and b/sturdy/render/x_belt_tensioner.png differ diff --git a/sturdy/render/x_carriage.png b/sturdy/render/x_carriage.png new file mode 100644 index 0000000..a068c7b Binary files /dev/null and b/sturdy/render/x_carriage.png differ diff --git a/sturdy/render/x_idler_bracket.png b/sturdy/render/x_idler_bracket.png new file mode 100644 index 0000000..69fec9d Binary files /dev/null and b/sturdy/render/x_idler_bracket.png differ diff --git a/sturdy/render/x_motor_bracket.png b/sturdy/render/x_motor_bracket.png new file mode 100644 index 0000000..2a1282a Binary files /dev/null and b/sturdy/render/x_motor_bracket.png differ diff --git a/sturdy/render/y_bar_clamp.png b/sturdy/render/y_bar_clamp.png new file mode 100644 index 0000000..ce06b6d Binary files /dev/null and b/sturdy/render/y_bar_clamp.png differ diff --git a/sturdy/render/y_bar_clamp_switch.png b/sturdy/render/y_bar_clamp_switch.png new file mode 100644 index 0000000..de0ac00 Binary files /dev/null and b/sturdy/render/y_bar_clamp_switch.png differ diff --git a/sturdy/render/y_bearing_mount.png b/sturdy/render/y_bearing_mount.png new file mode 100644 index 0000000..5ac1948 Binary files /dev/null and b/sturdy/render/y_bearing_mount.png differ diff --git a/sturdy/render/y_bearing_mount_switch.png b/sturdy/render/y_bearing_mount_switch.png new file mode 100644 index 0000000..ba40aa4 Binary files /dev/null and b/sturdy/render/y_bearing_mount_switch.png differ diff --git a/sturdy/render/y_belt_anchor.png b/sturdy/render/y_belt_anchor.png new file mode 100644 index 0000000..f7fff21 Binary files /dev/null and b/sturdy/render/y_belt_anchor.png differ diff --git a/sturdy/render/y_belt_anchor_toothed.png b/sturdy/render/y_belt_anchor_toothed.png new file mode 100644 index 0000000..5d7624c Binary files /dev/null and b/sturdy/render/y_belt_anchor_toothed.png differ diff --git a/sturdy/render/y_belt_clip.png b/sturdy/render/y_belt_clip.png new file mode 100644 index 0000000..5c8a640 Binary files /dev/null and b/sturdy/render/y_belt_clip.png differ diff --git a/sturdy/render/y_belt_clip_toothed.png b/sturdy/render/y_belt_clip_toothed.png new file mode 100644 index 0000000..e0cfd26 Binary files /dev/null and b/sturdy/render/y_belt_clip_toothed.png differ diff --git a/sturdy/render/y_idler_bracket.png b/sturdy/render/y_idler_bracket.png new file mode 100644 index 0000000..85626ca Binary files /dev/null and b/sturdy/render/y_idler_bracket.png differ diff --git a/sturdy/render/y_motor_bracket.png b/sturdy/render/y_motor_bracket.png new file mode 100644 index 0000000..1fbf737 Binary files /dev/null and b/sturdy/render/y_motor_bracket.png differ diff --git a/sturdy/render/z_bar_clamp.png b/sturdy/render/z_bar_clamp.png new file mode 100644 index 0000000..74d67ca Binary files /dev/null and b/sturdy/render/z_bar_clamp.png differ diff --git a/sturdy/render/z_bar_clamp_switch.png b/sturdy/render/z_bar_clamp_switch.png new file mode 100644 index 0000000..ee02fc8 Binary files /dev/null and b/sturdy/render/z_bar_clamp_switch.png differ diff --git a/sturdy/render/z_coupling.png b/sturdy/render/z_coupling.png new file mode 100644 index 0000000..b910712 Binary files /dev/null and b/sturdy/render/z_coupling.png differ diff --git a/sturdy/render/z_limit_switch_bracket.png b/sturdy/render/z_limit_switch_bracket.png new file mode 100644 index 0000000..4d83464 Binary files /dev/null and b/sturdy/render/z_limit_switch_bracket.png differ diff --git a/sturdy/render/z_motor_bracket_lhs.png b/sturdy/render/z_motor_bracket_lhs.png new file mode 100644 index 0000000..a04be8d Binary files /dev/null and b/sturdy/render/z_motor_bracket_lhs.png differ diff --git a/sturdy/render/z_motor_bracket_rhs.png b/sturdy/render/z_motor_bracket_rhs.png new file mode 100644 index 0000000..0a61541 Binary files /dev/null and b/sturdy/render/z_motor_bracket_rhs.png differ diff --git a/sturdy/render/z_screw_pointer.png b/sturdy/render/z_screw_pointer.png new file mode 100644 index 0000000..bcad7f4 Binary files /dev/null and b/sturdy/render/z_screw_pointer.png differ diff --git a/utils/render.blend b/utils/render.blend new file mode 100644 index 0000000..c1e5add Binary files /dev/null and b/utils/render.blend differ diff --git a/utils/viz.py b/utils/viz.py new file mode 100644 index 0000000..983af3c --- /dev/null +++ b/utils/viz.py @@ -0,0 +1,67 @@ +import bpy +import sys + +global ob +global cam_target +mat = 'abs' + +def load_stl(file_path): + global cam_target,ob + # load + bpy.ops.import_mesh.stl(filepath=file_path) + # select properly + ob = bpy.context.selected_objects[0] + print(ob) + bpy.ops.object.select_all(action='DESELECT') + ob.select = True + # remove doubles and clean + #py.ops.object.editmode_toggle() + #bpy.ops.mesh.select_all(action='TOGGLE') + #bpy.ops.mesh.remove_doubles(limit=0.0001) + #bpy.ops.mesh.normals_make_consistent(inside=False) + #bpy.ops.object.editmode_toggle() + bpy.ops.object.origin_set(type='GEOMETRY_ORIGIN', center='BOUNDS') + # place + z_dim = ob.dimensions[2] + print(z_dim) + bpy.ops.transform.translate(value=(0,0,z_dim/2.0)) + cam_target = (0,0,z_dim/3.0) + # assign material + ob.material_slots.data.active_material = bpy.data.materials[mat] + +def place_camera(): + global cam_target + max_dim = 0 + for i in ob.dimensions: + print(i) + if i > max_dim: + max_dim = i + print(max_dim) + bpy.data.objects['target'].location = cam_target + cam = bpy.data.objects['Camera'].location.x = max_dim*2.4 + +def render_thumb(image,gl=False,anim=False): + if gl: + if anim: + bpy.data.scenes['Scene'].render.filepath = "/tmp/"+ob.name+"#" + bpy.ops.render.opengl(animation=True) + else: + bpy.ops.render.opengl(write_still=True) + bpy.data.images['Render Result'].save_render(filepath=image) + else: + if anim: + bpy.data.scenes['Scene'].render.filepath = "/tmp/"+ob.name+"#" + bpy.ops.render.render(animation=True) + else: + bpy.ops.render.render(write_still=True) + bpy.data.images['Render Result'].save_render(filepath=image) + +image = sys.argv[-1] +stl = sys.argv[-2] +print(stl) +print(image) + +load_stl(stl) +place_camera() +render_thumb(image,gl=False) +#bpy.ops.object.delete()