def save_stl(): """Save the stl model.""" global project,F if F is None: return fn = askFilename(GD.cfg['workdir'],"Stl files (*.stl)",exist=False) if fn: if not fn.endswith('.stl'): fn += '.stl' os.chdir(os.path.dirname(fn)) message("Your current workdir is %s" % os.getcwd()) project = os.path.splitext(fn)[0] if not os.path.exists(fn) or ack("File %s already exists. Overwrite?" % fn): stl.write_ascii(F.f,fn)
#create a bottom b = e.reverseElements() for p in a: e = e.bump(2,p, lambda x:exp(-0.5*x),[0,1]) draw (e,color=red) if ack('Shrink the elements?'): clear() draw(e.shrink(0.8)) if ack('Export to .stl?'): from plugins import stl f = file('novation.stl','w') F = e # + b # Create triangles G = F.selectNodes([0,1,2]) # If polygones, add more triangles for i in range(3,F.nplex()): G += F.selectNodes([0,i-1,i]) clear() draw(G) stl.write_ascii(G.f,f) f.close() if ack('Show with smooth rendering?'): clear() smooth() draw(e)
for i,f in enumerate(F[1:]): G[0].append(connect([F[i],f,f],bias=[0,1,0])) if i > 0: G[1].append(connect([F[i],F[i],f],bias=[0,1,1])) G = map(Formex.concatenate,G) for i,f in enumerate(G): f.setProp(i) G = Formex.concatenate(G) clear() draw(G) flat() GD.canvas.update() T = G.translate([0,bot,r]).spherical() clear() draw(T) T += T.reflect() clear() draw(T) if ack('Export this model in STL format?'): fn = askFilename(GD.cfg['workdir'],"Stl files (*.stl)",exist=False) if fn: from plugins import stl f = file(fn,'w') stl.write_ascii(T.f,f) f.close()
##for i,f in enumerate(F[1:]): ## G[0].append(connect([F[i],f,f],bias=[0,1,0])) ## if i > 0: ## G[1].append(connect([F[i],F[i],f],bias=[0,1,1])) ##G = map(Formex.concatenate,G) ##for i,f in enumerate(G): ## f.setProp(i) ##G = Formex.concatenate(G) ##clear() ##draw(G) ##flat() ##GD.canvas.update() ##T = G.translate([0,bot,r]).spherical() ##clear() ##draw(T) ##T += T.reflect() ##clear() ##draw(T) if ack('Export this model in STL format?'): fn = askFilename(GD.cfg['workdir'],"Stl files (*.stl)",exist=False) if fn: from plugins import stl f = file(fn,'w') stl.write_ascii(f,T.f) f.close()