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
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:
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')