allow either model or build plate output

This commit is contained in:
Trammell Hudson 2015-05-03 19:21:05 -04:00
parent 0829677f36
commit 85fabf505e
1 changed files with 29 additions and 10 deletions

View File

@ -49,7 +49,8 @@ print_multmatrix(
static void
print_normal(
const v3_t * normal
const v3_t * normal,
int flip
)
{
const float x = normal->p[0];
@ -59,9 +60,13 @@ print_normal(
const double b = acos(z / length);
const double c = x == 0 ? sign(y)*90 : atan2(y,x);
//printf("rotate([%f,%f,%f])\n", 0.0, b * 180 / M_PI, c * 180 / M_PI);
printf("rotate([0,%f,0])", -b*180/M_PI);
printf("rotate([0,0,%f])", -c*180/M_PI);
if (flip)
{
printf("rotate([0,%f,0])", -b*180/M_PI);
printf("rotate([0,0,%f])", -c*180/M_PI);
} else {
printf("rotate([%f,%f,%f])\n", 0.0, b * 180 / M_PI, c * 180 / M_PI);
}
}
@ -328,7 +333,9 @@ main(
printf("}\n}\n");
//printf("model();\n");
const int flip = 1;
if (!flip)
printf("model();\n");
// For each vertex, extract a small region around the corner
@ -343,16 +350,28 @@ main(
v3_t avg = {{ 0, 0, 0}};
find_normal(stl, v, inset_dist, &avg);
if (flip)
{
printf("translate([%f,%f,20])", (i/div)*spacing, (i%div)*spacing);
printf("render() intersection()");
}
printf("{\n");
//printf("%%\n");
print_normal(&avg);
printf("translate([%f,%f,%f])",
-origin.p[0], -origin.p[1], -origin.p[2]);
printf("model();\n");
printf("translate([0,0,-20]) cylinder(r=15,h=20);\n");
if (flip)
{
print_normal(&avg, 1);
printf("translate([%f,%f,%f])",
-origin.p[0], -origin.p[1], -origin.p[2]);
printf("model();\n");
printf("translate([0,0,-20]) cylinder(r=15,h=20);\n");
} else {
printf("translate([%f,%f,%f])",
origin.p[0], origin.p[1], origin.p[2]);
print_normal(&avg, 0);
printf("%%translate([0,0,-20]) cylinder(r=15,h=20);\n");
}
//avg = v3_norm(avg);