Exemple #1
0
 def _setup(self) -> None:
     """setup calculation values"""
     self.pos_radius = distance(self.center, self.dimlinepos)  # type: float
     self.radius = distance(self.center, self.start)  # type: float
     self.start_vector = (self.start -
                          self.center).normalize()  # type: Vec3
     self.end_vector = (self.end - self.center).normalize()  # type: Vec3
     self.start_angle = self.start_vector.angle  # type: float
     self.end_angle = self.end_vector.angle  # type: float
Exemple #2
0
    def _get_dimvalue_text(self, section: int) -> str:
        """get the dimension value as text, distance from point1 to point2"""
        override = self.text_override[section]
        if len(override):
            return override
        point1, point2 = self._get_section_points(section)

        dimvalue = distance(point1, point2) * self.prop("scale")
        return self.format_dimtext(dimvalue)
Exemple #3
0
    def _draw_extension_lines(self, layout: "GenericLayoutType") -> None:
        """build the extension lines entities"""
        dimextlinegap = self.prop("dimextlinegap")
        attribs = {
            "color": self.prop("dimlinecolor"),
            "layer": self.prop("layer"),
        }

        for dimline_point, target_point in zip(self.dimline_points,
                                               self.measure_points):
            if distance(dimline_point, target_point) > max(
                    dimextlinegap, DIMENSIONS_MIN_DISTANCE):
                direction_vector = (target_point - dimline_point).normalize()
                target_point = target_point - (direction_vector *
                                               dimextlinegap)
                layout.add_line(
                    start=dimline_point,
                    end=target_point,
                    dxfattribs=attribs,
                )
Exemple #4
0
 def _setup(self) -> None:
     self.target_vector = (self.target -
                           self.center).normalize()  # type: Vec3
     self.radius = distance(self.center, self.target)  # type: float