From 0415a199eedc88e87aa5eba9e8650a582cace670 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 7 Nov 2017 14:57:29 +0000 Subject: [PATCH] mesh: generates a file, but it is wrong Signed-off-by: Ian Jackson --- mesh-demo.scad | 2 +- meshscad | 42 ++++++++++++++++++++++++------------------ 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/mesh-demo.scad b/mesh-demo.scad index a6b8e00..4454e54 100644 --- a/mesh-demo.scad +++ b/mesh-demo.scad @@ -1,6 +1,6 @@ // -*- C -*- -include +include sz = moebiuscore_nomsize; diff --git a/meshscad b/meshscad index 84cc314..c1c81fc 100755 --- a/meshscad +++ b/meshscad @@ -8,7 +8,7 @@ signal.signal(signal.SIGINT, signal.SIG_DFL) from moebius import * from scad import * -nomsize = 30; +nomsize = 50; wire = 3.0; # number of wires @@ -21,7 +21,7 @@ nw = 40 ns = 10 # around tube nv += -nv % kv -nw += -hw % kw +nw += -nw % kw each_v = nv / kv each_w = nw / kw @@ -29,34 +29,40 @@ each_w = nw / kw m = Moebius(nv, nw) def round_wire(p, vec_surfacenormal, vec_acrosswire, sigma): - return (p + - wire * (vec_surfacenormal * sin(sigma) + - vec_acrosswire * cos*(sigma))) + r = (p + + wire/nomsize * (vec_surfacenormal * sin(sigma) + + vec_acrosswire * cos(sigma))) + #print(' round_wire',p,vec_surfacenormal, vec_acrosswire, sigma, r, + # file=sys.stderr) + return r def make_moebius(objname): print('module %s(){' % objname) - extents = ScadObject() # wires along extents - travers = ScadObject(): # wires along traverses + # wires: + extents = [ ScadObject() for v in range(0,nv) ] # along extents + travers = [ ScadObject() for w in range(0,nw) ] # along traverses for v in range(0, nv): for w in range(0, nw): for s in range(0, ns): - sigmas = [ (s + sx)/ns * tau for sigma in 0,1 ] - eq = [] + print('VWS',v,w,s, file=sys.stderr) + sigmas = [ (s + sx)/ns * tau for sx in 0,1 ] if not w % each_w: extents[w].quad([ round_wire(p, norm, trav, sigmas[sx]) - for p, norm, extt, trav in m.details(v+a, w) - for sx in 0,1 - for a in 0,1 ]) + for a in 0,1 + for p, norm, extt, trav in (m.details(v+a, w),) + for sx in 0,1 ]) if not v % each_v: travers[v].quad([ round_wire(p, norm, extt, sigmas[sx]) - for p, norm, extt, trav in m.details(v, w+b) - for sx in 0,1 - for b in 0,1 ]) + for b in 0,1 + for p, norm, extt, trav in (m.details(v, w+b),) + for sx in 0,1 ]) for v in range(0, nv): - travers[v].writeout_core() + print('// extent v=', v) + extents[v].writeout_core(nomsize) for w in range(0, nw): - travers[w].writeout_core() - print '}' + print('// travers w=', w) + travers[w].writeout_core(nomsize) + print('}') make_moebius('MoebiusMesh') print('moebiuscore_nomsize=%s;' % repr(nomsize)) -- 2.30.2