ky пре 4 месеци
родитељ
комит
db4feb468f
5 измењених фајлова са 88 додато и 9 уклоњено
  1. 1 1
      config/daliuta/global-2d.yaml
  2. 1 1
      drawer/drawer_template.py
  3. 57 2
      drawer/gate_drawer.py
  4. 28 4
      drawer/window_drawer.py
  5. 1 1
      web.py

+ 1 - 1
config/daliuta/global-2d.yaml

@@ -25,7 +25,7 @@ div:
 style:
   tun-2d: 0
   tun-3d: 0
-  gate: 1
+  gate: 2
   window: 1
   fan-main: 0
   fan-local: 0

+ 1 - 1
drawer/drawer_template.py

@@ -26,7 +26,7 @@ class DrawerTemplate(ABC):
     def request_data(self, model_id):
         url = self.global_config.request_url
         url = f'{url}?modelid={model_id}'
-        with open('D:\workspace\py\\vent_DXF_2\\last_request.json', 'r', encoding='utf-8') as f:
+        with open('D:\workspace\py\\vent_DXF_2\\tun2D-大柳塔.json', 'r', encoding='utf-8') as f:
             cad_json = json.load(f)
         # response = requests.get(url, timeout=10)
         # print(f"请求耗时{url} {response.elapsed.total_seconds()} 秒")

+ 57 - 2
drawer/gate_drawer.py

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

+ 28 - 4
drawer/window_drawer.py

@@ -67,18 +67,20 @@ class WindowDrawer(VentGraphDrawer):
         for line in lines:
             l = self.msp.add_line(line[0], line[1], dxfattribs={"layer": f"图层{self.obj.layer_id}"})
             l.rgb = self.obj.color
-
+    #         d1---d2
     #           a1
-    #         b1-|-b1
+    #         b1-|-b2
+    #            e1
     #           |||
     #         c1-|-c2
-    #          a2
+    #            e2
+    #            a2
     def draw_window_1(self, center, route):
         a1 = center[0], center[1] + self.obj.width * 0.7
         a2 = center[0], center[1] - self.obj.width * 0.7
         a1 = core.rotate_point_around_another(a1, center, route)
         a2 = core.rotate_point_around_another(a2, center, route)
-        self.msp.add_line(a1, a2, dxfattribs={"layer": f"图层{self.obj.layer_id}", "lineweight": 50})
+
 
         b1 =  center[0]-self.obj.width * 0.3, center[1] + self.obj.width * 0.3
         b2 =  center[0]+self.obj.width * 0.3, center[1] + self.obj.width * 0.3
@@ -100,3 +102,25 @@ class WindowDrawer(VentGraphDrawer):
 
         self.msp.add_line(b2, c2, dxfattribs={"layer": f"图层{self.obj.layer_id}", "lineweight": 50})
 
+        d1 = center[0]-self.obj.width * 0.7, center[1] + self.obj.width * 0.7
+
+        d2 = center[0]+self.obj.width * 0.7, center[1] + self.obj.width * 0.7
+
+        d1 = core.rotate_point_around_another(d1, center, route)
+
+        d2 = core.rotate_point_around_another(d2, center, route)
+
+        self.msp.add_line(d1, d2, dxfattribs={"layer": f"图层{self.obj.layer_id}", "lineweight": 50})
+
+
+        e1 =  center[0], center[1] + self.obj.width * 0.3
+        e2 =  center[0], center[1] - self.obj.width * 0.3
+
+        e1 = core.rotate_point_around_another(e1, center, route)
+
+        e2 = core.rotate_point_around_another(e2, center, route)
+
+        self.msp.add_line(a1, e1, dxfattribs={"layer": f"图层{self.obj.layer_id}", "lineweight": 50})
+
+        self.msp.add_line(a2, e2, dxfattribs={"layer": f"图层{self.obj.layer_id}", "lineweight": 50})
+

+ 1 - 1
web.py

@@ -35,5 +35,5 @@ def download_dxf_file(model_id, draw_type,):
 
 
 if __name__ == '__main__':
-    download_dxf_file(1,'3d')
+    download_dxf_file(1,'2d')
     # app.run(debug=False)