from drawer.BaseDrawer import VentGraphDrawer, BaseDrawer from entity.Node import Node from entity.primitives import Drill class DrillDrawer(BaseDrawer): def __init__(self, obj, msp, style): self.drill_drawers = { 0: self.draw_duct_style_0, } super().__init__(obj, msp, style) def initialize_data(self): pass def draw_agg(self): self.drill_drawers[self.style]('agg') def draw_div(self): self.drill_drawers[self.style]('div') def draw_duct_style_0(self,type): assert isinstance(self.obj, Drill) point_attr = 'agg_point' if type == 'agg' else 'div_point' for line in self.obj.line_list: i = 0 while i < len(line) - 1: node = line[i] next_node = line[i + 1] node = getattr(node,point_attr) next_node = getattr(next_node,point_attr) self.msp.add_line(node, next_node, dxfattribs={"layer": f"图层{self.obj.layer_id}"}) i = i + 1