Create project and add a README.
This commit is contained in:
commit
e79fdfcb09
|
@ -0,0 +1,3 @@
|
|||
[submodule "scad/common"]
|
||||
path = scad/common
|
||||
url = https://git.sixteenmillimeter.com/modules/common.git
|
|
@ -0,0 +1,19 @@
|
|||
Copyright (c) 2025 M McWilliams
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -0,0 +1,23 @@
|
|||
# ACME Peg Bar
|
||||
|
||||

|
||||
|
||||
The ACME peg bar is a tool for holding punched cels for drawing or shooting.
|
||||
This design is distinct from round peg bars due to the enlongated pegs on the ends of it.
|
||||
These enlogated pegs are intended to reduce the shake in the cels when they are drawn on.
|
||||
|
||||
There are two variations of this design, for smaller printers.
|
||||
|
||||
### [Download STL](./stl/acme_peg_bar_full.stl)
|
||||
|
||||
# ACME Peg Bar for Small Printers
|
||||
|
||||

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

|
||||
|
||||
### [Download STL](./stl/acme_peg_bar_three_piece.stl)
|
Binary file not shown.
After Width: | Height: | Size: 6.7 KiB |
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"camera" : {
|
||||
"x" : -120,
|
||||
"y" : 120,
|
||||
"z" : 0
|
||||
},
|
||||
"objects" : [
|
||||
{
|
||||
"name" : "acme_peg_bar_full",
|
||||
"material" : "white_plastic",
|
||||
}
|
||||
],
|
||||
"src" : [
|
||||
"README.md",
|
||||
"LICENSE",
|
||||
"scad.sh",
|
||||
"scad/acme_peg_bar.scad",
|
||||
"scad/common/common.scad",
|
||||
"scad/common/c14n_stl.py",
|
||||
"scad/common/scad.sh"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
bash scad/common/scad.sh scad/acme_peg_bar.scad "${@}"
|
|
@ -0,0 +1,137 @@
|
|||
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
|
||||
|
||||
//http://www.cartoonsupplies.com/content/acme-pegbar-plastic
|
||||
|
||||
module rounded_bar (arr = [50, 10, 10], fn = 60) {
|
||||
$fn = fn;
|
||||
cube([arr[0] - arr[1], arr[1], arr[2]], center = true);
|
||||
translate ([(arr[0] / 2) - (arr[1] / 2), 0, 0]) {
|
||||
cylinder(r = R(arr[1]), h = arr[2], center = true);
|
||||
}
|
||||
translate ([-(arr[0] / 2) + (arr[1] / 2), 0, 0]) {
|
||||
cylinder(r = R(arr[1]), h = arr[2], center = true);
|
||||
}
|
||||
}
|
||||
|
||||
module animation_peg_bar () {
|
||||
|
||||
rounded_bar([L, W, H], $fn);
|
||||
//cube([20, W, H], center = true);
|
||||
translate([0, 0, (CENTER_H / 2) - .5]) center_peg(CENTER_D, CENTER_H);
|
||||
translate([(SIDE_SPACE / 2) + (SIDE_L / 2), 0, (CENTER_H / 2) + .3 ]) side_peg(SIDE_D, SIDE_L, CENTER_H);
|
||||
translate([-(SIDE_SPACE / 2) - (SIDE_L / 2), 0, (CENTER_H / 2) + .3 ]) side_peg(SIDE_D, SIDE_L, CENTER_H);
|
||||
}
|
||||
|
||||
module center_peg (D = 6, H = 9) {
|
||||
cylinder(r = D / 2, h = H - (D / 2), center = true);
|
||||
translate([0, 0, (H / 2) - (D / 4)]) {
|
||||
difference () {
|
||||
sphere(r = R(D));
|
||||
translate([0, 0, -D]) cube([D*2, D*2, D*2], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module side_peg (D = 3, L = 11, H = 9) {
|
||||
rounded_bar([L, D, H - (D / 2)], fn = $fn);
|
||||
translate([0, 0, (H / 2) - (D / 4)]) {
|
||||
difference () {
|
||||
union () {
|
||||
rotate([0, 90, 0]) cylinder(r = R(D), h = L - D, center = true);
|
||||
translate([(L / 2) - (D / 2), 0, 0]) sphere(r = R(D));
|
||||
translate([-(L / 2) + (D / 2), 0, 0]) sphere(r = R(D));
|
||||
}
|
||||
translate([0, 0, -L]) cube([L * 2, L * 2, L * 2], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module small_printer_animation_peg_bar () {
|
||||
difference () {
|
||||
animation_peg_bar();
|
||||
translate([150 + 20, 0, 0]) cube([300, 300, 300], center = true);
|
||||
translate([20, 0, .75]) {
|
||||
difference (){
|
||||
cube([5, 13 + 1, 1.5], center = true);
|
||||
cube([5, 4, 10], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
translate([20, 20, 0]) {
|
||||
difference () {
|
||||
animation_peg_bar();
|
||||
translate([150 - 20, 0, 0]) cube([300, 300, 300], center = true);
|
||||
translate([-20, 0, -.75]) {
|
||||
cube([5, 13 + 1, 1.5], center = true);
|
||||
cube([5, 4, 10], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module three_piece_animation_peg_bar () {
|
||||
difference () {
|
||||
animation_peg_bar();
|
||||
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]) {
|
||||
difference () {
|
||||
cube([5, 13 + 1, 1.5], center = true);
|
||||
cube([5, 4, 10], center = true);
|
||||
}
|
||||
}
|
||||
translate([-(254 / 6), 0, .75]) {
|
||||
difference () {
|
||||
cube([5, 13 + 1, 1.5], center = true);
|
||||
cube([5, 4, 10], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
translate([(254 / 3), 20, 0]) {
|
||||
difference () {
|
||||
animation_peg_bar();
|
||||
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);
|
||||
cube([5, 4, 10], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
translate([(254 / 3), -20, 0]) {
|
||||
difference () {
|
||||
animation_peg_bar();
|
||||
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);
|
||||
cube([5, 4, 10], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
PART = "full";
|
||||
|
||||
if (PART == "full") {
|
||||
animation_peg_bar();
|
||||
} else if (PART == "small_printer") {
|
||||
small_printer_animation_peg_bar();
|
||||
} else if (PART == "three_piece") {
|
||||
three_piece_animation_peg_bar();
|
||||
}
|
||||
|
||||
//
|
||||
//
|
|
@ -0,0 +1 @@
|
|||
Subproject commit e2eeb27f173d739a174c0d147bcb62a16859e2d9
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue