mirror of
git://projects.qi-hardware.com/cae-tools.git
synced 2024-12-22 23:26:27 +02:00
sl2/slicer.pl: add command-line options
This commit is contained in:
parent
73c3a776a3
commit
8af4f45573
@ -6,3 +6,7 @@ were then falsely closed and yielded bogus toolpaths.
|
||||
This slicer uses very strict conditions for horizontality: all the
|
||||
points of a horizontal facet must have identical Z coordinates. It
|
||||
also implicitly ensures that all paths are closed.
|
||||
|
||||
sl2/slicer.pl supports the same command-line options as sfc/slicer.py
|
||||
and can be used as drop-in replacement, provided that the toolpaths
|
||||
are re-aligned afterwards.
|
||||
|
@ -13,12 +13,62 @@
|
||||
|
||||
|
||||
$epsilon = 0.0001; # cutting offset
|
||||
$height = 10; # height of workpiece
|
||||
$margin = 5; # margin of workpiece box
|
||||
$height = undef; # height of workpiece
|
||||
$margin = undef; # margin of workpiece box
|
||||
$end = 0; # offset to add at the last layer
|
||||
$flip = 1; # flip piece
|
||||
$z0 = -35; # reference tool position
|
||||
$z_step = 1;
|
||||
$flip = 0; # flip piece
|
||||
$z_step = undef; # maximum increase of milling depth
|
||||
|
||||
|
||||
#----- Command-line processing ------------------------------------------------
|
||||
|
||||
|
||||
sub usage
|
||||
{
|
||||
print STDERR <<"EOF";
|
||||
usage: $0 [-a (top|bottom)(+|-)offset] [-f] [-h height]
|
||||
[-m tolerance] [-p piece_distance] [-o z_offset] [-s max_step] [file.stl]
|
||||
|
||||
-a alignment TO DO
|
||||
-f flip the model around the Y axis
|
||||
-h height workpiece height (default: use model dimensions)
|
||||
-m tolerance compatibility with sfc/slicer.py, has no meaning here
|
||||
-p piece_distance
|
||||
draw a rectangular workpiece at the specified xy distance
|
||||
around the model (default: none)
|
||||
-o z_offset Z adjustment of final layer
|
||||
-s max_step maximum Z step (default: unlimited)
|
||||
EOF
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
while ($ARGV[0] =~ /^-/) {
|
||||
my $opt = shift @ARGV;
|
||||
if ($opt eq "-a") {
|
||||
# @@@ implement later
|
||||
shift @ARGV;
|
||||
} elsif ($opt eq "-f") {
|
||||
$flip = 1;
|
||||
} elsif ($opt eq "-h") {
|
||||
$height = shift @ARGV;
|
||||
&usage unless defined $height;
|
||||
} elsif ($opt eq "-m") {
|
||||
# @@@ not used - support for compatibility
|
||||
shift @ARGV;
|
||||
} elsif ($opt eq "-o") {
|
||||
$end = shift @ARGV;
|
||||
&usage unless defined $end;
|
||||
} elsif ($opt eq "-p") {
|
||||
$margin = shift @ARGV;
|
||||
&usage unless defined $margin;
|
||||
} elsif ($opt eq "-s") {
|
||||
$z_step = shift @ARGV;
|
||||
&usage unless defined $z_step;
|
||||
} else {
|
||||
&usage;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#----- Read the STL mesh ------------------------------------------------------
|
||||
@ -63,9 +113,11 @@ print STDERR "bbox\t($xmin, $ymin, $zmin)\n\t($xmax, $ymax, $zmax)\n";
|
||||
|
||||
#----- Calculate Z offset -----------------------------------------------------
|
||||
|
||||
$height = $zmax - $zmin unless defined $height;
|
||||
|
||||
# align with bottom (zmin == 0), z_pos = height - zoff
|
||||
|
||||
$z_off = $z0 - $zmin - $height;
|
||||
$z_off = -$zmin - $height;
|
||||
$z_pos = $height + $zmin;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user