Exemple #1
0
 def generateSlot(self):
     try:
         QApplication.setOverrideCursor(QtCore.Qt.BusyCursor)
         out = str(self.generatorFilenameEdit.text())
         mem = self.genMemoryCombo.currentIndex() == 0
         auto = self.genOpenCheckbox.isChecked()
         pre = self.generator
         newScene = pre()
         if not isinstance(newScene, woo.core.Scene):
             raise RuntimeError(
                 'Preprocessor must return a Scene when called, not ' +
                 str(newScene))
         if mem: newScene.saveTmp(out)
         elif out: newScene.save(out)
         else: pass  # only generate, don't save
         if auto:
             if woo.master.scene.running:
                 import sys
                 sys.stdout.write('Stopping the current simulation...')
                 woo.master.scene.stop()
                 print(' ok')
             woo.master.scene = newScene
             controller.setTabActive('simulation')
     except Exception as e:
         import traceback
         traceback.print_exc()
         showExceptionDialog(self, e)
     finally:
         QApplication.restoreOverrideCursor()
Exemple #2
0
	def generateSlot(self):
		try:
			QApplication.setOverrideCursor(QtCore.Qt.BusyCursor)
			out=str(self.generatorFilenameEdit.text())
			mem=self.genMemoryCombo.currentIndex()==0
			auto=self.genOpenCheckbox.isChecked()
			pre=self.generator
			newScene=pre()
			if not isinstance(newScene,woo.core.Scene): raise RuntimeError('Preprocessor must return a Scene when called, not '+str(newScene))
			if mem: newScene.saveTmp(out)
			elif out: newScene.save(out)
			else: pass # only generate, don't save
			if auto:
				if woo.master.scene.running:
					import sys
					sys.stdout.write('Stopping the current simulation...')
					woo.master.scene.stop()
					print ' ok'
				woo.master.scene=newScene
				controller.setTabActive('simulation')
		except Exception as e:
			import traceback
			traceback.print_exc()
			showExceptionDialog(self,e)
		finally:
			QApplication.restoreOverrideCursor()
Exemple #3
0
import woo, woo.pre
from minieigen import *
pre = woo.pre.depot.CylDepot(htDiam=(.1, .1), unbE=0.01)
pre.model.mats[0].young = 20000
S = woo.master.scene = pre()
S.run(wait=True)
surf = woo.triangulated.surfParticleIdNormals(S.dem,
                                              box=((-.05, -.05, 0), (.05, .05,
                                                                     .15)),
                                              r=.03)
S.gl.demField.shape = 'spheroids'
S.gl.demField.shape2 = False
S.gl.demField.colorBy = 'Shape.color'
for p in S.dem.par:
    p.shape.color = 0
# color by number of surface faces
for s in surf:
    sumNorm = sum(surf[s], Vector3.Zero).normalized()
    c = .8 * max(sumNorm[2], 0)
    S.dem.par[s].shape.nodes[0].rep = woo.gl.VectorGlRep(val=sumNorm,
                                                         relSz=.06)
    # c=.2*sum([1 for n in nn if n.normalized()[2]>.8])
    # c=min(.1*len(surf[s]),.9)
    S.dem.par[s].shape.color = c