Added assembly instructions.
59
Makefile
@@ -4,6 +4,9 @@ CONVERT=convert
|
||||
PARTFILES=$(sort $(wildcard *_parts.scad))
|
||||
TARGETS=$(patsubst %.scad,STLs/%.stl,${PARTFILES})
|
||||
ROTFILES=$(shell seq -f 'wiki/snappy_rot%03g.png' 0 10 359.99)
|
||||
ASM_MODULES=$(shell grep 'module [a-z0-9_]*_assembly' full_assembly.scad | sed 's/^module //' | sed 's/[^a-z0-9_].*$$//')
|
||||
ASM_BEFORE_TARGETS=$(patsubst %,docs/assembly/%_before.png,${ASM_MODULES})
|
||||
ASM_AFTER_TARGETS=$(patsubst %,docs/assembly/%_after.png,${ASM_MODULES})
|
||||
|
||||
all: ${TARGETS}
|
||||
|
||||
@@ -16,7 +19,7 @@ pull:
|
||||
git pull --recurse-submodules
|
||||
|
||||
clean:
|
||||
rm -f tmp_*.png wiki/snappy_rot*.png
|
||||
rm -f tmp_*.png tmp_*.scad wiki/snappy_rot*.png
|
||||
|
||||
cleaner: clean
|
||||
rm -f ${TARGETS}
|
||||
@@ -24,6 +27,33 @@ cleaner: clean
|
||||
cleanwiki:
|
||||
rm -f wiki/snappy_*.gif wiki/snappy_*.png wiki/*_parts.png
|
||||
|
||||
instructions: docs/assembly/index.html
|
||||
|
||||
docs/assembly/index.html: ${ASM_BEFORE_TARGETS} ${ASM_AFTER_TARGETS}
|
||||
./gen_assembly_index.py
|
||||
|
||||
${ASM_BEFORE_TARGETS}: full_assembly.scad
|
||||
echo "use <full_assembly.scad>" > $(patsubst docs/assembly/%.png,tmp_%.scad,$@)
|
||||
echo "$(patsubst docs/assembly/%_before.png,%,$@)(explode=100, arrows=true);" >> $(patsubst docs/assembly/%.png,tmp_%.scad,$@)
|
||||
${OPENSCAD} -o $(subst docs/assembly/,tmp_asm_,$@) \
|
||||
--csglimit=2000000 --imgsize=3200,3200 --projection=p \
|
||||
$(shell grep -A2 'module $(patsubst docs/assembly/%_before.png,%,$@)' full_assembly.scad | head -5 | grep '// *view:' | sed 's/[^]0-9.,]//g' | sed 's/[]]/,/g' | sed 's/^/--camera=/') \
|
||||
--autocenter --viewall \
|
||||
$(patsubst docs/assembly/%.png,tmp_%.scad,$@) 2<&1
|
||||
${CONVERT} -trim -resize 400x400 -border 10x10 -bordercolor '#ffffe5' $(subst docs/assembly/,tmp_asm_,$@) $@
|
||||
rm -f $(subst docs/assembly/,tmp_asm_,$@) $(patsubst docs/assembly/%.png,tmp_%.scad,$@)
|
||||
|
||||
${ASM_AFTER_TARGETS}: full_assembly.scad
|
||||
echo "use <full_assembly.scad>" > $(patsubst docs/assembly/%.png,tmp_%.scad,$@)
|
||||
echo "$(patsubst docs/assembly/%_after.png,%,$@)(explode=0, arrows=false);" >> $(patsubst docs/assembly/%.png,tmp_%.scad,$@)
|
||||
${OPENSCAD} -o $(subst docs/assembly/,tmp_asm2_,$@) \
|
||||
--csglimit=2000000 --imgsize=3200,3200 --projection=p \
|
||||
$(shell grep -A2 'module $(patsubst docs/assembly/%_after.png,%,$@)' full_assembly.scad | head -5 | grep '// *view:' | sed 's/[^]0-9.,]//g' | sed 's/[]]/,/g' | sed 's/^/--camera=/') \
|
||||
--autocenter --viewall \
|
||||
$(patsubst docs/assembly/%.png,tmp_%.scad,$@) 2<&1
|
||||
${CONVERT} -trim -resize 400x400 -border 10x10 -bordercolor '#ffffe5' $(subst docs/assembly/,tmp_asm2_,$@) $@
|
||||
rm -f $(subst docs/assembly/,tmp_asm2_,$@) $(patsubst docs/assembly/%.png,tmp_%.scad,$@)
|
||||
|
||||
${ROTFILES}: full_assembly.scad $(wildcard *.scad)
|
||||
${OPENSCAD} -o $(subst wiki/,tmp_,$@) --imgsize=1024,1024 \
|
||||
--projection=p --csglimit=2000000 \
|
||||
@@ -62,16 +92,31 @@ wiki: rendering renderparts animation
|
||||
|
||||
|
||||
# Dependencies follow.
|
||||
STLs/cantilever_arm_parts.stl: joiners.scad
|
||||
STLs/cantilever_joint_parts.stl: joiners.scad
|
||||
STLs/cable_chain_link_parts.stl: joiners.scad
|
||||
STLs/cable_chain_mount_parts.stl: joiners.scad
|
||||
STLs/cooling_fan_shroud_parts.stl: joiners.scad
|
||||
STLs/drive_gear_parts.stl: publicDomainGearV1.1.scad
|
||||
STLs/extruder_platform_parts.stl: joiners.scad
|
||||
STLs/extruder_fan_clip_parts.stl: joiners.scad
|
||||
STLs/extruder_fan_shroud_parts.stl: joiners.scad
|
||||
STLs/extruder_idler_parts.stl: joiners.scad
|
||||
STLs/extruder_motor_clip_parts.stl: joiners.scad
|
||||
STLs/jhead_platform_parts.stl: joiners.scad
|
||||
STLs/lifter_lock_nut_parts.stl: joiners.scad
|
||||
STLs/lifter_rod_coupler_parts.stl: joiners.scad
|
||||
STLs/motor_mount_plate_parts.stl: joiners.scad NEMA.scad
|
||||
STLs/platform_support_parts.stl: joiners.scad
|
||||
STLs/rail_endcap_parts.stl: joiners.scad
|
||||
STLs/rail_motor_segment_parts.stl: joiners.scad
|
||||
STLs/rail_segment_parts.stl: joiners.scad
|
||||
STLs/rail_segment_parts.stl: joiners.scad sliders.scad
|
||||
STLs/rail_xy_motor_segment_parts.stl: joiners.scad sliders.scad
|
||||
STLs/rail_z_motor_segment_parts.stl: joiners.scad
|
||||
STLs/rambo_mount_parts.stl: joiners.scad
|
||||
STLs/ramps_mount_parts.stl: joiners.scad
|
||||
STLs/sled_endcap_parts.stl: joiners.scad
|
||||
STLs/sled_parts.stl: joiners.scad publicDomainGearV1.1.scad
|
||||
STLs/slop_calibrator_parts.stl: joiners.scad
|
||||
STLs/spool_holder_parts.stl: joiners.scad
|
||||
STLs/support_leg_parts.stl: joiners.scad
|
||||
STLs/xy_joiner_parts.stl: joiners.scad
|
||||
STLs/xy_sled_parts.stl: joiners.scad publicDomainGearV1.1.scad sliders.scad
|
||||
STLs/yz_joiner_parts.stl: joiners.scad
|
||||
STLs/z_sled_parts.stl: joiners.scad publicDomainGearV1.1.scad acme_screw.scad sliders.scad
|
||||
|
||||
|
||||
@@ -5155,30 +5155,30 @@ solid Model
|
||||
outer loop
|
||||
vertex -54.15 -51.1547 7
|
||||
vertex -46.65 -51.1547 7
|
||||
vertex -30.65 -51.1547 7
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 0
|
||||
outer loop
|
||||
vertex -54.15 -51.1547 7
|
||||
vertex -30.65 -51.1547 7
|
||||
vertex 46.65 -51.1547 7
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 0
|
||||
outer loop
|
||||
vertex -54.15 -51.1547 7
|
||||
vertex 46.65 -51.1547 7
|
||||
vertex 54.15 -51.1547 7
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 0
|
||||
outer loop
|
||||
vertex -46.65 -51.1547 7
|
||||
vertex -30.65 -51.1547 7
|
||||
vertex 30.65 -51.1547 7
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 0
|
||||
outer loop
|
||||
vertex -46.65 -51.1547 7
|
||||
vertex 30.65 -51.1547 7
|
||||
vertex 46.65 -51.1547 7
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 0
|
||||
outer loop
|
||||
vertex -46.65 -51.1547 7
|
||||
vertex 46.65 -51.1547 7
|
||||
vertex 54.15 -51.1547 7
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -54.15 -51.1547 7
|
||||
|
||||
BIN
docs/assembly/arrow.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
docs/assembly/extruder_bridge_assembly_10_after.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
docs/assembly/extruder_bridge_assembly_10_before.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
docs/assembly/extruder_bridge_assembly_11_after.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
docs/assembly/extruder_bridge_assembly_11_before.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
docs/assembly/extruder_bridge_assembly_12_after.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
docs/assembly/extruder_bridge_assembly_12_before.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
docs/assembly/extruder_bridge_assembly_13_after.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
docs/assembly/extruder_bridge_assembly_13_before.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
docs/assembly/extruder_bridge_assembly_1_after.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
docs/assembly/extruder_bridge_assembly_1_before.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
docs/assembly/extruder_bridge_assembly_2_after.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
docs/assembly/extruder_bridge_assembly_2_before.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
docs/assembly/extruder_bridge_assembly_3_after.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
docs/assembly/extruder_bridge_assembly_3_before.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
docs/assembly/extruder_bridge_assembly_4_after.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
docs/assembly/extruder_bridge_assembly_4_before.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
docs/assembly/extruder_bridge_assembly_5_after.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
docs/assembly/extruder_bridge_assembly_5_before.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
docs/assembly/extruder_bridge_assembly_6_after.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
docs/assembly/extruder_bridge_assembly_6_before.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
docs/assembly/extruder_bridge_assembly_7_after.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
docs/assembly/extruder_bridge_assembly_7_before.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
docs/assembly/extruder_bridge_assembly_8_after.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
docs/assembly/extruder_bridge_assembly_8_before.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/assembly/extruder_bridge_assembly_9_after.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
docs/assembly/extruder_bridge_assembly_9_before.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
docs/assembly/final_assembly_1_after.png
Normal file
|
After Width: | Height: | Size: 110 KiB |
BIN
docs/assembly/final_assembly_1_before.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
docs/assembly/final_assembly_2_after.png
Normal file
|
After Width: | Height: | Size: 152 KiB |
BIN
docs/assembly/final_assembly_2_before.png
Normal file
|
After Width: | Height: | Size: 110 KiB |
BIN
docs/assembly/final_assembly_3_after.png
Normal file
|
After Width: | Height: | Size: 142 KiB |
BIN
docs/assembly/final_assembly_3_before.png
Normal file
|
After Width: | Height: | Size: 103 KiB |
BIN
docs/assembly/final_assembly_4_after.png
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
docs/assembly/final_assembly_4_before.png
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
docs/assembly/final_assembly_5_after.png
Normal file
|
After Width: | Height: | Size: 149 KiB |
BIN
docs/assembly/final_assembly_5_before.png
Normal file
|
After Width: | Height: | Size: 110 KiB |
BIN
docs/assembly/final_assembly_6_after.png
Normal file
|
After Width: | Height: | Size: 103 KiB |
BIN
docs/assembly/final_assembly_6_before.png
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
docs/assembly/final_assembly_7_after.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
docs/assembly/final_assembly_7_before.png
Normal file
|
After Width: | Height: | Size: 90 KiB |
243
docs/assembly/index.html
Normal file
@@ -0,0 +1,243 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Snappy Assembly</title>
|
||||
<style>
|
||||
BODY {
|
||||
margin-bottom: 200px;
|
||||
}
|
||||
TABLE TD {
|
||||
vertical-align: middle;
|
||||
}
|
||||
H2 {
|
||||
margin-bottom: 5px;
|
||||
margin-top: 24px;
|
||||
font-size: 20pt;
|
||||
}
|
||||
LI.section {
|
||||
font-size: 20pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
H3 {
|
||||
margin-left: -15px;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 18px;
|
||||
font-size: 16pt;
|
||||
}
|
||||
LI.step {
|
||||
padding-left: 15px;
|
||||
margin-left: 0;
|
||||
font-size: 16pt;
|
||||
font-weight: bold;
|
||||
list-style-type: none;
|
||||
}
|
||||
DIV.desc {
|
||||
margin-bottom: 15px;
|
||||
font-size: 12pt;
|
||||
font-weight: normal;
|
||||
}
|
||||
OL {
|
||||
margin-left: 30px;
|
||||
}
|
||||
UL {
|
||||
padding-left: 5px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Snappy RepRap Assembly Instructions</h1>
|
||||
<ol>
|
||||
<li class="section"><h2>XY Motor Assembly</h2>
|
||||
<div class="desc">Press-fit a drive gear onto the shaft of a stepper motor, making sure to align the flat of the shaft with the flat of the shaft hole. Repeat this with the other drive gear and another stepper.</div>
|
||||
<table><tr><td class="befor"><img src="xy_motor_assembly_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="xy_motor_assembly_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="section"><h2>Motor Mount Assembly</h2>
|
||||
<div class="desc">Attach a limit micro-switch (with wiring) to one of the side clips, with the lever end towards the center. Do this again for a second switch and mount plate.</div>
|
||||
<table><tr><td class="befor"><img src="motor_mount_assembly_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="motor_mount_assembly_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="section"><h2>XY Motor Segment Assembly</h2>
|
||||
<div class="desc">Seat the stepper motor with drive gear in the X/Y motor rail segment. Clamp it into place with a motor mount plate with micro-switch. Repeat this to make a second XY motor segment assembly.</div>
|
||||
<table><tr><td class="befor"><img src="xy_motor_segment_assembly_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="xy_motor_segment_assembly_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="section"><h2>Y Axis Assembly</h2>
|
||||
<ul>
|
||||
<li class="step"><h3>Step 1</h3>
|
||||
<div class="desc">Join a rail segment to each end of another motor rail assembly. Route wiring out the side wiring access hole on the motor rail segment.</div>
|
||||
<table><tr><td class="befor"><img src="y_axis_assembly_1_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="y_axis_assembly_1_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 2</h3>
|
||||
<div class="desc">Join opposing platform supports to either side of the sled endcap. Point the tabs toward the side with the joiners.</div>
|
||||
<table><tr><td class="befor"><img src="y_axis_assembly_2_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="y_axis_assembly_2_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 3</h3>
|
||||
<div class="desc">Join two XY sled parts together. Make sure the bottom racks line up.</div>
|
||||
<table><tr><td class="befor"><img src="y_axis_assembly_3_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="y_axis_assembly_3_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 4</h3>
|
||||
<div class="desc">Join a Y sled endcap assembly to one end of the Y sled central assembly.</div>
|
||||
<table><tr><td class="befor"><img src="y_axis_assembly_4_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="y_axis_assembly_4_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 5</h3>
|
||||
<div class="desc">Slide the Y sled partial assembly onto the Y axis rails assembly, so that it is centered.</div>
|
||||
<table><tr><td class="befor"><img src="y_axis_assembly_5_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="y_axis_assembly_5_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 6</h3>
|
||||
<div class="desc">Join the other Y sled endcap assembly to the end of the Y sled partial assembly.</div>
|
||||
<table><tr><td class="befor"><img src="y_axis_assembly_6_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="y_axis_assembly_6_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 7</h3>
|
||||
<div class="desc">Join a rail endcap to each end of the Y axis with completed sled assembly.</div>
|
||||
<table><tr><td class="befor"><img src="y_axis_assembly_7_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="y_axis_assembly_7_after.png"></td></tr></table>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="section"><h2>X Axis Assembly</h2>
|
||||
<ul>
|
||||
<li class="step"><h3>Step 1</h3>
|
||||
<div class="desc">Join a rail segment to each end of a motor rail assembly, to make the X axis slider. Route the wiring to one end of the slider assembly.</div>
|
||||
<table><tr><td class="befor"><img src="x_axis_assembly_1_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="x_axis_assembly_1_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 2</h3>
|
||||
<div class="desc">Join two XY sled parts together. Make sure the bottom racks line up.</div>
|
||||
<table><tr><td class="befor"><img src="x_axis_assembly_2_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="x_axis_assembly_2_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 3</h3>
|
||||
<div class="desc">Join an X sled endcap assembly to one end of the X sled central assembly.</div>
|
||||
<table><tr><td class="befor"><img src="x_axis_assembly_3_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="x_axis_assembly_3_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 4</h3>
|
||||
<div class="desc">Slide the X sled partial assembly onto the X axis rails assembly, so that it is centered.</div>
|
||||
<table><tr><td class="befor"><img src="x_axis_assembly_4_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="x_axis_assembly_4_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 5</h3>
|
||||
<div class="desc">Connect the Y axis assembly to the XY joiner on the X axis partial assembly.</div>
|
||||
<table><tr><td class="befor"><img src="x_axis_assembly_5_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="x_axis_assembly_5_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 6</h3>
|
||||
<div class="desc">Join the other X sled endcap assembly to the end of the X sled assembly, fixing the Y sled assembly in place.</div>
|
||||
<table><tr><td class="befor"><img src="x_axis_assembly_6_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="x_axis_assembly_6_after.png"></td></tr></table>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="section"><h2>Z Tower Assembly</h2>
|
||||
<ul>
|
||||
<li class="step"><h3>Step 1</h3>
|
||||
<div class="desc">Seat the stepper motor in the Z motor rail segment. Clamp it into place with a motor mount plate without micro-switch. Repeat this to make a second Z motor segment assembly.</div>
|
||||
<table><tr><td class="befor"><img src="z_tower_assembly_1_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="z_tower_assembly_1_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 2</h3>
|
||||
<div class="desc">Screw the lock nut onto the threaded rod.</div>
|
||||
<table><tr><td class="befor"><img src="z_tower_assembly_2_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="z_tower_assembly_2_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 3</h3>
|
||||
<div class="desc">Screw the rod into the coupler fully, then tighten the lock nut up against the coupler.</div>
|
||||
<table><tr><td class="befor"><img src="z_tower_assembly_3_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="z_tower_assembly_3_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 4</h3>
|
||||
<div class="desc">Press-fit the lifter rod assembly to the mounted motor shaft. Make sure the flatted side of the shaft is aligned with the flat of the shaft hole. Repeat this with the other Z motor segment assembly.</div>
|
||||
<table><tr><td class="befor"><img src="z_tower_assembly_4_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="z_tower_assembly_4_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 5</h3>
|
||||
<div class="desc">Attach two rail segments to the top of the motor Z lifter assembly. Repeat this with the other motor Z lifter assembly.</div>
|
||||
<table><tr><td class="befor"><img src="z_tower_assembly_5_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="z_tower_assembly_5_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 6</h3>
|
||||
<div class="desc">Attach support legs to each side of the yz_joiner part.</div>
|
||||
<table><tr><td class="befor"><img src="z_tower_assembly_6_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="z_tower_assembly_6_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 7</h3>
|
||||
<div class="desc">Attach the Z rail assembly to the top of the YZ joiner assembly.</div>
|
||||
<table><tr><td class="befor"><img src="z_tower_assembly_7_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="z_tower_assembly_7_after.png"></td></tr></table>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="section"><h2>Extruder Bridge Assembly</h2>
|
||||
<ul>
|
||||
<li class="step"><h3>Step 1</h3>
|
||||
<div class="desc">Insert the 686 bearing into the extruder idler arm.</div>
|
||||
<table><tr><td class="befor"><img src="extruder_bridge_assembly_1_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="extruder_bridge_assembly_1_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 2</h3>
|
||||
<div class="desc">Insert the idler axle through the 686 bearing, and lock it into the extruder idler arm with the axle cap.</div>
|
||||
<table><tr><td class="befor"><img src="extruder_bridge_assembly_2_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="extruder_bridge_assembly_2_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 3</h3>
|
||||
<div class="desc">Attach the extruder drive gear onto the stepper motor shaft.</div>
|
||||
<table><tr><td class="befor"><img src="extruder_bridge_assembly_3_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="extruder_bridge_assembly_3_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 4</h3>
|
||||
<div class="desc">Slide the JHead extruder hot end into the slot in the bottom of the JHead platform.</div>
|
||||
<table><tr><td class="befor"><img src="extruder_bridge_assembly_4_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="extruder_bridge_assembly_4_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 5</h3>
|
||||
<div class="desc">Clip the extruder motor with drive gear to the jhead platform using the extruder motor clip.</div>
|
||||
<table><tr><td class="befor"><img src="extruder_bridge_assembly_5_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="extruder_bridge_assembly_5_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 6</h3>
|
||||
<div class="desc">Insert the idler arm into the idler hinge hole on the JHead platform.</div>
|
||||
<table><tr><td class="befor"><img src="extruder_bridge_assembly_6_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="extruder_bridge_assembly_6_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 7</h3>
|
||||
<div class="desc">Insert the idler latch arm into the latch hinge hole on the JHead platform.</div>
|
||||
<table><tr><td class="befor"><img src="extruder_bridge_assembly_7_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="extruder_bridge_assembly_7_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 8</h3>
|
||||
<div class="desc">Insert the extruder fan shroud into the JHead platform, latching the JHead hot end, and idler and latch arms into place.</div>
|
||||
<table><tr><td class="befor"><img src="extruder_bridge_assembly_8_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="extruder_bridge_assembly_8_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 9</h3>
|
||||
<div class="desc">Clip a cooling fan to the top of the extruder fan shroud using the extruder fan clip part.</div>
|
||||
<table><tr><td class="befor"><img src="extruder_bridge_assembly_9_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="extruder_bridge_assembly_9_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 10</h3>
|
||||
<div class="desc">Attach a cooling fan to the cooling fan shroud.</div>
|
||||
<table><tr><td class="befor"><img src="extruder_bridge_assembly_10_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="extruder_bridge_assembly_10_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 11</h3>
|
||||
<div class="desc">Attach the cooling fan shroud assembly to the bottom of the extruder fan shroud.</div>
|
||||
<table><tr><td class="befor"><img src="extruder_bridge_assembly_11_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="extruder_bridge_assembly_11_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 12</h3>
|
||||
<div class="desc">Attach rail segments to either end of the extruder platform assembly.</div>
|
||||
<table><tr><td class="befor"><img src="extruder_bridge_assembly_12_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="extruder_bridge_assembly_12_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 13</h3>
|
||||
<div class="desc">Attach rail segments to either end of the extruder platform assembly.</div>
|
||||
<table><tr><td class="befor"><img src="extruder_bridge_assembly_13_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="extruder_bridge_assembly_13_after.png"></td></tr></table>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="section"><h2>Final Assembly</h2>
|
||||
<ul>
|
||||
<li class="step"><h3>Step 1</h3>
|
||||
<div class="desc">Attach the two Z tower assemblies to either end of the XY axes assembly.</div>
|
||||
<table><tr><td class="befor"><img src="final_assembly_1_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="final_assembly_1_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 2</h3>
|
||||
<div class="desc">Lower the extruder bridge down into the Z tower grooves, screwing the lifter rods into the Z sleds evenly.</div>
|
||||
<table><tr><td class="befor"><img src="final_assembly_2_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="final_assembly_2_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 3</h3>
|
||||
<div class="desc">Attach the Z tower endcap.</div>
|
||||
<table><tr><td class="befor"><img src="final_assembly_3_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="final_assembly_3_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 4</h3>
|
||||
<div class="desc">Attach the spool holder to the top of the other Z tower.</div>
|
||||
<table><tr><td class="befor"><img src="final_assembly_4_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="final_assembly_4_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 5</h3>
|
||||
<div class="desc">Attach the RAMPS motherboard mount to the end of the printer base.</div>
|
||||
<table><tr><td class="befor"><img src="final_assembly_5_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="final_assembly_5_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 6</h3>
|
||||
<div class="desc">Clip the glass build platform to the build platform supports using four binder clips.</div>
|
||||
<table><tr><td class="befor"><img src="final_assembly_6_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="final_assembly_6_after.png"></td></tr></table>
|
||||
</li>
|
||||
<li class="step"><h3>Step 7</h3>
|
||||
<div class="desc">Cradle the spool axle in the spool holder top.</div>
|
||||
<table><tr><td class="befor"><img src="final_assembly_7_before.png"></td><td class="arrow"><img src="arrow.png"></td><td class="after"><img src="final_assembly_7_after.png"></td></tr></table>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>
|
||||
BIN
docs/assembly/motor_mount_assembly_after.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
docs/assembly/motor_mount_assembly_before.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
docs/assembly/x_axis_assembly_1_after.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
docs/assembly/x_axis_assembly_1_before.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
docs/assembly/x_axis_assembly_2_after.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
docs/assembly/x_axis_assembly_2_before.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
docs/assembly/x_axis_assembly_3_after.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
docs/assembly/x_axis_assembly_3_before.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
docs/assembly/x_axis_assembly_4_after.png
Normal file
|
After Width: | Height: | Size: 105 KiB |
BIN
docs/assembly/x_axis_assembly_4_before.png
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
docs/assembly/x_axis_assembly_5_after.png
Normal file
|
After Width: | Height: | Size: 120 KiB |
BIN
docs/assembly/x_axis_assembly_5_before.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
docs/assembly/x_axis_assembly_6_after.png
Normal file
|
After Width: | Height: | Size: 115 KiB |
BIN
docs/assembly/x_axis_assembly_6_before.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
docs/assembly/xy_motor_assembly_after.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
docs/assembly/xy_motor_assembly_before.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
docs/assembly/xy_motor_segment_assembly_after.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/assembly/xy_motor_segment_assembly_before.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
docs/assembly/y_axis_assembly_1_after.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
docs/assembly/y_axis_assembly_1_before.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/assembly/y_axis_assembly_2_after.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
docs/assembly/y_axis_assembly_2_before.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
docs/assembly/y_axis_assembly_3_after.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
docs/assembly/y_axis_assembly_3_before.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
docs/assembly/y_axis_assembly_4_after.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
docs/assembly/y_axis_assembly_4_before.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
docs/assembly/y_axis_assembly_5_after.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
docs/assembly/y_axis_assembly_5_before.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
docs/assembly/y_axis_assembly_6_after.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
docs/assembly/y_axis_assembly_6_before.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
docs/assembly/y_axis_assembly_7_after.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
docs/assembly/y_axis_assembly_7_before.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
docs/assembly/z_tower_assembly_1_after.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
docs/assembly/z_tower_assembly_1_before.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
docs/assembly/z_tower_assembly_2_after.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
docs/assembly/z_tower_assembly_2_before.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
docs/assembly/z_tower_assembly_3_after.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
docs/assembly/z_tower_assembly_3_before.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
docs/assembly/z_tower_assembly_4_after.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
docs/assembly/z_tower_assembly_4_before.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
docs/assembly/z_tower_assembly_5_after.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
docs/assembly/z_tower_assembly_5_before.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
docs/assembly/z_tower_assembly_6_after.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/assembly/z_tower_assembly_6_before.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
docs/assembly/z_tower_assembly_7_after.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
docs/assembly/z_tower_assembly_7_before.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
@@ -91,7 +91,7 @@ module extruder_idler()
|
||||
|
||||
module extruder_latch()
|
||||
{
|
||||
color("Brown")
|
||||
color([0.6, 0.4, 0.0])
|
||||
prerender(convexity=10)
|
||||
difference() {
|
||||
union() {
|
||||
|
||||
1420
full_assembly.scad
166
gen_assembly_index.py
Executable file
@@ -0,0 +1,166 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
class GenAssemblyIndex(object):
|
||||
indexfile = "docs/assembly/index.html"
|
||||
sourcefile = "full_assembly.scad"
|
||||
modules = []
|
||||
modinfo = {}
|
||||
|
||||
def write_index(self):
|
||||
with open(self.indexfile, "w") as f:
|
||||
f.write("""\
|
||||
<html>
|
||||
<head>
|
||||
<title>Snappy Assembly</title>
|
||||
<style>
|
||||
BODY {
|
||||
margin-bottom: 200px;
|
||||
}
|
||||
TABLE TD {
|
||||
vertical-align: middle;
|
||||
}
|
||||
H2 {
|
||||
margin-bottom: 5px;
|
||||
margin-top: 24px;
|
||||
font-size: 20pt;
|
||||
}
|
||||
LI.section {
|
||||
font-size: 20pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
H3 {
|
||||
margin-left: -15px;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 18px;
|
||||
font-size: 16pt;
|
||||
}
|
||||
LI.step {
|
||||
padding-left: 15px;
|
||||
margin-left: 0;
|
||||
font-size: 16pt;
|
||||
font-weight: bold;
|
||||
list-style-type: none;
|
||||
}
|
||||
DIV.desc {
|
||||
margin-bottom: 15px;
|
||||
font-size: 12pt;
|
||||
font-weight: normal;
|
||||
}
|
||||
OL {
|
||||
margin-left: 30px;
|
||||
}
|
||||
UL {
|
||||
padding-left: 5px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Snappy RepRap Assembly Instructions</h1>
|
||||
<ol>
|
||||
""")
|
||||
|
||||
for mod_eng in self.modules:
|
||||
f.write('<li class="section">')
|
||||
f.write('<h2>%s</h2>\n' % mod_eng)
|
||||
|
||||
stepcnt = len(self.modinfo[mod_eng])
|
||||
if stepcnt > 1:
|
||||
f.write('<ul>\n')
|
||||
|
||||
for stepinfo in self.modinfo[mod_eng]:
|
||||
if stepcnt > 1:
|
||||
f.write('<li class="step">')
|
||||
f.write('<h3>Step {step}</h3>\n'.format(**stepinfo))
|
||||
|
||||
f.write(
|
||||
'<div class="desc">{desc}</div>\n'
|
||||
'<table>'
|
||||
'<tr>'
|
||||
'<td class="befor"><img src="{module}_before.png"></td>'
|
||||
'<td class="arrow"><img src="arrow.png"></td>'
|
||||
'<td class="after"><img src="{module}_after.png"></td>'
|
||||
'</tr>'
|
||||
'</table>\n'
|
||||
.format(**stepinfo)
|
||||
)
|
||||
|
||||
if stepcnt > 1:
|
||||
f.write('</li>\n')
|
||||
|
||||
if stepcnt > 1:
|
||||
f.write('</ul>\n')
|
||||
|
||||
f.write('</li>\n')
|
||||
|
||||
f.write('</ol>\n')
|
||||
f.write('</body>\n')
|
||||
f.write('</html>\n')
|
||||
|
||||
def process_module(self, module, desc):
|
||||
print("module: %s" % module)
|
||||
step = 1
|
||||
mod_eng = module.replace('_', ' ') \
|
||||
.title() \
|
||||
.replace('Xy', 'XY') \
|
||||
.replace('Yz', 'YZ')
|
||||
mod_split = mod_eng.split(" ")
|
||||
if mod_split[-1].isdigit():
|
||||
step = int(mod_split[-1])
|
||||
mod_eng = " ".join(mod_split[:-1])
|
||||
if mod_eng not in self.modules:
|
||||
self.modules.append(mod_eng)
|
||||
self.modinfo[mod_eng] = [
|
||||
{
|
||||
'module': module,
|
||||
'step': step,
|
||||
'desc': desc
|
||||
},
|
||||
]
|
||||
else:
|
||||
self.modinfo[mod_eng].append(
|
||||
{
|
||||
'module': module,
|
||||
'step': step,
|
||||
'desc': desc
|
||||
},
|
||||
)
|
||||
|
||||
def generate_index(self):
|
||||
mod_re = re.compile(
|
||||
r'module *([a-z_][a-z0-9_]*_assembly(_[0-9]+)?) *\('
|
||||
)
|
||||
desc_re = re.compile(r'// *desc: *(.*)$')
|
||||
|
||||
module = ""
|
||||
desc = ""
|
||||
with open(self.sourcefile, "r") as f:
|
||||
for line in f.readlines():
|
||||
mod_res = mod_re.search(line)
|
||||
if mod_res:
|
||||
if module:
|
||||
self.process_module(module, desc)
|
||||
module = mod_res.group(1)
|
||||
desc = ""
|
||||
desc_res = desc_re.search(line)
|
||||
if desc_res:
|
||||
desc += desc_res.group(1)
|
||||
if module:
|
||||
self.process_module(module, desc)
|
||||
self.write_index()
|
||||
|
||||
|
||||
def main():
|
||||
genidx = GenAssemblyIndex()
|
||||
genidx.generate_index()
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
||||
# vim: expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap
|
||||
@@ -8,113 +8,6 @@ $fa = 2;
|
||||
$fs = 2;
|
||||
|
||||
|
||||
jhead_length = 40; // mm
|
||||
jhead_block_size = [18.7, 16, 9.6];
|
||||
jhead_block_off = 7; //mm
|
||||
|
||||
|
||||
module jhead_hotend()
|
||||
{
|
||||
block_h = jhead_block_size[2];
|
||||
down(jhead_length/2-jhead_groove_thick-jhead_shelf_thick) {
|
||||
color([0.3, 0.3, 0.3])
|
||||
difference() {
|
||||
cylinder(h=jhead_length, d=jhead_barrel_diam, center=true);
|
||||
cylinder(h=jhead_length+1, d=2, center=true, $fn=12);
|
||||
up(4*4/2-jhead_length/2+0.5*25.4) {
|
||||
zring(n=4, r=jhead_barrel_diam/2) {
|
||||
zspread(4, n=4) {
|
||||
yspread(6) {
|
||||
yrot(90) cylinder(h=4*2, d=3, center=true, $fn=12);
|
||||
}
|
||||
cube([4*2, 6, 3], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
up(jhead_length/2-jhead_shelf_thick-jhead_groove_thick/2) {
|
||||
difference() {
|
||||
cylinder(h=jhead_groove_thick, d=jhead_barrel_diam+1, center=true);
|
||||
cylinder(h=jhead_groove_thick+1, d=jhead_groove_diam, center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
color("silver")
|
||||
down((jhead_length+block_h)/2) {
|
||||
difference() {
|
||||
left(jhead_block_off/2) {
|
||||
cube(jhead_block_size, center=true);
|
||||
}
|
||||
left(jhead_block_off) {
|
||||
xrot(90) cylinder(h=100, d=6, center=true);
|
||||
}
|
||||
cylinder(h=100, d=2, center=true, $fn=12);
|
||||
}
|
||||
difference() {
|
||||
down((block_h+3)/2) {
|
||||
cylinder(h=3, r=4, center=true);
|
||||
down((3+1.2)/2) {
|
||||
cylinder(h=1.2, r1=1, r2=4, center=true);
|
||||
}
|
||||
}
|
||||
cylinder(h=50, d=0.4, center=true, $fn=8);
|
||||
}
|
||||
}
|
||||
}
|
||||
color("silver")
|
||||
up(jhead_groove_thick+jhead_shelf_thick) {
|
||||
difference() {
|
||||
cylinder(h=jhead_cap_height, d=jhead_cap_diam, $fn=6);
|
||||
down(0.5) cylinder(h=jhead_cap_height+1, d=2, $fn=12);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module extruder_drive_gear()
|
||||
{
|
||||
color("silver") {
|
||||
difference() {
|
||||
cylinder(h=12, d=extruder_drive_diam);
|
||||
up(12-3.5) {
|
||||
torus(ir=extruder_drive_diam/2-1, or=extruder_drive_diam/2+4, $fn=24);
|
||||
}
|
||||
down(1) cylinder(h=15, d=motor_shaft_size, $fn=12);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module extruder_fan()
|
||||
{
|
||||
up(extruder_fan_thick/2)
|
||||
color([0.4, 0.4, 0.4]) {
|
||||
difference() {
|
||||
chamfcube(size=[extruder_fan_size, extruder_fan_size, extruder_fan_thick], chamfer=3, chamfaxes=[0,0,1], center=true);
|
||||
cylinder(h=extruder_fan_thick+1, d=extruder_fan_size-2, center=true);
|
||||
xspread(extruder_fan_size-3-3) {
|
||||
yspread(extruder_fan_size-3-3) {
|
||||
cylinder(h=extruder_fan_thick+1, d=3, center=true, $fn=12);
|
||||
}
|
||||
}
|
||||
}
|
||||
up((2-0.1)/2) {
|
||||
linear_extrude(height=extruder_fan_thick-2, twist=30, slices=4, center=true, convexity=10) {
|
||||
circle(r=extruder_fan_size/4, center=true);
|
||||
zring(r=(extruder_fan_size-3)/4, n=8) {
|
||||
square([(extruder_fan_size-3)/2, 1], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
cylinder(h=extruder_fan_thick, d=extruder_fan_size/2-3, center=true);
|
||||
down(extruder_fan_thick/2-1/2) {
|
||||
cube([extruder_fan_size, 3, 1], center=true);
|
||||
cube([3, extruder_fan_size, 1], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
//!extruder_fan();
|
||||
|
||||
|
||||
module jhead_platform()
|
||||
{
|
||||
platform_vert_off = rail_height+groove_height+rail_offset;
|
||||
@@ -128,6 +21,7 @@ module jhead_platform()
|
||||
|
||||
color("SteelBlue")
|
||||
prerender(convexity=10)
|
||||
zrot(-90)
|
||||
union() {
|
||||
difference() {
|
||||
union() {
|
||||
|
||||
@@ -5,7 +5,7 @@ use <joiners.scad>
|
||||
|
||||
module rail_endcap()
|
||||
{
|
||||
joiner_length=30;
|
||||
joiner_length=40;
|
||||
base_height = rail_height+groove_height;
|
||||
|
||||
color("YellowGreen")
|
||||
@@ -47,7 +47,7 @@ module rail_endcap()
|
||||
translate([0, 0, base_height/2-(base_height-rail_height)/2]) {
|
||||
joiner_pair(spacing=rail_spacing+joiner_width, h=rail_height, w=joiner_width, l=joiner_length, a=joiner_angle);
|
||||
}
|
||||
|
||||
|
||||
// Endstop clip
|
||||
fwd((endstop_depth+2)/2) {
|
||||
left((rail_width-2*joiner_width-endstop_thick-2+0.05)/2) {
|
||||
|
||||
@@ -18,7 +18,7 @@ module support_leg(h=rail_height, l=75)
|
||||
}
|
||||
|
||||
// Legs.
|
||||
grid_of(xa=[-platform_length/4, platform_length/4]) {
|
||||
xspread(platform_length/2) {
|
||||
translate([0, l/2, 0.75*h/2]) {
|
||||
thinning_triangle(h=0.75*h, l=l, thick=platform_thick);
|
||||
}
|
||||
|
||||
181
vitamins.scad
Normal file
@@ -0,0 +1,181 @@
|
||||
include <config.scad>
|
||||
include <GDMUtils.scad>
|
||||
|
||||
|
||||
$fa = 2;
|
||||
$fs = 2;
|
||||
|
||||
|
||||
module arrow(size=10, headpart=0.4) {
|
||||
color("orange")
|
||||
yrot(90) {
|
||||
down(size/2)
|
||||
union() {
|
||||
up(size*headpart/2) cylinder(d1=0, d2=size/2, h=size*headpart, center=true, $fn=18);
|
||||
up(size/2+size*headpart/2) cylinder(d=size/6, h=size*(1-headpart), center=true, $fn=18);
|
||||
}
|
||||
}
|
||||
}
|
||||
//!arrow(size=200);
|
||||
|
||||
|
||||
module jhead_hotend()
|
||||
{
|
||||
jhead_length = 40; // mm
|
||||
jhead_block_size = [18.7, 16, 9.6];
|
||||
jhead_block_off = 7; //mm
|
||||
|
||||
block_h = jhead_block_size[2];
|
||||
down(jhead_length/2-jhead_groove_thick-jhead_shelf_thick) {
|
||||
color([0.3, 0.3, 0.3])
|
||||
difference() {
|
||||
cylinder(h=jhead_length, d=jhead_barrel_diam-0.05, center=true);
|
||||
cylinder(h=jhead_length+1, d=2, center=true, $fn=12);
|
||||
up(4*4/2-jhead_length/2+0.5*25.4) {
|
||||
zring(n=4, r=jhead_barrel_diam/2-0.05) {
|
||||
zspread(4, n=4) {
|
||||
yspread(6) {
|
||||
yrot(90) cylinder(h=4*2, d=3, center=true, $fn=12);
|
||||
}
|
||||
cube([4*2, 6, 3], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
up(jhead_length/2-jhead_shelf_thick-jhead_groove_thick/2) {
|
||||
difference() {
|
||||
cylinder(h=jhead_groove_thick, d=jhead_barrel_diam+1, center=true);
|
||||
cylinder(h=jhead_groove_thick+1, d=jhead_groove_diam, center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
color("silver")
|
||||
down((jhead_length+block_h)/2) {
|
||||
difference() {
|
||||
left(jhead_block_off/2) {
|
||||
cube(jhead_block_size, center=true);
|
||||
}
|
||||
left(jhead_block_off) {
|
||||
xrot(90) cylinder(h=100, d=6, center=true);
|
||||
}
|
||||
cylinder(h=100, d=2, center=true, $fn=12);
|
||||
}
|
||||
difference() {
|
||||
down((block_h+3)/2) {
|
||||
cylinder(h=3, r=4, center=true);
|
||||
down((3+1.2)/2) {
|
||||
cylinder(h=1.2, r1=1, r2=4, center=true);
|
||||
}
|
||||
}
|
||||
cylinder(h=50, d=0.4, center=true, $fn=8);
|
||||
}
|
||||
}
|
||||
}
|
||||
color("silver")
|
||||
up(jhead_groove_thick+jhead_shelf_thick) {
|
||||
difference() {
|
||||
cylinder(h=jhead_cap_height, d=jhead_cap_diam, $fn=6);
|
||||
down(0.5) cylinder(h=jhead_cap_height+1, d=2, $fn=12);
|
||||
}
|
||||
}
|
||||
}
|
||||
//!jhead_hotend();
|
||||
|
||||
|
||||
|
||||
module extruder_drive_gear()
|
||||
{
|
||||
color("silver") {
|
||||
difference() {
|
||||
cylinder(h=12, d=extruder_drive_diam);
|
||||
up(12-3.5) {
|
||||
torus(ir=extruder_drive_diam/2-1, or=extruder_drive_diam/2+4, $fn=24);
|
||||
}
|
||||
down(1) cylinder(h=15, d=motor_shaft_size, $fn=12);
|
||||
up(3.5) yrot(90) cylinder(h=extruder_drive_diam/2+1, d=3, $fn=12);
|
||||
}
|
||||
}
|
||||
}
|
||||
//!extruder_drive_gear();
|
||||
|
||||
|
||||
|
||||
module cooling_fan()
|
||||
{
|
||||
up(extruder_fan_thick/2)
|
||||
color([0.4, 0.4, 0.4]) {
|
||||
difference() {
|
||||
chamfcube(size=[extruder_fan_size, extruder_fan_size, extruder_fan_thick], chamfer=3, chamfaxes=[0,0,1], center=true);
|
||||
cylinder(h=extruder_fan_thick+1, d=extruder_fan_size-2, center=true);
|
||||
xspread(extruder_fan_size-3-3) {
|
||||
yspread(extruder_fan_size-3-3) {
|
||||
cylinder(h=extruder_fan_thick+1, d=3, center=true, $fn=12);
|
||||
}
|
||||
}
|
||||
}
|
||||
up((2-0.1)/2) {
|
||||
linear_extrude(height=extruder_fan_thick-2, twist=30, slices=4, center=true, convexity=10) {
|
||||
circle(r=extruder_fan_size/4, center=true);
|
||||
zring(r=(extruder_fan_size-3)/4, n=8) {
|
||||
square([(extruder_fan_size-3)/2, 1], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
cylinder(h=extruder_fan_thick, d=extruder_fan_size/2-3, center=true);
|
||||
down(extruder_fan_thick/2-1/2) {
|
||||
cube([extruder_fan_size, 3, 1], center=true);
|
||||
cube([3, extruder_fan_size, 1], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
//!cooling_fan();
|
||||
|
||||
|
||||
|
||||
module microswitch()
|
||||
{
|
||||
color([0.3, 0.3, 0.3]) {
|
||||
difference() {
|
||||
cube([endstop_thick, endstop_length, endstop_depth], center=true);
|
||||
xrot(-5) {
|
||||
up(endstop_depth) {
|
||||
cube([endstop_thick+1, endstop_length, endstop_depth], center=true);
|
||||
}
|
||||
}
|
||||
down(endstop_hole_inset/2-endstop_click_voff/2) {
|
||||
yspread(endstop_hole_spacing) {
|
||||
yrot(90) cylinder(h=endstop_thick+1, d=endstop_screw_size, center=true, $fn=12);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
up(endstop_depth/2) {
|
||||
color([0.3, 0.3, 0.3]) {
|
||||
yrot(90) cylinder(h=endstop_thick*0.75, d=1, center=true, $fn=12);
|
||||
}
|
||||
color("silver") {
|
||||
fwd(endstop_length*0.9/2) xrot(5) back(endstop_length*0.9/2) {
|
||||
cube([endstop_thick, endstop_length*0.9, 0.1], center=true);
|
||||
back(endstop_length*0.9/2+1) {
|
||||
top_half() {
|
||||
yrot(90) {
|
||||
difference() {
|
||||
cylinder(h=endstop_thick, r=1, center=true, $fn=12);
|
||||
cylinder(h=endstop_thick+1, r=0.8, center=true, $fn=12);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
grid_of(ya=[-endstop_length/2+2, -endstop_length/8, endstop_length/2-2]) {
|
||||
down(endstop_depth+5/2) {
|
||||
cube([endstop_thick*0.5, 0.2, 5], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//!microswitch();
|
||||
|
||||
|
||||
|
||||
// vim: noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap
|
||||