Ejemplo n.º 1
0
	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
Ejemplo n.º 2
0
	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
Ejemplo n.º 3
0
	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
Ejemplo n.º 4
0
	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)