Source code for skydy.connectors.DOF

#!/usr/bin/python3


[docs]class DOF:
[docs] def __init__(self, idx, free=True, const_value=0): """A Degree of Freedom is nothing other than a body coordinate that is able to move. Thus, to define a DOF, we need to simply supply the free index (idx). By default, if it is free, there is no constant value, so we do not need to supply the second, or third arguments. Args: idx (int): the free coordinate index, between 0 and 5. free (bool): if the coordinte at index idx is free. True by default. const_value (int or float): If the DOF is not free, i.e., free=False on instantiation, we assign the constant value the coordinate has. By defualt this is zero. Returns: None Example: Demonstrate all combinations of the DOF construction. >>> from skydy.connectors import DOF >>> # Define a DOF in the x-coordinate >>> x_dof = DOF(0) >>> # Note the following ALSO defines a coordinate in the y-direction >>> y_dof = DOF(1, True) >>> # Define a constraint in the z-direction, at a value of 10. >>> z_con = DOF(1, False, 10) >>> # Define a constraint in the theta_z-direction, at a value of 2. >>> theta_z_con = DOF(5, False, 2) """ self.idx = idx self.free = free self.const_value = const_value
@property def idx(self): return self._idx @idx.setter def idx(self, val): if 0 <= val <= 5: self._idx = val else: raise ValueError("idx must be between 0 and 5.") @property def free(self): return self._free @free.setter def free(self, val): if isinstance(val, bool): self._free = val else: raise TypeError("free must be boolean value.") @property def const_value(self): return self._const_value @const_value.setter def const_value(self, val): if isinstance(val, int) or isinstance(val, float): if self.free: self._const_value = 0 else: self._const_value = val else: raise TypeError("const_value attribute must be boolean value.")