fan_main_drawer.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import math
  2. import core
  3. from drawer.BaseDrawer import VentGraphDrawer
  4. class FanMainDrawer(VentGraphDrawer):
  5. def initialize_data(self):
  6. pass
  7. def draw_obj(self, center, route):
  8. rad = 0.5 * self.obj.width
  9. a = math.pi / 8
  10. b = 10 / 3 * rad
  11. self.msp.add_circle(center=center, radius=rad, dxfattribs={"layer": f"图层{self.obj.layer_id}"})
  12. A = (rad * math.cos(a) + center[0], rad * math.sin(a) + center[1])
  13. C = (rad * math.cos(a) + center[0], -rad * math.sin(a) + center[1])
  14. B = ((b / 2) / math.tan(a) + center[0], (b / 2) + center[1])
  15. D = ((b / 2) / math.tan(a) + center[0], -(b / 2) + center[1])
  16. A = core.rotate_point_around_another(A, center, route)
  17. B = core.rotate_point_around_another(B, center, route)
  18. C = core.rotate_point_around_another(C, center, route)
  19. D = core.rotate_point_around_another(D, center, route)
  20. self.msp.add_line(A, B, dxfattribs={"layer": f"图层{self.obj.layer_id}"})
  21. self.msp.add_line(B, D, dxfattribs={"layer": f"图层{self.obj.layer_id}"})
  22. self.msp.add_line(C, D, dxfattribs={"layer": f"图层{self.obj.layer_id}"})