chiark / gitweb /
simplex wip: use gsl_vector_get for X, for abandonment
[moebius3.git] / meshscad
index 2f51b15ae5ccd42042f8574eed498c0365f70356..ad3194929243001d5942498650ceee7216fe159d 100755 (executable)
--- a/meshscad
+++ b/meshscad
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 from __future__ import print_function
 
@@ -9,17 +9,20 @@ from moebius import *
 from scad import *
 
 nomsize = 30;
-wire = 2.000;
+wire = 1.500;
 
 # number of wires
 kv = 24
 kw = 16
 
 # resolution
-nv = 80
-nw = 80
+nv = 200
+nw = 200
 ns = 4 # around tube, should be even
 
+from moedebug import *
+dbg_file(sys.stderr)
+
 nv += -nv % kv
 nw += -nw % kw
 
@@ -65,11 +68,16 @@ def make_moebius(objname):
 
   for v in range(0, nv):
     for w in range(0, nw+1):
+      extw = w
+      if extw > nw/2: extw = nw-w
+      # each extent wire has to go round twice to meet itself
+      # (except the middle one, if there is one, where nw/2 = nw - nw/2
+      # and it gets to be by itself
       for s in range(0, ns):
         sigmas = calc_sigmas([s + sx for sx in (0,1)])
         #print('VWS',v,w,s, sigmas, file=sys.stderr)
         if not w % each_w:
-          extents[w % nw].quad([ cnr for cnr in qc(v,w,sigmas,False) ])
+          extents[extw].quad([ cnr for cnr in qc(v,w,sigmas,False) ])
         if not v % each_v and w < nw:
           travers[v].rquad([ cnr for cnr in qc(v,w,sigmas,True) ])
     if not v % each_v: