Updated with all new STLs. Disney, Oxberry and round pegbars completed
78
README.md
|
@ -1,9 +1,31 @@
|
|||
# Animation Pegbars
|
||||
|
||||

|
||||

|
||||
|
||||
The pegbar is a tool for holding punched cels for drawing or shooting.
|
||||
This repo contains scripts for generating pegbars for round holes (three hole punch) as well as for cels made for ACME, Disney and Oxberry.
|
||||
This repo contains scripts for generating pegbars for round pegs (three hole punch) as well as for cels made for ACME, Disney and Oxberry pegs.
|
||||
|
||||
-----
|
||||
|
||||
## Round Pegbars
|
||||
|
||||
This design is intended for use with a standard three hole punch.
|
||||
|
||||
### [Download STL](./stl/pegbar_round.stl)
|
||||
|
||||
# ACME Pegbar in Two Pieces
|
||||
|
||||

|
||||
|
||||
### [Download STL](./stl/pegbar_round_two_piece.stl)
|
||||
|
||||
# ACME Pegbar in Three Pieces
|
||||
|
||||

|
||||
|
||||
### [Download STL](./stl/pegbar_round_three_piece.stl)
|
||||
|
||||
-----
|
||||
|
||||
## ACME Pegbars
|
||||
|
||||
|
@ -14,15 +36,55 @@ There are two variations of this design, for smaller printers.
|
|||
|
||||
### [Download STL](./stl/pegbar_acme.stl)
|
||||
|
||||
# ACME Peg Bar for Small Printers
|
||||
# ACME Pegbar in Two Pieces
|
||||
|
||||

|
||||

|
||||
|
||||
### [Download STL](./stl/pegbar_acme_small_printer.stl)
|
||||
### [Download STL](./stl/pegbar_acme_two_piece.stl)
|
||||
|
||||
# ACME Peg Bar in Three Pieces
|
||||
# ACME Pegbar in Three Pieces
|
||||
|
||||

|
||||

|
||||
|
||||
### [Download STL](./stl/pegbar_acmethree_piece.stl)
|
||||
### [Download STL](./stl/pegbar_acme_three_piece.stl)
|
||||
|
||||
-----
|
||||
|
||||
## Oxberry Pegbars
|
||||
|
||||
This design is used for Oxberry pegs.
|
||||
It is distinct from the ACME design by having thicker outer pegs at a different spacing.
|
||||
|
||||
### [Download STL](./stl/pegbar_oxberry.stl)
|
||||
|
||||
# Oxberry Pegbar in Two Pieces
|
||||
|
||||

|
||||
|
||||
### [Download STL](./stl/pegbar_oxberry_two_piece.stl)
|
||||
|
||||
# Oxberry Pegbar in Three Pieces
|
||||
|
||||

|
||||
|
||||
### [Download STL](./stl/pegbar_oxberry_three_piece.stl)
|
||||
|
||||
-----
|
||||
|
||||
## Disney Pegbars
|
||||
|
||||
This is the design that was used at Disney until they adopted the ACME pegbar standard.
|
||||
|
||||
### [Download STL](./stl/pegbar_disney.stl)
|
||||
|
||||
# Disney Pegbar in Two Pieces
|
||||
|
||||

|
||||
|
||||
### [Download STL](./stl/pegbar_disney_two_piece.stl)
|
||||
|
||||
# Disney Pegbar in Three Pieces
|
||||
|
||||

