| 
					
				 | 
			
			
				@@ -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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 |