1
0
mirror of https://github.com/nophead/NopSCADlib.git synced 2025-09-04 12:45:30 +02:00

Compare commits

...

4 Commits

Author SHA1 Message Date
Chris Palmer
be324c31da Missing targets now named when dependency checking. 2019-08-18 10:53:22 +01:00
Chris Palmer
49c3b6be2c Fixed Microview stl suffix case for Linux. 2019-08-17 14:39:45 +01:00
Chris Palmer
8583f5472d Would help to include the code! 2019-07-29 20:43:03 +01:00
Chris Palmer
645ff21d3d Added right_triangle. 2019-07-29 19:30:07 +01:00
9 changed files with 18 additions and 16 deletions

View File

@@ -4511,6 +4511,7 @@ Global constants, functions and modules. This file is used directly or indirectl
| ```ellipse(xr, yr)``` | Draw an ellipse |
| ```extrude_if(h, center = true)``` | Extrudes 2D object to 3D when ```h``` is nonzero, otherwise leaves it 2D |
| ```hflip()``` | Invert children by doing a 180° flip around the Y axis |
| ```right_triangle(width, height, h, center = true)``` | A right angled triangle with the 90° corner at the origin. 3D when ```h``` is nonzero, otherwise 2D |
| ```semi_circle(r, d = undef)``` | A semi circle in the positive Y domain |
| ```translate_z(z)``` | Shortcut for Z only translations |
| ```vflip()``` | Invert children by doing a 180° flip around the X axis |

View File

@@ -37,9 +37,10 @@ def read_deps(dname):
deps.append(dep)
return deps
def check_deps(target_mtime, dname):
def check_deps(target, dname):
target_mtime = mtime(target)
if not target_mtime:
return "target missing"
return target + " missing"
if not os.path.isfile(dname):
return "no deps"
deps = read_deps(dname)

View File

@@ -84,7 +84,6 @@ def make_parts(target, part_type, parts = None):
# Find all the scad files
#
lib_dir = os.environ['OPENSCADPATH'] + '/NopSCADlib/printed'
used = []
module_suffix = '_dxf' if part_type == 'svg' else '_' + part_type
for dir in [source_dir, lib_dir]:
for filename in os.listdir(dir):
@@ -113,7 +112,7 @@ def make_parts(target, part_type, parts = None):
#
part_file = target_dir + "/" + part
dname = deps_name(deps_dir, filename)
changed = check_deps(mtime(part_file), dname)
changed = check_deps(part_file, dname)
changed = times.check_have_time(changed, part)
if part_type == 'stl' and not changed and not part in bounds_map:
changed = "No bounds"
@@ -125,14 +124,9 @@ def make_parts(target, part_type, parts = None):
if part_type == 'stl':
bounds = c14n_stl.canonicalise(part_file)
bounds_map[part] = bounds
targets.remove(part)
os.remove(part_maker_name)
#
# Add the files on the BOM to the used list for plates.py
#
for line in open("openscad.log"):
if line[:7] == 'ECHO: "' and line[-6:] == '.' + part_type + '"\n':
used.append(line[7:-2])
#
# Write new bounds file
#
@@ -150,4 +144,3 @@ def make_parts(target, part_type, parts = None):
print("Could not find a module called", part[:-4] + module_suffix, "to make", part)
sys.exit(1)
times.print_times()
return used

View File

@@ -187,7 +187,7 @@ def tests(tests):
body += ["![%s](%s)\n" %(base_name, png_name)]
dname = deps_name(deps_dir, scad)
oldest = min(mtime(png_name), mtime(bom_name))
oldest = png_name if mtime(png_name) < mtime(bom_name) else bom_name
changed = check_deps(oldest, dname)
changed = times.check_have_time(changed, scad_name)
if changed:

View File

@@ -154,14 +154,14 @@ def views(target, do_assemblies = None):
f.write("use <%s/%s>\n" % (dir, filename))
f.write("%s();\n" % module);
#
# Run openscad on the created file
# Run openscad on th created file
#
dname = deps_name(deps_dir, filename)
for explode in [0, 1]:
png_name = target_dir + '/' + module + '.png'
if not explode:
png_name = png_name.replace('_assembly', '_assembled')
changed = check_deps(mtime(png_name), dname)
changed = check_deps(png_name, dname)
changed = times.check_have_time(changed, png_name)
tmp_name = 'tmp.png'
if changed:

View File

@@ -25,6 +25,9 @@ module globals() {
translate([30, 0])
ellipse(15, 7);
translate([50, 0])
right_triangle(10, 20, 0);
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -63,6 +63,10 @@ module semi_circle(r, d = undef) //! A semi circle in the pos
square([2 * sq, sq]);
}
module right_triangle(width, height, h, center = true) //! A right angled triangle with the 90&deg; corner at the origin. 3D when ```h``` is nonzero, otherwise 2D
extrude_if(h, center = center)
polygon(points = [[0,0], [width, 0], [0, height]]);
include <sphere.scad>
include <bom.scad>
include <polyholes.scad>

View File

@@ -43,14 +43,14 @@ module microview(cutout = false) { //! Draw microview or generate a panel cutou
translate_z(8.35) {
color("black")
import("microview/GKM-002_R05_CHIP_UPPER_HOUSING-1.stl", convexity = 2);
import("microview/GKM-002_R05_CHIP_UPPER_HOUSING-1.STL", convexity = 2);
translate([-2, 0, 0])
color("dimgray")
cube([12.5, 15.5, 4.41], center = true);
}
color("dimgray")
import("microview/GKM-003_R05_CHIP_LOWER_HOUSING.stl", convexity = 2);
import("microview/GKM-003_R05_CHIP_LOWER_HOUSING.STL", convexity = 2);
for(side = [-1, 1], i = [0 : 7])
translate([side * inch(0.35), (i - 3.5) * inch(0.1)])