|
||||
|
||||
### [Download STL](./stl/pegbar_disney_three_piece.stl)
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 11 KiB |
123
scad/pegbar.scad
|
@ -1,16 +1,36 @@
|
|||
use <./common/common.scad>;
|
||||
|
||||
$fn = 160;
|
||||
time = 0;
|
||||
|
||||
L = 254;
|
||||
W = 13;
|
||||
H = 3;
|
||||
CENTER_D = 6.39;
|
||||
CENTER_H = 9.76;
|
||||
SIDE_D = 3.24;
|
||||
SIDE_L = 11.92;
|
||||
SIDE_SPACE = 192; //SPACE BETWEEN INNER PARTS
|
||||
ROUND_L = 254;
|
||||
ROUND_W = 13;
|
||||
ROUND_H = 3;
|
||||
|
||||
ACME_L = 254;
|
||||
ACME_W = 13;
|
||||
ACME_H = 3;
|
||||
|
||||
DISNEY_L = 254;
|
||||
DISNEY_W = 13;
|
||||
DISNEY_H = 3;
|
||||
|
||||
OXBERRY_L = 254;
|
||||
OXBERRY_W = 13;
|
||||
OXBERRY_H = 3;
|
||||
|
||||
ROUND_PEG_D = 6.39;
|
||||
PEG_H = 9.76;
|
||||
|
||||
ACME_PEG_D = 3.24;
|
||||
ACME_PEG_L = 11.92;
|
||||
|
||||
OXBERRY_PEG_D = 6.39;
|
||||
OXBERRY_PEG_L = 11.92;
|
||||
|
||||
ROUND_PEG_SPACING = 108 * 2;
|
||||
ACME_PEG_SPACING = 192;
|
||||
OXBERRY_PEG_SPACING = 192;
|
||||
DISNEY_PEG_SPACING = 7 * 25.4;
|
||||
|
||||
//http://www.cartoonsupplies.com/content/acme-pegbar-plastic
|
||||
|
||||
|
@ -25,15 +45,7 @@ module rounded_bar (arr = [50, 10, 10], fn = 60) {
|
|||
}
|
||||
}
|
||||
|
||||
module pegbar_acme () {
|
||||
rounded_bar([L, W, H], $fn);
|
||||
//cube([20, W, H], center = true);
|
||||
center_peg([0, 0, (CENTER_H / 2) - .5], CENTER_D, CENTER_H);
|
||||
acme_peg([(SIDE_SPACE / 2) + (SIDE_L / 2), 0, (CENTER_H / 2) + .3 ], SIDE_D, SIDE_L, CENTER_H);
|
||||
acme_peg([-(SIDE_SPACE / 2) - (SIDE_L / 2), 0, (CENTER_H / 2) + .3 ], SIDE_D, SIDE_L, CENTER_H);
|
||||
}
|
||||
|
||||
module center_peg (pos = [0, 0, 0], D = 6, H = 9) {
|
||||
module round_peg (pos = [0, 0, 0], D = 6, H = 9) {
|
||||
translate(pos) {
|
||||
cylinder(r = R(D), h = H - (D / 2), center = true);
|
||||
translate([0, 0, (H / 2) - (D / 4)]) {
|
||||
|
@ -45,7 +57,7 @@ module center_peg (pos = [0, 0, 0], D = 6, H = 9) {
|
|||
}
|
||||
}
|
||||
|
||||
module acme_peg (pos = [0, 0, 0], D = 3, L = 11, H = 9) {
|
||||
module enlongated_peg (pos = [0, 0, 0], D = 3, L = 11, H = 9) {
|
||||
translate(pos) {
|
||||
rounded_bar([L, D, H - (D / 2)], fn = $fn);
|
||||
translate([0, 0, (H / 2) - (D / 4)]) {
|
||||
|
@ -61,9 +73,38 @@ module acme_peg (pos = [0, 0, 0], D = 3, L = 11, H = 9) {
|
|||
}
|
||||
}
|
||||
|
||||
module pegbar_acme_small_printer () {
|
||||
module pegbar_round () {
|
||||
rounded_bar([ROUND_L, ROUND_W, ROUND_H], $fn);
|
||||
round_peg([0, 0, (PEG_H / 2) - .5], ROUND_PEG_D, PEG_H);
|
||||
round_peg([(ROUND_PEG_SPACING / 2), 0, (PEG_H / 2) ], ROUND_PEG_D, PEG_H);
|
||||
round_peg([-(ROUND_PEG_SPACING / 2), 0, (PEG_H / 2) ], ROUND_PEG_D, PEG_H);
|
||||
}
|
||||
|
||||
module pegbar_acme () {
|
||||
rounded_bar([ACME_L, ACME_W, ACME_H], $fn);
|
||||
round_peg([0, 0, (PEG_H / 2) - .5], ROUND_PEG_D, PEG_H);
|
||||
enlongated_peg([(ACME_PEG_SPACING / 2) + (ACME_PEG_L / 2), 0, (PEG_H / 2) + .3 ], ACME_PEG_D, ACME_PEG_L, PEG_H);
|
||||
enlongated_peg([-(ACME_PEG_SPACING / 2) - (ACME_PEG_L / 2), 0, (PEG_H / 2) + .3 ], ACME_PEG_D, ACME_PEG_L, PEG_H);
|
||||
}
|
||||
|
||||
module pegbar_oxberry () {
|
||||
rounded_bar([OXBERRY_L, OXBERRY_W, OXBERRY_H], $fn);
|
||||
round_peg([0, 0, (PEG_H / 2) - .5], ROUND_PEG_D, PEG_H);
|
||||
enlongated_peg([(OXBERRY_PEG_SPACING / 2) + (OXBERRY_PEG_L / 2), 0, (PEG_H / 2) + .3 ], OXBERRY_PEG_D, OXBERRY_PEG_L, PEG_H);
|
||||
enlongated_peg([-(OXBERRY_PEG_SPACING / 2) - (OXBERRY_PEG_L / 2), 0, (PEG_H / 2) + .3 ], OXBERRY_PEG_D, OXBERRY_PEG_L, PEG_H);
|
||||
}
|
||||
|
||||
//Disney uses ACME pegs
|
||||
module pegbar_disney () {
|
||||
rounded_bar([DISNEY_L, DISNEY_W, DISNEY_H], $fn);
|
||||
round_peg([0, 0, (PEG_H / 2) - .5], ROUND_PEG_D, PEG_H);
|
||||
enlongated_peg([(DISNEY_PEG_SPACING / 2) + (ACME_PEG_L / 2), 0, (PEG_H / 2) + .3 ], ACME_PEG_D, ACME_PEG_L, PEG_H);
|
||||
enlongated_peg([-(DISNEY_PEG_SPACING / 2) - (ACME_PEG_L / 2), 0, (PEG_H / 2) + .3 ], ACME_PEG_D, ACME_PEG_L, PEG_H);
|
||||
}
|
||||
|
||||
module two_piece () {
|
||||
difference () {
|
||||
pegbar_acme();
|
||||
children();
|
||||
translate([150 + 20, 0, 0]) cube([300, 300, 300], center = true);
|
||||
translate([20, 0, .75]) {
|
||||
difference (){
|
||||
|
@ -74,7 +115,7 @@ module pegbar_acme_small_printer () {
|
|||
}
|
||||
translate([20, 20, 0]) {
|
||||
difference () {
|
||||
pegbar_acme();
|
||||
children();
|
||||
translate([150 - 20, 0, 0]) cube([300, 300, 300], center = true);
|
||||
translate([-20, 0, -.75]) {
|
||||
cube([5, 13 + 1, 1.5], center = true);
|
||||
|
@ -82,12 +123,11 @@ module pegbar_acme_small_printer () {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module pegbar_acme_three_piece () {
|
||||
module three_piece () {
|
||||
difference () {
|
||||
pegbar_acme();
|
||||
children();
|
||||
translate([150 + (254 / 6), 0, 0]) cube([300, 300, 300], center = true);
|
||||
translate([-150 - (254 / 6), 0, 0]) cube([300, 300, 300], center = true);
|
||||
translate([(254 / 6), 0, .75]) {
|
||||
|
@ -105,7 +145,7 @@ module pegbar_acme_three_piece () {
|
|||
}
|
||||
translate([(254 / 3), 20, 0]) {
|
||||
difference () {
|
||||
pegbar_acme();
|
||||
children();
|
||||
translate([150 - (254 / 6), 0, 0]) cube([300, 300, 300], center = true);
|
||||
translate([-(254 / 6), 0, -.75]) {
|
||||
cube([5, 13 + 1, 1.5], center = true);
|
||||
|
@ -115,7 +155,7 @@ module pegbar_acme_three_piece () {
|
|||
}
|
||||
translate([(254 / 3), -20, 0]) {
|
||||
difference () {
|
||||
pegbar_acme();
|
||||
children();
|
||||
translate([150 - (254 / 6), 0, 0]) cube([300, 300, 300], center = true);
|
||||
translate([-(254 / 6), 0, -.75]) {
|
||||
cube([5, 13 + 1, 1.5], center = true);
|
||||
|
@ -123,17 +163,34 @@ module pegbar_acme_three_piece () {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
PART = "acme";
|
||||
PART = "round";
|
||||
|
||||
if (PART == "acme") {
|
||||
if (PART == "round") {
|
||||
pegbar_round();
|
||||
} else if (PART == "acme") {
|
||||
pegbar_acme();
|
||||
} else if (PART == "acme_small_printer") {
|
||||
pegbar_acme_small_printer();
|
||||
} else if (PART == "disney") {
|
||||
pegbar_disney();
|
||||
} else if (PART == "oxberry") {
|
||||
pegbar_oxberry();
|
||||
} else if (PART == "round_two_piece") {
|
||||
two_piece() pegbar_round();
|
||||
} else if (PART == "round_three_piece") {
|
||||
three_piece() pegbar_round();
|
||||
} else if (PART == "acme_two_piece") {
|
||||
two_piece() pegbar_acme();
|
||||
} else if (PART == "acme_three_piece") {
|
||||
pegbar_acme_three_piece();
|
||||
three_piece() pegbar_acme();
|
||||
} else if (PART == "disney_two_piece") {
|
||||
two_piece() pegbar_disney();
|
||||
} else if (PART == "disney_three_piece") {
|
||||
three_piece() pegbar_disney();
|
||||
} else if (PART == "oxberry_two_piece") {
|
||||
two_piece() pegbar_oxberry();
|
||||
} else if (PART == "oxberry_three_piece") {
|
||||
three_piece() pegbar_oxberry();
|
||||
}
|
||||
|
||||
//
|
||||
|
|