88 lines
2.2 KiB
Python
88 lines
2.2 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
from peewee import (
|
|
SqliteDatabase, JOIN,
|
|
Model, Field,
|
|
AutoField, ForeignKeyField,
|
|
TextField, FloatField,
|
|
IntegerField, BooleanField,
|
|
TimeField
|
|
)
|
|
|
|
db = SqliteDatabase("test_db.db", pragmas = { "foreign_keys" : 1, "journal_mode": "wal" })
|
|
|
|
class ListField(Field):
|
|
field_type = "list"
|
|
|
|
def db_value(self, value):
|
|
return str(value)
|
|
|
|
def python_value(self, value):
|
|
pval = []
|
|
|
|
for entry in value[1 : -1].split(","):
|
|
try:
|
|
pval.append(float(entry))
|
|
|
|
except:
|
|
pval.append(entry.strip().replace("'", ""))
|
|
|
|
return pval
|
|
|
|
class Structure(Model):
|
|
structure_id = AutoField()
|
|
|
|
type = TextField()
|
|
direction = ListField()
|
|
theta = FloatField()
|
|
|
|
r0 = FloatField(null = True)
|
|
L = FloatField(null = True)
|
|
radius = FloatField(null = True)
|
|
|
|
filletsEnabled = BooleanField(null = True)
|
|
fillets = FloatField(null = True)
|
|
#path = TextField()
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = "structures"
|
|
|
|
|
|
class Mesh(Model):
|
|
mesh_id = AutoField()
|
|
structure_id = ForeignKeyField(Structure, backref = "meshes")
|
|
|
|
maxSize = FloatField(null = True)
|
|
minSize = FloatField(null = True)
|
|
|
|
fineness = IntegerField(null = True)
|
|
growthRate = FloatField(null = True)
|
|
nbSegPerEdge = FloatField(null = True)
|
|
nbSegPerRadius = FloatField(null = True)
|
|
|
|
chordalErrorEnabled = BooleanField(null = True)
|
|
chordalError = FloatField(null = True)
|
|
|
|
secondOrder = BooleanField(null = True)
|
|
optimize = BooleanField(null = True)
|
|
quadAllowed = BooleanField(null = True)
|
|
useSurfaceCurvature = BooleanField(null = True)
|
|
fuseEdges = BooleanField(null = True)
|
|
checkChartBoundary = BooleanField(null = True)
|
|
|
|
viscousLayers = BooleanField(null = True)
|
|
thickness = FloatField(null = True)
|
|
numberOfLayers = IntegerField(null = True)
|
|
stretchFactor = FloatField(null = True)
|
|
isFacesToIgnore = BooleanField(null = True)
|
|
facesToIgnore = ListField(null = True)
|
|
#faces = []
|
|
extrusionMethod = TextField(null = True)
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = "meshes"
|
|
depends_on = Structure
|