From: Ian Jackson Date: Tue, 7 Nov 2017 16:01:30 +0000 (+0000) Subject: mesh: much better, still not Valid X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=0fa24e4db9d1aa110e3a4cfaed021e29ef4287d3;p=moebius3.git mesh: much better, still not Valid Signed-off-by: Ian Jackson --- diff --git a/meshscad b/meshscad index 57573ae..85b03a1 100755 --- a/meshscad +++ b/meshscad @@ -12,13 +12,13 @@ nomsize = 50; wire = 3.0; # number of wires -kv = 10 +kv = 20 kw = 10 # resolution -nv = 20 -nw = 20 -ns = 8 # around tube, should be even +nv = 40 +nw = 40 +ns = 32 # around tube, should be even nv += -nv % kv nw += -nw % kw @@ -36,11 +36,11 @@ def round_wire(p, vec_surfacenormal, vec_acrosswire, sigma): def make_moebius(objname): print('module %s(){' % objname) # wires: - extents = [ ScadObject() for v in range(0,nv) ] # along extents - travers = [ ScadObject() for w in range(0,nw) ] # along traverses + extents = [ ScadObject() for w in range(0,nw) ] # along extents + travers = [ ScadObject() for v in range(0,nv) ] # along traverses def qc(v, w, sigmas, is_trav): - print(' QCv,w,T',v,w,is_trav, file=sys.stderr) + #print(' QCv,w,T',v,w,is_trav, file=sys.stderr) for ab in 0,1: p, norm, extt, trav = m.details(v + ab*(not is_trav), w + ab*is_trav) for sx in 0,1: @@ -49,32 +49,32 @@ def make_moebius(objname): else: acrs = trav delta = norm * sin(sigma) + acrs * cos(sigma) r = p + wire/nomsize * delta - print(' RW,ab,sx',ab,sx, - 'r=',dpr(r), - 'p=',dpr(p), - 'norm=',dpr(norm), - 'extt=',dpr(extt), - 'acrs=',dpr(acrs), - 'delta=',dpr(delta), - 's=','%4f' % sigma, - file=sys.stderr) + #print(' RW,ab,sx',ab,sx, + # 'r=',dpr(r), + # 'p=',dpr(p), + # 'norm=',dpr(norm), + # 'extt=',dpr(extt), + # 'acrs=',dpr(acrs), + # 'delta=',dpr(delta), + # 's=','%4f' % sigma, + # file=sys.stderr) yield r for v in range(0, nv): - for w in range(0, nw): + for w in range(0, nw+1): for s in range(0, ns): sigmas = [ (s + sx + 0.)/ns * tau for sx in 0,1 ] - print('VWS',v,w,s, sigmas, file=sys.stderr) + #print('VWS',v,w,s, sigmas, file=sys.stderr) if not w % each_w: - extents[w].quad([ cnr for cnr in qc(v,w,sigmas,False) ]) - if not v % each_v: + extents[w % nw].quad([ cnr for cnr in qc(v,w,sigmas,False) ]) + if not v % each_v and w < nw: travers[v].quad([ cnr for cnr in qc(v,w,sigmas,True) ]) - for v in range(0, nv): - print('// extent v=', v) - extents[v].writeout_core(nomsize) for w in range(0, nw): - print('// travers w=', w) - travers[w].writeout_core(nomsize) + print('// extent w=', w) + extents[w].writeout_core(nomsize) + for v in range(0, nv): + print('// travers v=', v) + travers[v].writeout_core(nomsize) print('}') make_moebius('MoebiusMesh')