1
0
mirror of https://github.com/nophead/Mendel90.git synced 2025-01-16 20:38:15 +01:00
Mendel90/sheets.py
Chris Palmer ad21323ec6 Mods to support e3d in the main branch.
Tweaks to the huxley extruder.
Now shows hot end filament diameter on the BOM.
Moved huxley spool holder back to give more room for lighting.
Updated README.md.
Added huxley to command line usage messages.
2016-01-16 10:47:25 +00:00

74 lines
2.2 KiB
Python
Executable File

#!/usr/bin/env python
import os
import openscad
import InkCL
import shutil
import sys
from dxf import *
from set_machine import *
from time import *
source_dir = "scad"
def sheets(machine):
#
# Make the target directory
#
target_dir = machine + "/sheets"
if os.path.isdir(target_dir):
shutil.rmtree(target_dir)
sleep(0.1)
os.makedirs(target_dir)
else:
os.makedirs(target_dir)
#
# Set the target machine
#
set_machine(machine)
#
# Find all the scad files
#
for filename in os.listdir(source_dir):
if filename[-5:] == ".scad":
#
# find any modules ending in _dxf
#
for line in open(source_dir + "/" + filename, "r").readlines():
words = line.split()
if(len(words) and words[0] == "module"):
module = words[1].split('(')[0]
if module[-4:] == "_dxf":
#
# make a file to use the module
#
dxf_maker_name = target_dir + "/" + module + ".scad"
f = open(dxf_maker_name, "w")
f.write("use <../../%s/%s>\n" % (source_dir, filename))
f.write("%s();\n" % module);
f.close()
#
# Run openscad on the created file
#
base_name = target_dir + "/" + module[:-4]
dxf_name = base_name + ".dxf"
openscad.run("-o", dxf_name, dxf_maker_name)
#
# Make SVG drill template
#
dxf_to_svg(dxf_name)
#
# Make PDF for printing
#
InkCL.run("-f", base_name + ".svg", "-A", base_name + ".pdf")
os.remove(dxf_maker_name)
if __name__ == '__main__':
if len(sys.argv) > 1:
sheets(sys.argv[1])
else:
print("usage: sheets dibond|mendel|sturdy|huxley|your_machine")
sys.exit(1)