def __init__(self, json = None, default = None): ConstructionElement.__init__(self, json, default) self.fixed = False self.F = 0.0 self.Delta = None # Смещение узла; вычисляется конструкцией if json is not None: if default is None: fixed = json.get("fixed", False) F = json.get("F", 0.0) Delta = json.get("Delta") else: fixed = json.get("fixed", default.fixed) F = json.get("F", default.F) Delta = json.get("Delta", default.Delta) elif default is not None: fixed = default.fixed F = default.F Delta = default.Delta else: fixed = False F = 0.0 Delta = None try: self.F = float(F) except: raise Exception("Некорректная нагрузка на узел (ожидается: число)") try: self.fixed = bool(fixed) except: raise Exception("Некорректные данные о заделке (ожидается: булево значение") try: self.Delta = float(Delta) except: pass
def dump(self): retDict = ConstructionElement.dump(self) retDict.update({ "fixed": self.fixed, "F": self.F }) if self.calculated(): retDict.update({ "Delta": round(self.Delta, 15) }) return retDict
def dump(self): retDict = ConstructionElement.dump(self) retDict.update({ "L": self.L, "A": self.A, "E": self.E, "Sigma": self.Sigma, "q": self.q }) if self.calculated(): retDict.update({ "K": str(self.K), "Q": str(self.Q), "U0": round(self.U0, 15), "UL": round(self.UL, 15) }) return retDict
def __init__(self, json = None, default = None): ConstructionElement.__init__(self, json, default) self.L = 0.0 self.A = 0.0 self.E = 0.0 self.Sigma = 0.0 self.q = 0.0 self.height = 0.0 self.K = None # Матрица реакций self.Q = None # Вектор реакций self.U0, self.UL = None, None if json is not None: if default is None: L = json.get("L", 0.0) A = json.get("A", 0.0) E = json.get("E", 0.0) Sigma = json.get("Sigma", 0.0) q = json.get("q", 0.0) K = json.get("K") Q = json.get("Q") U0 = json.get("U0") UL = json.get("UL") else: L = json.get("L", default.L) A = json.get("A", default.A) E = json.get("E", default.E) Sigma = json.get("Sigma", default.Sigma) q = json.get("q", default.q) K = json.get("K", default.K) Q = json.get("Q", default.Q) U0 = json.get("U0", default.U0) UL = json.get("UL", default.UL) elif default is not None: L = default.L A = default.A E = default.E Sigma = default.Sigma q = default.q K = default.K Q = default.Q U0 = default.U0 UL = default.UL else: L = 0.0 A = 0.0 E = 0.0 Sigma = 0.0 q = 0.0 K = None Q = None U0 = None UL = None if K is None or Q is None or U0 is None or UL is None: self.K = None self.Q = None self.U0 = None self.UL = None else: try: self.K = eval(K) self.Q = eval(Q) self.U0 = float(U0) self.UL = float(UL) except: self.K = None self.Q = None self.U0 = None self.UL = None try: self.L = float(L) except: raise Exception("Некорректная длина стержня (ожидается: число)") try: self.A = float(A) except: raise Exception("Некорректная площадь поперечного сечения стержня (ожидается: число)") try: self.E = float(E) except: raise Exception("Некорректный модуль упругости стержня (ожидается: число)") try: self.Sigma = float(Sigma) except: raise Exception("Некорректное допускаемое напряжение (ожидается: число)") try: self.q = float(q) except: raise Exception("Некорректная нагрузка на стержень (ожидается: число)") if default is not None: if self.L <= 0: raise Exception("Некорректная длина стержня: L = %f " \ "(ожидается: L > 0; %s)" % (self.L, self)) if self.A <= 0: raise Exception("Некорректная площадь поперечного сечения стержня: A = %f " \ "(ожидается: A > 0; %s)" % (self.A, self)) if self.E <= 0: raise Exception("Некорректный модуль упругости стержня: E = %f " \ "(ожидается: E > 0; %s)" % (self.E, self)) self.height = 0 if self.A <= 0 else math.sqrt(self.A)