|
@@ -13,6 +13,7 @@ class GateDrawer(VentGraphDrawer):
|
|
|
self.gate_drawers = {
|
|
|
0: self.draw_gate_style_0,
|
|
|
1: self.draw_gate_style_1,
|
|
|
+ 2:self.draw_gate_style_2
|
|
|
}
|
|
|
|
|
|
def initialize_data(self):
|
|
@@ -66,7 +67,7 @@ class GateDrawer(VentGraphDrawer):
|
|
|
|
|
|
def draw_gate_style_1(self, center, route):
|
|
|
rad = self.obj.width * 0.8
|
|
|
- small_circle_rad = self.obj.width*0.1
|
|
|
+ small_circle_rad = self.obj.width * 0.1
|
|
|
gate1_circle_a = (center[0], center[1] + rad)
|
|
|
gate1_circle_b = (center[0], center[1] - rad)
|
|
|
gate1_circle_c = (center[0] + rad, center[1])
|
|
@@ -83,7 +84,6 @@ class GateDrawer(VentGraphDrawer):
|
|
|
dxfattribs={"layer": f"图层{self.obj.layer_id}", "lineweight": 50})
|
|
|
arc.rgb = self.obj.color
|
|
|
|
|
|
-
|
|
|
line = self.msp.add_line(gate1_a, gate1_b,
|
|
|
dxfattribs={"layer": f"图层{self.obj.layer_id}", "lineweight": 50})
|
|
|
line.rgb = self.obj.color
|
|
@@ -91,3 +91,58 @@ class GateDrawer(VentGraphDrawer):
|
|
|
self.msp.add_circle(center=gate1_a, radius=small_circle_rad, dxfattribs={"layer": f"图层{self.obj.layer_id}"})
|
|
|
|
|
|
self.msp.add_circle(center=gate1_b, radius=small_circle_rad, dxfattribs={"layer": f"图层{self.obj.layer_id}"})
|
|
|
+ # b1 a1 c1
|
|
|
+ # a3(| | |)a4
|
|
|
+ # b2 a2 c2
|
|
|
+ def draw_gate_style_2(self, center, route):
|
|
|
+ a1 = center[0], center[1] + self.obj.width
|
|
|
+ a2 = center[0], center[1] - self.obj.width
|
|
|
+
|
|
|
+ a3 = center[0] - self.obj.width, center[1]
|
|
|
+ a4 = center[0] + self.obj.width, center[1]
|
|
|
+
|
|
|
+ b1 = a1[0] - 1/2*self.obj.width,a1[1]
|
|
|
+ b2 = a2[0] - 1/2*self.obj.width,a2[1]
|
|
|
+
|
|
|
+ c1 = a1[0] + 1/2*self.obj.width,a1[1]
|
|
|
+ c2 = a2[0] + 1/2*self.obj.width,a2[1]
|
|
|
+
|
|
|
+ a1 = rotate_point_around_another(a1,center,route)
|
|
|
+ a2 = rotate_point_around_another(a2,center,route)
|
|
|
+ a3 = rotate_point_around_another(a3,center,route)
|
|
|
+ a4 = rotate_point_around_another(a4,center,route)
|
|
|
+ b1 = rotate_point_around_another(b1,center,route)
|
|
|
+ b2 = rotate_point_around_another(b2,center,route)
|
|
|
+ c1 = rotate_point_around_another(c1,center,route)
|
|
|
+ c2 = rotate_point_around_another(c2,center,route)
|
|
|
+
|
|
|
+ line = self.msp.add_line(a1, a2,
|
|
|
+ dxfattribs={"layer": f"图层{self.obj.layer_id}", "lineweight": 50})
|
|
|
+ line.rgb = self.obj.color
|
|
|
+
|
|
|
+ line = self.msp.add_line(b1, b2,
|
|
|
+ dxfattribs={"layer": f"图层{self.obj.layer_id}", "lineweight": 50})
|
|
|
+ line.rgb = self.obj.color
|
|
|
+
|
|
|
+ line = self.msp.add_line(c1, c2,
|
|
|
+ dxfattribs={"layer": f"图层{self.obj.layer_id}", "lineweight": 50})
|
|
|
+ line.rgb = self.obj.color
|
|
|
+
|
|
|
+ mt_carc = mt.arc.ConstructionArc()
|
|
|
+
|
|
|
+ arc_1 = mt_carc.from_3p(start_point=c2, def_point=a4, end_point=c1)
|
|
|
+ # b1 a1 c1
|
|
|
+ # a3(| | |)a4
|
|
|
+ # b2 a2 c2
|
|
|
+ arc = self.msp.add_arc(center=arc_1.center, radius=arc_1.radius, start_angle=arc_1.start_angle, end_angle=arc_1.end_angle,
|
|
|
+ dxfattribs={"layer": f"图层{self.obj.layer_id}", "lineweight": 50})
|
|
|
+ arc.rgb = self.obj.color
|
|
|
+
|
|
|
+
|
|
|
+ arc_2 = mt_carc.from_3p(start_point=b1, def_point=a3, end_point=b2)
|
|
|
+
|
|
|
+ arc = self.msp.add_arc(center=arc_2.center, radius=arc_2.radius, start_angle=arc_2.start_angle, end_angle=arc_2.end_angle,
|
|
|
+ dxfattribs={"layer": f"图层{self.obj.layer_id}", "lineweight": 50})
|
|
|
+
|
|
|
+ arc.rgb = self.obj.color
|
|
|
+
|