mirror of
https://github.com/DJSundog/NopSCADlib.git
synced 2024-11-23 15:23:51 -05:00
Temporary files used during make_all and tests now in tmp dir.
This commit is contained in:
parent
182f39876a
commit
fc44b43638
@ -28,6 +28,7 @@ from set_config import *
|
|||||||
import time
|
import time
|
||||||
import times
|
import times
|
||||||
from deps import *
|
from deps import *
|
||||||
|
from tmpdir import *
|
||||||
import json
|
import json
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
@ -65,8 +66,11 @@ def make_parts(target, part_type, parts = None):
|
|||||||
target_dir = top_dir + part_type + 's'
|
target_dir = top_dir + part_type + 's'
|
||||||
deps_dir = target_dir + "/deps"
|
deps_dir = target_dir + "/deps"
|
||||||
bom_dir = top_dir + "bom"
|
bom_dir = top_dir + "bom"
|
||||||
|
tmp_dir = mktmpdir(top_dir)
|
||||||
|
|
||||||
if not os.path.isdir(target_dir):
|
if not os.path.isdir(target_dir):
|
||||||
os.makedirs(target_dir)
|
os.makedirs(target_dir)
|
||||||
|
|
||||||
if not os.path.isdir(deps_dir):
|
if not os.path.isdir(deps_dir):
|
||||||
os.makedirs(deps_dir)
|
os.makedirs(deps_dir)
|
||||||
|
|
||||||
@ -131,9 +135,9 @@ def make_parts(target, part_type, parts = None):
|
|||||||
#
|
#
|
||||||
# make a file to use the module
|
# make a file to use the module
|
||||||
#
|
#
|
||||||
part_maker_name = part_type + ".scad"
|
part_maker_name = tmp_dir + '/' + part_type + ".scad"
|
||||||
with open(part_maker_name, "w") as f:
|
with open(part_maker_name, "w") as f:
|
||||||
f.write("use <%s/%s>\n" % (dir, filename))
|
f.write("use <%s/%s>\n" % (reltmp(dir, target), filename))
|
||||||
f.write("%s();\n" % module);
|
f.write("%s();\n" % module);
|
||||||
t = time.time()
|
t = time.time()
|
||||||
openscad.run("-D$bom=1", "-d", dname, "-o", part_file, part_maker_name)
|
openscad.run("-D$bom=1", "-d", dname, "-o", part_file, part_maker_name)
|
||||||
@ -150,6 +154,10 @@ def make_parts(target, part_type, parts = None):
|
|||||||
with open(bounds_fname, 'w') as outfile:
|
with open(bounds_fname, 'w') as outfile:
|
||||||
json.dump(bounds_map, outfile, indent = 4)
|
json.dump(bounds_map, outfile, indent = 4)
|
||||||
#
|
#
|
||||||
|
# Remove tmp dir
|
||||||
|
#
|
||||||
|
rmtmpdir(tmp_dir)
|
||||||
|
#
|
||||||
# List the ones we didn't find
|
# List the ones we didn't find
|
||||||
#
|
#
|
||||||
if targets:
|
if targets:
|
||||||
|
@ -30,6 +30,7 @@ from tests import do_cmd, update_image, colour_scheme, background
|
|||||||
from deps import mtime
|
from deps import mtime
|
||||||
from colorama import init
|
from colorama import init
|
||||||
import json
|
import json
|
||||||
|
from tmpdir import *
|
||||||
|
|
||||||
def usage():
|
def usage():
|
||||||
print("\nusage:\n\trender [target_config] - Render images of the stl and dxf files.");
|
print("\nusage:\n\trender [target_config] - Render images of the stl and dxf files.");
|
||||||
@ -40,6 +41,7 @@ def render(target, type):
|
|||||||
# Make the target directory
|
# Make the target directory
|
||||||
#
|
#
|
||||||
top_dir = set_config(target, usage)
|
top_dir = set_config(target, usage)
|
||||||
|
tmp_dir = mktmpdir(top_dir)
|
||||||
target_dir = top_dir + type + 's'
|
target_dir = top_dir + type + 's'
|
||||||
bom_dir = top_dir + 'bom'
|
bom_dir = top_dir + 'bom'
|
||||||
if not os.path.isdir(target_dir):
|
if not os.path.isdir(target_dir):
|
||||||
@ -80,7 +82,7 @@ def render(target, type):
|
|||||||
# make a file to import the stl
|
# make a file to import the stl
|
||||||
#
|
#
|
||||||
if mtime(part_file) > mtime(png_name):
|
if mtime(part_file) > mtime(png_name):
|
||||||
png_maker_name = "png.scad"
|
png_maker_name = tmp_dir + "/png.scad"
|
||||||
pp1 = [0, 146/255, 0]
|
pp1 = [0, 146/255, 0]
|
||||||
colour = pp1
|
colour = pp1
|
||||||
if part in colours:
|
if part in colours:
|
||||||
@ -88,15 +90,19 @@ def render(target, type):
|
|||||||
if not '[' in colour:
|
if not '[' in colour:
|
||||||
colour = '"' + colour + '"'
|
colour = '"' + colour + '"'
|
||||||
with open(png_maker_name, "w") as f:
|
with open(png_maker_name, "w") as f:
|
||||||
f.write('color(%s) import("%s");\n' % (colour, part_file))
|
f.write('color(%s) import("%s");\n' % (colour, reltmp(part_file, target)))
|
||||||
cam = "--camera=0,0,0,70,0,315,500" if type == 'stl' else "--camera=0,0,0,0,0,0,500"
|
cam = "--camera=0,0,0,70,0,315,500" if type == 'stl' else "--camera=0,0,0,0,0,0,500"
|
||||||
render = "--preview" if type == 'stl' or colour != pp1 else "--render"
|
render = "--preview" if type == 'stl' or colour != pp1 else "--render"
|
||||||
tmp_name = 'tmp.png'
|
tmp_name = tmp_dir + '/' + part[:-4] + '.png'
|
||||||
openscad.run(colour_scheme, "--projection=p", "--imgsize=4096,4096", cam, render, "--autocenter", "--viewall", "-o", tmp_name, png_maker_name);
|
openscad.run(colour_scheme, "--projection=p", "--imgsize=4096,4096", cam, render, "--autocenter", "--viewall", "-o", tmp_name, png_maker_name);
|
||||||
do_cmd(("magick "+ tmp_name + " -trim -resize 280x280 -background %s -gravity Center -extent 280x280 -bordercolor %s -border 10 %s"
|
do_cmd(("magick "+ tmp_name + " -trim -resize 280x280 -background %s -gravity Center -extent 280x280 -bordercolor %s -border 10 %s"
|
||||||
% (background, background, tmp_name)).split())
|
% (background, background, tmp_name)).split())
|
||||||
update_image(tmp_name, png_name)
|
update_image(tmp_name, png_name)
|
||||||
os.remove(png_maker_name)
|
os.remove(png_maker_name)
|
||||||
|
#
|
||||||
|
# Remove tmp dir
|
||||||
|
#
|
||||||
|
rmtmpdir(tmp_dir)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
init()
|
init()
|
||||||
|
@ -34,6 +34,7 @@ import shutil
|
|||||||
from deps import *
|
from deps import *
|
||||||
from blurb import *
|
from blurb import *
|
||||||
from colorama import Fore
|
from colorama import Fore
|
||||||
|
from tmpdir import *
|
||||||
|
|
||||||
w = 4096
|
w = 4096
|
||||||
h = w
|
h = w
|
||||||
@ -94,6 +95,7 @@ def usage():
|
|||||||
|
|
||||||
def tests(tests):
|
def tests(tests):
|
||||||
scad_dir = "tests"
|
scad_dir = "tests"
|
||||||
|
tmp_dir = mktmpdir(scad_dir + '/')
|
||||||
deps_dir = scad_dir + "/deps"
|
deps_dir = scad_dir + "/deps"
|
||||||
png_dir = scad_dir + "/png"
|
png_dir = scad_dir + "/png"
|
||||||
bom_dir = scad_dir + "/bom"
|
bom_dir = scad_dir + "/bom"
|
||||||
@ -234,7 +236,7 @@ def tests(tests):
|
|||||||
if changed:
|
if changed:
|
||||||
print(changed)
|
print(changed)
|
||||||
t = time.time()
|
t = time.time()
|
||||||
tmp_name = 'tmp.png'
|
tmp_name = tmp_dir + '/tmp.png'
|
||||||
openscad.run_list(options.list() + ["-D$bom=2", colour_scheme, "--projection=p", "--imgsize=%d,%d" % (w, h), "--camera=0,0,0,70,0,315,500", "--autocenter", "--viewall", "-d", dname, "-o", tmp_name, scad_name]);
|
openscad.run_list(options.list() + ["-D$bom=2", colour_scheme, "--projection=p", "--imgsize=%d,%d" % (w, h), "--camera=0,0,0,70,0,315,500", "--autocenter", "--viewall", "-d", dname, "-o", tmp_name, scad_name]);
|
||||||
times.add_time(scad_name, t)
|
times.add_time(scad_name, t)
|
||||||
do_cmd(["magick", tmp_name, "-trim", "-resize", "1000x600", "-bordercolor", background, "-border", "10", tmp_name])
|
do_cmd(["magick", tmp_name, "-trim", "-resize", "1000x600", "-bordercolor", background, "-border", "10", tmp_name])
|
||||||
@ -303,6 +305,11 @@ def tests(tests):
|
|||||||
with open(doc_base_name + ".html", "wt") as html_file:
|
with open(doc_base_name + ".html", "wt") as html_file:
|
||||||
do_cmd(("python -m markdown -x tables " + doc_name).split(), html_file)
|
do_cmd(("python -m markdown -x tables " + doc_name).split(), html_file)
|
||||||
times.print_times()
|
times.print_times()
|
||||||
|
#
|
||||||
|
# Remove tmp dir
|
||||||
|
#
|
||||||
|
rmtmpdir(tmp_dir)
|
||||||
|
|
||||||
do_cmd(('codespell -L od ' + doc_name).split())
|
do_cmd(('codespell -L od ' + doc_name).split())
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
40
scripts/tmpdir.py
Normal file
40
scripts/tmpdir.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#
|
||||||
|
# NopSCADlib Copyright Chris Palmer 2021
|
||||||
|
# nop.head@gmail.com
|
||||||
|
# hydraraptor.blogspot.com
|
||||||
|
#
|
||||||
|
# This file is part of NopSCADlib.
|
||||||
|
#
|
||||||
|
# NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
# GNU General Public License as published by the Free Software Foundation, either version 3 of
|
||||||
|
# the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# NopSCADlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with NopSCADlib.
|
||||||
|
# If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
"""
|
||||||
|
Make a directory for tmp files.
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
|
||||||
|
def mktmpdir(top_dir):
|
||||||
|
tmp_dir = top_dir + 'tmp'
|
||||||
|
if not os.path.isdir(tmp_dir):
|
||||||
|
os.makedirs(tmp_dir)
|
||||||
|
else:
|
||||||
|
for file in os.listdir(tmp_dir):
|
||||||
|
os.remove(tmp_dir + '/' + file)
|
||||||
|
return tmp_dir
|
||||||
|
|
||||||
|
def reltmp(dir, target):
|
||||||
|
return dir if os.path.isabs(dir) else '../../' + dir if target else '../' + dir
|
||||||
|
|
||||||
|
def rmtmpdir(tmp_dir):
|
||||||
|
os.rmdir(tmp_dir)
|
||||||
|
while os.path.isdir(tmp_dir):
|
||||||
|
time.sleep(0.1)
|
@ -38,6 +38,7 @@ import shutil
|
|||||||
import re
|
import re
|
||||||
import copy
|
import copy
|
||||||
from colorama import Fore
|
from colorama import Fore
|
||||||
|
from tmpdir import *
|
||||||
|
|
||||||
def is_assembly(s):
|
def is_assembly(s):
|
||||||
return s[-9:] == '_assembly' or s[-11:] == '_assemblies'
|
return s[-9:] == '_assembly' or s[-11:] == '_assemblies'
|
||||||
@ -129,6 +130,7 @@ def views(target, do_assemblies = None):
|
|||||||
# Make the target directory
|
# Make the target directory
|
||||||
#
|
#
|
||||||
top_dir = set_config(target, usage)
|
top_dir = set_config(target, usage)
|
||||||
|
tmp_dir = mktmpdir(top_dir)
|
||||||
target_dir = top_dir + 'assemblies'
|
target_dir = top_dir + 'assemblies'
|
||||||
deps_dir = target_dir + "/deps"
|
deps_dir = target_dir + "/deps"
|
||||||
bom_dir = top_dir + "bom"
|
bom_dir = top_dir + "bom"
|
||||||
@ -204,15 +206,15 @@ def views(target, do_assemblies = None):
|
|||||||
changed = check_deps(png_name, dname)
|
changed = check_deps(png_name, dname)
|
||||||
changed = times.check_have_time(changed, png_name)
|
changed = times.check_have_time(changed, png_name)
|
||||||
changed = options.have_changed(changed, png_name)
|
changed = options.have_changed(changed, png_name)
|
||||||
tmp_name = 'tmp.png'
|
tmp_name = tmp_dir + '/' + real_name + '.png'
|
||||||
if changed:
|
if changed:
|
||||||
print(changed)
|
print(changed)
|
||||||
#
|
#
|
||||||
# make a file to use the module
|
# make a file to use the module
|
||||||
#
|
#
|
||||||
png_maker_name = 'png.scad'
|
png_maker_name = tmp_dir + '/png.scad'
|
||||||
with open(png_maker_name, "w") as f:
|
with open(png_maker_name, "w") as f:
|
||||||
f.write("use <%s/%s>\n" % (dir, filename))
|
f.write("use <%s/%s>\n" % (reltmp(dir, target), filename))
|
||||||
f.write("%s();\n" % module);
|
f.write("%s();\n" % module);
|
||||||
t = time.time()
|
t = time.time()
|
||||||
target_def = ['-D$target="%s"' % target] if target else []
|
target_def = ['-D$target="%s"' % target] if target else []
|
||||||
@ -439,6 +441,10 @@ def views(target, do_assemblies = None):
|
|||||||
dst.write(line)
|
dst.write(line)
|
||||||
i += 1
|
i += 1
|
||||||
#
|
#
|
||||||
|
# Remove tmp dir
|
||||||
|
#
|
||||||
|
rmtmpdir(tmp_dir)
|
||||||
|
#
|
||||||
# Spell check
|
# Spell check
|
||||||
#
|
#
|
||||||
do_cmd(('codespell -L od ' + top_dir + 'readme.md').split())
|
do_cmd(('codespell -L od ' + top_dir + 'readme.md').split())
|
||||||
|
Loading…
Reference in New Issue
Block a user