chiark
/
gitweb
/
~ianmdlvl
/
reprap-play.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
eb70657
)
sewing-table: roundcorner variable angle wip
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sat, 3 Jun 2017 19:58:29 +0000
(20:58 +0100)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sat, 3 Jun 2017 19:58:29 +0000
(20:58 +0100)
sewing-table.scad.m4
patch
|
blob
|
history
diff --git
a/sewing-table.scad.m4
b/sewing-table.scad.m4
index 92c68cbd29435780aea9f854a8e55948c39beea2..30a8d1db0f9588795e8f5485ef58103810f053a6 100644
(file)
--- a/
sewing-table.scad.m4
+++ b/
sewing-table.scad.m4
@@
-241,14
+241,38
@@
m4_define(`ROUNDCORNER_VARS',`
this_cnr = ci[0];
right_cnr = ci[1];
left_cnr = ci[2];
this_cnr = ci[0];
right_cnr = ci[1];
left_cnr = ci[2];
- bigr= round_cnr_rad - round_edge_rad
+ bigr= round_cnr_rad - round_edge_rad;
+ l_uvec = unitvector2d(left_cnr - this_cnr);
+ r_uvec = unitvector2d(right_cnr - this_cnr);
+ ctr = line_intersection_2d(
+ left_cnr - clockwise2d(r_uvec) * round_cnr_rad,
+ this_cnr - clockwise2d(r_uvec) * round_cnr_rad,
+ this_cnr + clockwise2d(l_uvec) * round_cnr_rad,
+ right_cnr + clockwise2d(l_uvec) * round_cnr_rad )
')
module RoundCorner_selector(ci, adj) {
ROUNDCORNER_VARS;
')
module RoundCorner_selector(ci, adj) {
ROUNDCORNER_VARS;
- INREFFRAME(this_cnr, right_cnr) {
- cube(bigr*2 + adj, center=true);
+ echo("RCS",l_uvec,ctr);
+ union(){
+ INREFFRAME(this_cnr, right_cnr) {
+ cube(bigr*2 + adj, center=true);
+ }
+ }
+ %translate(concat(ctr,[0])) circle(1);
+ if(0){
+ union(){
+ INREFFRAME(this_cnr, right_cnr) {
+// %translate([ -bigr,-bigr,0 ])
+// cube([bigr*2 + adj, bigr*3, bigr*2]);
+ }
}
}
+ union(){
+ INREFFRAME(this_cnr, left_cnr) {
+ %translate([ -bigr,-bigr,0 ])
+ cube(bigr*2 + adj);
+ }
+ }}
}
module RoundCornerCut(ci) {
}
module RoundCornerCut(ci) {
@@
-791,10
+815,11
@@
module RoundCornerDemo_plat(cnr){
}
module RoundCornerDemo(){ ////toplevel
}
module RoundCornerDemo(){ ////toplevel
- cnr = [ [0,0], [15,0], [-10,1
0
] ];
+ cnr = [ [0,0], [15,0], [-10,1
2
] ];
translate([0,25,0]) RoundCornerDemo_plat(cnr);
translate([25,0,0]) RoundCornerAdd(cnr);
translate([-25,0,0]) RoundCornerCut(cnr);
translate([0,25,0]) RoundCornerDemo_plat(cnr);
translate([25,0,0]) RoundCornerAdd(cnr);
translate([-25,0,0]) RoundCornerCut(cnr);
+ translate([0,-25,0]) RoundCorner_selector(cnr, 0);
difference(){
RoundCornerDemo_plat(cnr);
RoundCornerCut(cnr);
difference(){
RoundCornerDemo_plat(cnr);
RoundCornerCut(cnr);