From 51347daabc8fb554e6b3bec73fe1c62d66d6dd99 Mon Sep 17 00:00:00 2001 From: wzl Date: Thu, 15 Sep 2022 19:28:50 +0100 Subject: [PATCH] support any thickness --- .gitignore | 2 ++ pySlice.py | 16 +++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 6308b88..c470963 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,5 @@ nosetests.xml outputs models *.lprof +Combined_Jan_Part.stl +.gitignore diff --git a/pySlice.py b/pySlice.py index f63f708..00d9979 100755 --- a/pySlice.py +++ b/pySlice.py @@ -26,7 +26,8 @@ """ from Model3D import STLModel, Vector3, Normal from svgwrite import Drawing, rgb -import sys +import sys, os +import numpy as np #@profile def slice_file(f=None, resolution=0.1): @@ -70,8 +71,8 @@ def slice_file(f=None, resolution=0.1): stats = model.stats() print(stats) - for targetz in range(0, int(stats['extents']['z']['upper']), int(interval)): - dwg = Drawing('outputs/svg/'+str(targetz)+'.svg', profile='tiny') + for index, targetz in enumerate(np.arange(0, stats['extents']['z']['upper'], interval)): + dwg = Drawing('outputs/svg/'+str(index)+'.svg', profile='tiny') pairs = model.slice_at_z(targetz) for pair in pairs: dwg.add(dwg.line(pair[0], pair[1], stroke=rgb(0, 0, 0, "%"))) @@ -93,8 +94,13 @@ def slice_file(f=None, resolution=0.1): default='models/yoda.stl', type=argparse.FileType('rb')) parser.add_argument('-r', '--resolution', type=float, - default=0.1, + default=0.01, help='The Z-Axis resolution of the printer, in mms') - + parser.add_argument('-d', '--dirs', type=str, + default='./outputs/svg', + help='The path to the output directory') args = parser.parse_args() + + if not os.path.exists(args.dirs): + os.makedirs(args.dirs) slice_file(args.file, args.resolution)