diff --git a/README.md b/README.md index a046705aa7ff9af4db520bfcf19cfcb56ccc5c5c..afd04cf6b8874c7a8a6072fc8d21c1f32a3b87f8 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ - Draw isolation boxes and connect one edge with parallel traces without causing open circuit (fail) -  - TODO: - - Connect traces to isoloation box + - Connect traces to isolation box - Merge pre-processing code - Demo diff --git a/paperbot_ee_autoroute/__pycache__/paperbot_dsn.cpython-36.pyc b/paperbot_ee_autoroute/__pycache__/paperbot_dsn.cpython-36.pyc index 71227d3c58c61b4b188ef65da746c0a5983e2c14..93faac16b35a0380d4b269be8dc0029dd885863a 100644 Binary files a/paperbot_ee_autoroute/__pycache__/paperbot_dsn.cpython-36.pyc and b/paperbot_ee_autoroute/__pycache__/paperbot_dsn.cpython-36.pyc differ diff --git a/paperbot_ee_autoroute/__pycache__/roco_ee_dwg_processing.cpython-36.pyc b/paperbot_ee_autoroute/__pycache__/roco_ee_dwg_processing.cpython-36.pyc index 816f3457a88e7c56d54046dd7c62bef2dfb86d31..8dbca55a2e2353ecebe4502833e0278752dd2ef4 100644 Binary files a/paperbot_ee_autoroute/__pycache__/roco_ee_dwg_processing.cpython-36.pyc and b/paperbot_ee_autoroute/__pycache__/roco_ee_dwg_processing.cpython-36.pyc differ diff --git a/paperbot_ee_autoroute/dwg_w_circuit.dxf b/paperbot_ee_autoroute/dwg_w_circuit.dxf index 48a2dd01348b38993782baa09b9384d86c27601e..bd660e770dcc2287ea9dce01a46a4f777176fa75 100644 --- a/paperbot_ee_autoroute/dwg_w_circuit.dxf +++ b/paperbot_ee_autoroute/dwg_w_circuit.dxf @@ -53,11 +53,11 @@ $HANDLING 9 $TDUPDATE 40 -2458710.4622569443 +2458710.699386574 9 $HANDSEED 5 -366 +329 9 $DWGCODEPAGE 3 @@ -4355,15 +4355,15 @@ LINE 5 2CB 8 -Circuit +Cut 10 -89.03 +112.41 20 -61.12566017177983 +80.9 11 -91.55503982822019 +112.41 21 -63.65070000000002 +82.4 6 DASHDOT 67 @@ -4373,15 +4373,15 @@ LINE 5 2CC 8 -Circuit +Cut 10 -89.03 +113.91 20 -59.00433982822018 +80.9 11 -92.17636017177983 +113.91 21 -62.150700000000015 +82.4 6 DASHDOT 67 @@ -4391,15 +4391,15 @@ LINE 5 2CD 8 -Circuit +Cut 10 -91.5550398282202 +112.41 20 -63.65070000000001 +80.9 11 -104.62543982822018 +113.91 21 -63.6507 +80.9 6 DASHDOT 67 @@ -4411,13 +4411,13 @@ LINE 8 Circuit 10 -92.17636017177985 +112.41 20 -62.15070000000001 +82.4 11 -105.24676017177983 +112.41 21 -62.1507 +69.7379601717798 6 DASHDOT 67 @@ -4429,13 +4429,13 @@ LINE 8 Circuit 10 -104.62543982822018 +113.91 20 -63.65070000000001 +82.4 11 -112.40999999999998 +113.91 21 -71.4352601717798 +69.11663982822016 6 DASHDOT 67 @@ -4447,13 +4447,13 @@ LINE 8 Circuit 10 -105.24676017177983 +112.40999999999998 20 -62.1507 +69.7379601717798 11 -113.90999999999998 +106.3227398282202 21 -70.81393982822016 +63.65069999999999 6 DASHDOT 67 @@ -4465,13 +4465,13 @@ LINE 8 Circuit 10 -112.41 +113.91 20 -71.4352601717798 +69.11663982822017 11 -112.41 +106.94406017177984 21 -81.65 +62.150699999999986 6 DASHDOT 67 @@ -4483,13 +4483,13 @@ LINE 8 Circuit 10 -113.91 +106.32273982822016 20 -70.81393982822016 +63.65070000000001 11 -113.91 +91.55503982822017 21 -81.65 +63.6507 6 DASHDOT 67 @@ -4501,13 +4501,13 @@ LINE 8 Circuit 10 -100.46 +106.94406017177981 20 -82.71066017177984 +62.15070000000001 11 -102.23896017177981 +92.17636017177982 21 -80.9317 +62.1507 6 DASHDOT 67 @@ -4517,15 +4517,15 @@ LINE 5 2D4 8 -Circuit +Cut 10 -100.46 +88.28 20 -80.58933982822018 +60.815 11 -101.61763982822016 +89.78 21 -79.43169999999999 +60.815 6 DASHDOT 67 @@ -4535,15 +4535,15 @@ LINE 5 2D5 8 -Circuit +Cut 10 -102.23896017177981 +89.78 20 -80.9317 +59.315 11 -103.76103982822018 +89.78 21 -80.9317 +60.815 6 DASHDOT 67 @@ -4553,15 +4553,15 @@ LINE 5 2D6 8 -Circuit +Cut 10 -101.61763982822016 +88.28 20 -79.43169999999999 +59.315 11 -104.38236017177981 +89.78 21 -79.43170000000002 +59.315 6 DASHDOT 67 @@ -4573,13 +4573,13 @@ LINE 8 Circuit 10 -103.76103982822018 +91.55503982822017 20 -80.9317 +63.6507 11 -105.54 +88.28 21 -82.71066017177982 +59.315 6 DASHDOT 67 @@ -4591,13 +4591,13 @@ LINE 8 Circuit 10 -104.38236017177984 +92.17636017177982 20 -79.43169999999999 +62.1507 11 -105.54 +88.28 21 -80.58933982822018 +60.815 6 DASHDOT 67 @@ -4607,17 +4607,15 @@ LINE 5 2D9 8 -Circuit +Cut 10 -83.95 +112.66 20 -61.12566017177983 +81.15 11 -80.66400000000002 +113.66 21 -64.41166017177981 - 6 -DASHDOT +82.15 67 0 0 @@ -4625,17 +4623,15 @@ LINE 5 2DA 8 -Circuit +Cut 10 -83.95 +112.66 20 -59.00433982822017 +82.15 11 -79.16400000000002 +113.66 21 -63.790339828220155 - 6 -DASHDOT +81.15 67 0 0 @@ -4643,17 +4639,15 @@ LINE 5 2DB 8 -Circuit +Cut 10 -79.164 +110.12 20 -63.79033982822016 +81.15 11 -79.164 +111.12 21 -75.45906017177981 - 6 -DASHDOT +82.15 67 0 0 @@ -4661,17 +4655,15 @@ LINE 5 2DC 8 -Circuit +Cut 10 -80.664 +110.12 20 -64.4116601717798 +82.15 11 -80.664 +111.12 21 -74.83773982822018 - 6 -DASHDOT +81.15 67 0 0 @@ -4679,17 +4671,15 @@ LINE 5 2DD 8 -Circuit +Cut 10 -79.16399999999999 +107.58 20 -75.45906017177981 +81.15 11 -83.7201398282202 +108.58 21 -80.01520000000001 - 6 -DASHDOT +82.15 67 0 0 @@ -4697,17 +4687,15 @@ LINE 5 2DE 8 -Circuit +Cut 10 -80.664 +107.58 20 -74.83773982822018 +82.15 11 -84.34146017177983 +108.58 21 -78.5152 - 6 -DASHDOT +81.15 67 0 0 @@ -4715,17 +4703,15 @@ LINE 5 2DF 8 -Circuit +Cut 10 -83.7201398282202 +105.04 20 -80.0152 +81.15 11 -97.76453982822017 +106.04 21 -80.0152 - 6 -DASHDOT +82.15 67 0 0 @@ -4733,17 +4719,15 @@ LINE 5 2E0 8 -Circuit +Cut 10 -84.34146017177983 +105.04 20 -78.5152 +82.15 11 -98.38586017177981 +106.04 21 -78.5152 - 6 -DASHDOT +81.15 67 0 0 @@ -4751,17 +4735,15 @@ LINE 5 2E1 8 -Circuit +Cut 10 -97.76453982822017 +102.5 20 -80.0152 +81.15 11 -100.46 +103.5 21 -82.71066017177985 - 6 -DASHDOT +82.15 67 0 0 @@ -4769,17 +4751,15 @@ LINE 5 2E2 8 -Circuit +Cut 10 -98.38586017177981 +102.5 20 -78.51520000000001 +82.15 11 -100.46 +103.5 21 -80.5893398282202 - 6 -DASHDOT +81.15 67 0 0 @@ -4787,17 +4767,15 @@ LINE 5 2E3 8 -Circuit +Cut 10 -91.57 +99.96 20 -61.12566017177981 +81.15 11 -89.75633982822018 +100.96 21 -59.31200000000001 - 6 -DASHDOT +82.15 67 0 0 @@ -4805,17 +4783,15 @@ LINE 5 2E4 8 -Circuit +Cut 10 -91.57 +99.96 20 -59.00433982822017 +82.15 11 -90.37766017177982 +100.96 21 -57.81200000000001 - 6 -DASHDOT +81.15 67 0 0 @@ -4823,17 +4799,15 @@ LINE 5 2E5 8 -Circuit +Cut 10 -89.75633982822018 +97.42 20 -59.312000000000005 +81.15 11 -88.30366017177981 +98.42 21 -59.312 - 6 -DASHDOT +82.15 67 0 0 @@ -4841,17 +4815,15 @@ LINE 5 2E6 8 -Circuit +Cut 10 -90.37766017177982 +97.42 20 -57.812 +82.15 11 -87.68233982822017 +98.42 21 -57.812000000000005 - 6 -DASHDOT +81.15 67 0 0 @@ -4859,17 +4831,15 @@ LINE 5 2E7 8 -Circuit +Cut 10 -88.30366017177981 +94.88 20 -59.312000000000005 +81.15 11 -86.49 +95.88 21 -61.12566017177983 - 6 -DASHDOT +82.15 67 0 0 @@ -4877,17 +4847,15 @@ LINE 5 2E8 8 -Circuit +Cut 10 -87.68233982822015 +94.88 20 -57.81199999999999 +82.15 11 -86.49 +95.88 21 -59.00433982822017 - 6 -DASHDOT +81.15 67 0 0 @@ -4895,17 +4863,15 @@ LINE 5 2E9 8 -Circuit +Cut 10 -86.49 +92.34 20 -61.12566017177983 +81.15 11 -84.71163982822017 +93.34 21 -59.34730000000001 - 6 -DASHDOT +82.15 67 0 0 @@ -4913,17 +4879,15 @@ LINE 5 2EA 8 -Circuit +Cut 10 -86.49 +92.34 20 -59.00433982822018 +82.15 11 -85.33296017177982 +93.34 21 -57.84730000000001 - 6 -DASHDOT +81.15 67 0 0 @@ -4931,17 +4895,15 @@ LINE 5 2EB 8 -Circuit +Cut 10 -84.71163982822019 +89.8 20 -59.34729999999999 +81.15 11 -83.64816017177984 +90.8 21 -59.347300000000004 - 6 -DASHDOT +82.15 67 0 0 @@ -4949,17 +4911,15 @@ LINE 5 2EC 8 -Circuit +Cut 10 -85.33296017177983 +89.8 20 -57.8473 +82.15 11 -83.02683982822018 +90.8 21 -57.8473 - 6 -DASHDOT +81.15 67 0 0 @@ -4967,17 +4927,15 @@ LINE 5 2ED 8 -Circuit +Cut 10 -83.64816017177982 +83.45 20 -59.34729999999998 +59.565000000000005 11 -79.4016 +84.45 21 -63.59386017177982 - 6 -DASHDOT +60.565000000000005 67 0 0 @@ -4985,17 +4943,15 @@ LINE 5 2EE 8 -Circuit +Cut 10 -83.02683982822018 +83.45 20 -57.84729999999997 +60.565000000000005 11 -77.90159999999999 +84.45 21 -62.97253982822017 - 6 -DASHDOT +59.565000000000005 67 0 0 @@ -5003,17 +4959,15 @@ LINE 5 2EF 8 -Circuit +Cut 10 -77.9016 +85.99000000000001 20 -62.97253982822017 +59.565000000000005 11 -77.9016 +86.99000000000001 21 -75.89396017177981 - 6 -DASHDOT +60.565000000000005 67 0 0 @@ -5021,17 +4975,15 @@ LINE 5 2F0 8 -Circuit +Cut 10 -79.4016 +85.99000000000001 20 -63.593860171779816 +60.565000000000005 11 -79.4016 +86.99000000000001 21 -75.27263982822016 - 6 -DASHDOT +59.565000000000005 67 0 0 @@ -5039,17 +4991,15 @@ LINE 5 2F1 8 -Circuit +Cut 10 -77.90160000000002 +88.53 20 -75.89396017177981 +59.565 11 -85.89713982822018 +89.53 21 -83.88949999999998 - 6 -DASHDOT +60.565 67 0 0 @@ -5057,17 +5007,15 @@ LINE 5 2F2 8 -Circuit +Cut 10 -79.40160000000002 +88.53 20 -75.27263982822018 +60.565 11 -86.51846017177982 +89.53 21 -82.3895 - 6 -DASHDOT +59.565 67 0 0 @@ -5075,17 +5023,15 @@ LINE 5 2F3 8 -Circuit +Cut 10 -85.89713982822018 +91.07000000000001 20 -83.8895 +59.565 11 -101.8211601717798 +92.07000000000001 21 -83.8895 - 6 -DASHDOT +60.565 67 0 0 @@ -5093,17 +5039,15 @@ LINE 5 2F4 8 -Circuit +Cut 10 -86.51846017177982 +91.07000000000001 20 -82.3895 +60.565 11 -101.19983982822016 +92.07000000000001 21 -82.3895 - 6 -DASHDOT +59.565 67 0 0 @@ -5111,17 +5055,15 @@ LINE 5 2F5 8 -Circuit +Cut 10 -101.8211601717798 +93.61 20 -83.88950000000001 +59.565 11 -103.0 +94.61 21 -82.71066017177984 - 6 -DASHDOT +60.565 67 0 0 @@ -5129,17 +5071,15 @@ LINE 5 2F6 8 -Circuit +Cut 10 -101.19983982822016 +93.61 20 -82.38949999999998 +60.565 11 -103.0 +94.61 21 -80.58933982822018 - 6 -DASHDOT +59.565 67 0 0 @@ -5149,13 +5089,13 @@ LINE 8 Cut 10 -112.66 +96.15 20 -81.15 +59.565 11 -113.66 +97.15 21 -82.15 +60.565 67 0 0 @@ -5165,13 +5105,13 @@ LINE 8 Cut 10 -112.66 +96.15 20 -82.15 +60.565 11 -113.66 +97.15 21 -81.15 +59.565 67 0 0 @@ -5181,13 +5121,13 @@ LINE 8 Cut 10 -110.12 +98.69 20 -81.15 +59.565 11 -111.12 +99.69 21 -82.15 +60.565 67 0 0 @@ -5197,13 +5137,13 @@ LINE 8 Cut 10 -110.12 +98.69 20 -82.15 +60.565 11 -111.12 +99.69 21 -81.15 +59.565 67 0 0 @@ -5213,13 +5153,13 @@ LINE 8 Cut 10 -107.58 +101.23 20 -81.15 +59.565 11 -108.58 +102.23 21 -82.15 +60.565 67 0 0 @@ -5229,13 +5169,13 @@ LINE 8 Cut 10 -107.58 +101.23 20 -82.15 +60.565 11 -108.58 +102.23 21 -81.15 +59.565 67 0 0 @@ -5245,13 +5185,13 @@ LINE 8 Cut 10 -105.04 +103.77 20 -81.15 +59.565 11 -106.04 +104.77 21 -82.15 +60.565 67 0 0 @@ -5261,13 +5201,13 @@ LINE 8 Cut 10 -105.04 +103.77 20 -82.15 +60.565 11 -106.04 +104.77 21 -81.15 +59.565 67 0 0 @@ -5277,13 +5217,13 @@ LINE 8 Cut 10 -102.5 +106.31 20 -81.15 +59.565 11 -103.5 +107.31 21 -82.15 +60.565 67 0 0 @@ -5293,13 +5233,13 @@ LINE 8 Cut 10 -102.5 +106.31 20 -82.15 +60.565 11 -103.5 +107.31 21 -81.15 +59.565 67 0 0 @@ -5309,13 +5249,13 @@ LINE 8 Cut 10 -99.96 +108.85 20 -81.15 +59.565 11 -100.96 +109.85 21 -82.15 +60.565 67 0 0 @@ -5325,13 +5265,13 @@ LINE 8 Cut 10 -99.96 +108.85 20 -82.15 +60.565 11 -100.96 +109.85 21 -81.15 +59.565 67 0 0 @@ -5341,13 +5281,13 @@ LINE 8 Cut 10 -97.42 +111.39 20 -81.15 +59.565 11 -98.42 +112.39 21 -82.15 +60.565 67 0 0 @@ -5357,13 +5297,13 @@ LINE 8 Cut 10 -97.42 +111.39 20 -82.15 +60.565 11 -98.42 +112.39 21 -81.15 +59.565 67 0 0 @@ -5373,13 +5313,13 @@ LINE 8 Cut 10 -94.88 +113.93 20 -81.15 +59.565 11 -95.88 +114.93 21 -82.15 +60.565 67 0 0 @@ -5389,13 +5329,13 @@ LINE 8 Cut 10 -94.88 +113.93 20 -82.15 +60.565 11 -95.88 +114.93 21 -81.15 +59.565 67 0 0 @@ -5405,13 +5345,13 @@ LINE 8 Cut 10 -92.34 +116.47 20 -81.15 +59.565 11 -93.34 +117.47 21 -82.15 +60.565 67 0 0 @@ -5421,13 +5361,13 @@ LINE 8 Cut 10 -92.34 +116.47 20 -82.15 +60.565 11 -93.34 +117.47 21 -81.15 +59.565 67 0 0 @@ -5437,13 +5377,13 @@ LINE 8 Cut 10 -89.8 +119.01 20 -81.15 +59.565 11 -90.8 +120.01 21 -82.15 +60.565 67 0 0 @@ -5453,13 +5393,13 @@ LINE 8 Cut 10 -89.8 +119.01 20 -82.15 +60.565 11 -90.8 +120.01 21 -81.15 +59.565 67 0 0 @@ -5469,13 +5409,13 @@ LINE 8 Cut 10 -83.45 +119.00999999999999 20 -59.565000000000005 +36.06999999999999 11 -84.45 +120.00999999999999 21 -60.565000000000005 +37.06999999999999 67 0 0 @@ -5485,13 +5425,13 @@ LINE 8 Cut 10 -83.45 +119.00999999999999 20 -60.565000000000005 +37.06999999999999 11 -84.45 +120.00999999999999 21 -59.565000000000005 +36.06999999999999 67 0 0 @@ -5501,13 +5441,13 @@ LINE 8 Cut 10 -85.99000000000001 +116.47 20 -59.565000000000005 +36.07 11 -86.99000000000001 +117.47 21 -60.565000000000005 +37.07 67 0 0 @@ -5517,13 +5457,13 @@ LINE 8 Cut 10 -85.99000000000001 +116.47 20 -60.565000000000005 +37.07 11 -86.99000000000001 +117.47 21 -59.565000000000005 +36.07 67 0 0 @@ -5533,13 +5473,13 @@ LINE 8 Cut 10 -88.53 +113.92999999999999 20 -59.565 +36.07 11 -89.53 +114.92999999999999 21 -60.565 +37.07 67 0 0 @@ -5549,13 +5489,13 @@ LINE 8 Cut 10 -88.53 +113.92999999999999 20 -60.565 +37.07 11 -89.53 +114.92999999999999 21 -59.565 +36.07 67 0 0 @@ -5565,13 +5505,13 @@ LINE 8 Cut 10 -91.07000000000001 +111.39 20 -59.565 +36.07 11 -92.07000000000001 +112.39 21 -60.565 +37.07 67 0 0 @@ -5581,13 +5521,13 @@ LINE 8 Cut 10 -91.07000000000001 +111.39 20 -60.565 +37.07 11 -92.07000000000001 +112.39 21 -59.565 +36.07 67 0 0 @@ -5597,13 +5537,13 @@ LINE 8 Cut 10 -93.61 +108.85 20 -59.565 +36.07 11 -94.61 +109.85 21 -60.565 +37.07 67 0 0 @@ -5613,13 +5553,13 @@ LINE 8 Cut 10 -93.61 +108.85 20 -60.565 +37.07 11 -94.61 +109.85 21 -59.565 +36.07 67 0 0 @@ -5629,13 +5569,13 @@ LINE 8 Cut 10 -96.15 +106.31 20 -59.565 +36.07 11 -97.15 +107.31 21 -60.565 +37.07 67 0 0 @@ -5645,13 +5585,13 @@ LINE 8 Cut 10 -96.15 +106.31 20 -60.565 +37.07 11 -97.15 +107.31 21 -59.565 +36.07 67 0 0 @@ -5661,13 +5601,13 @@ LINE 8 Cut 10 -98.69 +103.77 20 -59.565 +36.07 11 -99.69 +104.77 21 -60.565 +37.07 67 0 0 @@ -5677,13 +5617,13 @@ LINE 8 Cut 10 -98.69 +103.77 20 -60.565 +37.07 11 -99.69 +104.77 21 -59.565 +36.07 67 0 0 @@ -5695,11 +5635,11 @@ Cut 10 101.23 20 -59.565 +36.07 11 102.23 21 -60.565 +37.07 67 0 0 @@ -5711,11 +5651,11 @@ Cut 10 101.23 20 -60.565 +37.07 11 102.23 21 -59.565 +36.07 67 0 0 @@ -5725,13 +5665,13 @@ LINE 8 Cut 10 -103.77 +98.69 20 -59.565 +36.07 11 -104.77 +99.69 21 -60.565 +37.07 67 0 0 @@ -5741,13 +5681,13 @@ LINE 8 Cut 10 -103.77 +98.69 20 -60.565 +37.07 11 -104.77 +99.69 21 -59.565 +36.07 67 0 0 @@ -5757,13 +5697,13 @@ LINE 8 Cut 10 -106.31 +96.15 20 -59.565 +36.07 11 -107.31 +97.15 21 -60.565 +37.07 67 0 0 @@ -5773,13 +5713,13 @@ LINE 8 Cut 10 -106.31 +96.15 20 -60.565 +37.07 11 -107.31 +97.15 21 -59.565 +36.07 67 0 0 @@ -5789,13 +5729,13 @@ LINE 8 Cut 10 -108.85 +93.61 20 -59.565 +36.07 11 -109.85 +94.61 21 -60.565 +37.07 67 0 0 @@ -5805,13 +5745,13 @@ LINE 8 Cut 10 -108.85 +93.61 20 -60.565 +37.07 11 -109.85 +94.61 21 -59.565 +36.07 67 0 0 @@ -5821,13 +5761,13 @@ LINE 8 Cut 10 -111.39 +91.07 20 -59.565 +36.07 11 -112.39 +92.07 21 -60.565 +37.07 67 0 0 @@ -5837,13 +5777,13 @@ LINE 8 Cut 10 -111.39 +91.07 20 -60.565 +37.07 11 -112.39 +92.07 21 -59.565 +36.07 67 0 0 @@ -5853,13 +5793,13 @@ LINE 8 Cut 10 -113.93 +88.53 20 -59.565 +36.07 11 -114.93 +89.53 21 -60.565 +37.07 67 0 0 @@ -5869,13 +5809,13 @@ LINE 8 Cut 10 -113.93 +88.53 20 -60.565 +37.07 11 -114.93 +89.53 21 -59.565 +36.07 67 0 0 @@ -5885,13 +5825,13 @@ LINE 8 Cut 10 -116.47 +85.99 20 -59.565 +36.07000000000001 11 -117.47 +86.99 21 -60.565 +37.07000000000001 67 0 0 @@ -5901,13 +5841,13 @@ LINE 8 Cut 10 -116.47 +85.99 20 -60.565 +37.07000000000001 11 -117.47 +86.99 21 -59.565 +36.07000000000001 67 0 0 @@ -5917,13 +5857,13 @@ LINE 8 Cut 10 -119.01 +83.44999999999999 20 -59.565 +36.07000000000001 11 -120.01 +84.44999999999999 21 -60.565 +37.07000000000001 67 0 0 @@ -5933,1051 +5873,13 @@ LINE 8 Cut 10 -119.01 - 20 -60.565 - 11 -120.01 - 21 -59.565 - 67 -0 - 0 -LINE - 5 -329 - 8 -Cut - 10 -119.00999999999999 - 20 -36.06999999999999 - 11 -120.00999999999999 - 21 -37.06999999999999 - 67 -0 - 0 -LINE - 5 -32A - 8 -Cut - 10 -119.00999999999999 - 20 -37.06999999999999 - 11 -120.00999999999999 - 21 -36.06999999999999 - 67 -0 - 0 -LINE - 5 -32B - 8 -Cut - 10 -116.47 - 20 -36.07 - 11 -117.47 - 21 -37.07 - 67 -0 - 0 -LINE - 5 -32C - 8 -Cut - 10 -116.47 +83.44999999999999 20 -37.07 +37.07000000000001 11 -117.47 +84.44999999999999 21 -36.07 - 67 -0 - 0 -LINE - 5 -32D - 8 -Cut - 10 -113.92999999999999 - 20 -36.07 - 11 -114.92999999999999 - 21 -37.07 - 67 -0 - 0 -LINE - 5 -32E - 8 -Cut - 10 -113.92999999999999 - 20 -37.07 - 11 -114.92999999999999 - 21 -36.07 - 67 -0 - 0 -LINE - 5 -32F - 8 -Cut - 10 -111.39 - 20 -36.07 - 11 -112.39 - 21 -37.07 - 67 -0 - 0 -LINE - 5 -330 - 8 -Cut - 10 -111.39 - 20 -37.07 - 11 -112.39 - 21 -36.07 - 67 -0 - 0 -LINE - 5 -331 - 8 -Cut - 10 -108.85 - 20 -36.07 - 11 -109.85 - 21 -37.07 - 67 -0 - 0 -LINE - 5 -332 - 8 -Cut - 10 -108.85 - 20 -37.07 - 11 -109.85 - 21 -36.07 - 67 -0 - 0 -LINE - 5 -333 - 8 -Cut - 10 -106.31 - 20 -36.07 - 11 -107.31 - 21 -37.07 - 67 -0 - 0 -LINE - 5 -334 - 8 -Cut - 10 -106.31 - 20 -37.07 - 11 -107.31 - 21 -36.07 - 67 -0 - 0 -LINE - 5 -335 - 8 -Cut - 10 -103.77 - 20 -36.07 - 11 -104.77 - 21 -37.07 - 67 -0 - 0 -LINE - 5 -336 - 8 -Cut - 10 -103.77 - 20 -37.07 - 11 -104.77 - 21 -36.07 - 67 -0 - 0 -LINE - 5 -337 - 8 -Cut - 10 -101.23 - 20 -36.07 - 11 -102.23 - 21 -37.07 - 67 -0 - 0 -LINE - 5 -338 - 8 -Cut - 10 -101.23 - 20 -37.07 - 11 -102.23 - 21 -36.07 - 67 -0 - 0 -LINE - 5 -339 - 8 -Cut - 10 -98.69 - 20 -36.07 - 11 -99.69 - 21 -37.07 - 67 -0 - 0 -LINE - 5 -33A - 8 -Cut - 10 -98.69 - 20 -37.07 - 11 -99.69 - 21 -36.07 - 67 -0 - 0 -LINE - 5 -33B - 8 -Cut - 10 -96.15 - 20 -36.07 - 11 -97.15 - 21 -37.07 - 67 -0 - 0 -LINE - 5 -33C - 8 -Cut - 10 -96.15 - 20 -37.07 - 11 -97.15 - 21 -36.07 - 67 -0 - 0 -LINE - 5 -33D - 8 -Cut - 10 -93.61 - 20 -36.07 - 11 -94.61 - 21 -37.07 - 67 -0 - 0 -LINE - 5 -33E - 8 -Cut - 10 -93.61 - 20 -37.07 - 11 -94.61 - 21 -36.07 - 67 -0 - 0 -LINE - 5 -33F - 8 -Cut - 10 -91.07 - 20 -36.07 - 11 -92.07 - 21 -37.07 - 67 -0 - 0 -LINE - 5 -340 - 8 -Cut - 10 -91.07 - 20 -37.07 - 11 -92.07 - 21 -36.07 - 67 -0 - 0 -LINE - 5 -341 - 8 -Cut - 10 -88.53 - 20 -36.07 - 11 -89.53 - 21 -37.07 - 67 -0 - 0 -LINE - 5 -342 - 8 -Cut - 10 -88.53 - 20 -37.07 - 11 -89.53 - 21 -36.07 - 67 -0 - 0 -LINE - 5 -343 - 8 -Cut - 10 -85.99 - 20 -36.07000000000001 - 11 -86.99 - 21 -37.07000000000001 - 67 -0 - 0 -LINE - 5 -344 - 8 -Cut - 10 -85.99 - 20 -37.07000000000001 - 11 -86.99 - 21 -36.07000000000001 - 67 -0 - 0 -LINE - 5 -345 - 8 -Cut - 10 -83.44999999999999 - 20 -36.07000000000001 - 11 -84.44999999999999 - 21 -37.07000000000001 - 67 -0 - 0 -LINE - 5 -346 - 8 -Cut - 10 -83.44999999999999 - 20 -37.07000000000001 - 11 -84.44999999999999 - 21 -36.07000000000001 - 67 -0 - 0 -LINE - 5 -347 - 8 -Cut - 10 -88.28 - 20 -60.815 - 11 -89.78 - 21 -60.815 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -348 - 8 -Cut - 10 -89.78 - 20 -59.315 - 11 -89.78 - 21 -60.815 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -349 - 8 -Cut - 10 -88.28 - 20 -59.315 - 11 -89.78 - 21 -59.315 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -34A - 8 -Cut - 10 -112.41 - 20 -80.9 - 11 -112.41 - 21 -82.4 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -34B - 8 -Cut - 10 -113.91 - 20 -80.9 - 11 -113.91 - 21 -82.4 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -34C - 8 -Cut - 10 -112.41 - 20 -80.9 - 11 -113.91 - 21 -80.9 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -34D - 8 -Cut - 10 -99.71 - 20 -82.4 - 11 -101.21 - 21 -82.4 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -34E - 8 -Cut - 10 -101.21 - 20 -80.9 - 11 -101.21 - 21 -82.4 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -34F - 8 -Cut - 10 -99.71 - 20 -80.9 - 11 -101.21 - 21 -80.9 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -350 - 8 -Cut - 10 -104.79 - 20 -82.4 - 11 -106.29 - 21 -82.4 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -351 - 8 -Cut - 10 -106.29 - 20 -80.9 - 11 -106.29 - 21 -82.4 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -352 - 8 -Cut - 10 -104.79 - 20 -80.9 - 11 -106.29 - 21 -80.9 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -353 - 8 -Cut - 10 -83.2 - 20 -59.315000000000005 - 11 -83.2 - 21 -60.815000000000005 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -354 - 8 -Cut - 10 -83.2 - 20 -60.815000000000005 - 11 -84.7 - 21 -60.815000000000005 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -355 - 8 -Cut - 10 -84.7 - 20 -59.315000000000005 - 11 -84.7 - 21 -60.815000000000005 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -356 - 8 -Cut - 10 -83.2 - 20 -59.315000000000005 - 11 -84.7 - 21 -59.315000000000005 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -357 - 8 -Cut - 10 -99.71 - 20 -80.9 - 11 -99.71 - 21 -82.4 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -358 - 8 -Cut - 10 -101.21 - 20 -80.9 - 11 -101.21 - 21 -82.4 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -359 - 8 -Cut - 10 -99.71 - 20 -80.9 - 11 -101.21 - 21 -80.9 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -35A - 8 -Cut - 10 -90.82000000000001 - 20 -60.815 - 11 -92.32000000000001 - 21 -60.815 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -35B - 8 -Cut - 10 -92.32000000000001 - 20 -59.315 - 11 -92.32000000000001 - 21 -60.815 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -35C - 8 -Cut - 10 -90.82000000000001 - 20 -59.315 - 11 -92.32000000000001 - 21 -59.315 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -35D - 8 -Cut - 10 -85.74000000000001 - 20 -60.815000000000005 - 11 -87.24000000000001 - 21 -60.815000000000005 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -35E - 8 -Cut - 10 -87.24000000000001 - 20 -59.315000000000005 - 11 -87.24000000000001 - 21 -60.815000000000005 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -35F - 8 -Cut - 10 -85.74000000000001 - 20 -59.315000000000005 - 11 -87.24000000000001 - 21 -59.315000000000005 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -360 - 8 -Cut - 10 -85.74000000000001 - 20 -60.815000000000005 - 11 -87.24000000000001 - 21 -60.815000000000005 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -361 - 8 -Cut - 10 -87.24000000000001 - 20 -59.315000000000005 - 11 -87.24000000000001 - 21 -60.815000000000005 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -362 - 8 -Cut - 10 -85.74000000000001 - 20 -59.315000000000005 - 11 -87.24000000000001 - 21 -59.315000000000005 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -363 - 8 -Cut - 10 -102.25 - 20 -82.4 - 11 -103.75 - 21 -82.4 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -364 - 8 -Cut - 10 -103.75 - 20 -80.9 - 11 -103.75 - 21 -82.4 - 6 -DASHDOT - 67 -0 - 0 -LINE - 5 -365 - 8 -Cut - 10 -102.25 - 20 -80.9 - 11 -103.75 - 21 -80.9 - 6 -DASHDOT +36.07000000000001 67 0 0 diff --git a/paperbot_ee_autoroute/paperbot_dsn.py b/paperbot_ee_autoroute/paperbot_dsn.py index 6b64d4648eb065966c336afe7d53c5c0f5d398cc..c782fb14c606b09665d919c676fd3d69a86823de 100644 --- a/paperbot_ee_autoroute/paperbot_dsn.py +++ b/paperbot_ee_autoroute/paperbot_dsn.py @@ -18,8 +18,8 @@ class brd_design(): ] self.netlist=[ ['3v3',['U1-3','J1-1']], - ['VIN',['U1-1','J1-6','J1-4']], - ['NET1',['U1-2','J1-5','U1-4']] + ['VIN',['U1-1']], + ['NET1',['U1-2','J1-5']] ] self.netclass_list=[ ['default',['3v3','VIN','NET1'],'',1000,200] diff --git a/paperbot_ee_autoroute/paperbot_ee.rules b/paperbot_ee_autoroute/paperbot_ee.rules index 57a9baf553f2d772de67924c4e479b7bf5049472..8454b7c5dfaf3f9727d6b4991c74c883dffa7504 100644 --- a/paperbot_ee_autoroute/paperbot_ee.rules +++ b/paperbot_ee_autoroute/paperbot_ee.rules @@ -11,7 +11,7 @@ (via_costs 50) (plane_via_costs 5) (start_ripup_costs 100) - (start_pass_no 126) + (start_pass_no 104) (layer_rule F.Cu (active on) (preferred_direction vertical) diff --git a/paperbot_ee_autoroute/roco_ee_dwg_processing.py b/paperbot_ee_autoroute/roco_ee_dwg_processing.py index 6f9568519b66b350c5a2d1602c1ca554cc71fefa..66576b218f2d3732e15c81807bc4857d1bc5839d 100644 --- a/paperbot_ee_autoroute/roco_ee_dwg_processing.py +++ b/paperbot_ee_autoroute/roco_ee_dwg_processing.py @@ -37,7 +37,7 @@ class post_process(): # self.draw_wires() self.parallel_trace(1.5) self.draw_cross_cut(1) - self.isolation_box_bry(1.5) + self.dwg.saveas('dwg_w_circuit.dxf') print('drawing is ready for you to make a robot...') @@ -55,132 +55,111 @@ class post_process(): 'linetype':'DASHDOT'}) def parallel_trace(self,width): - for path in self.wiring: - for i in range(len(path)-1): - pt1=path[i][0],path[i][1] - pt2=path[i+1][0],path[i+1][1] - - l1=find_line_eq(pt1,pt2) - - if i<len(path)-2: #before last line - pt3=path[i+2][0],path[i+2][1] - l2=find_line_eq(pt2,pt3) - + # for path in self.wiring: + path=self.wiring[0] + for i in range(len(path)-1): + pt1=path[i][0],path[i][1] + pt2=path[i+1][0],path[i+1][1] + + l1=find_line_eq(pt1,pt2) + + if i<len(path)-2: #before last line + pt3=path[i+2][0],path[i+2][1] + l2=find_line_eq(pt2,pt3) + + + #filter bi-sector + _bi=find_angle_bisector(l1,l2) + for sector in _bi: + if if_two_pt_on_diff_side(sector,pt1,pt3): + bi=sector - #filter bi-sector - _bi=find_angle_bisector(l1,l2) - for sector in _bi: - if if_two_pt_on_diff_side(sector,pt1,pt3): - bi=sector - - if i==0: # if the first point - offl1_in,offl1_out=find_offset(l1,width) - if l1[2]==0: - s1=[pt1[0]-width/2,pt1[1]] - s2=[pt1[0]+width/2,pt1[1]] - else: - s1=[pt1[0],offl1_in[0]*pt1[0]+offl1_in[1]] - s2=[pt1[0],offl1_out[0]*pt1[0]+offl1_out[1]] - - offl2_in,offl2_out=find_offset(l2,width) + if i==0: # if the first point + s1,s2=self.find_iso_bry(width,pt1,pt2) + offl1_in,offl1_out=find_offset(l1,width) + # if l1[2]==0: + # s1=[pt1[0]-width/2,pt1[1]] + # s2=[pt1[0]+width/2,pt1[1]] + # else: + # s1=[pt1[0],offl1_in[0]*pt1[0]+offl1_in[1]] + # s2=[pt1[0],offl1_out[0]*pt1[0]+offl1_out[1]] - e1=find_intersect(offl1_in,bi) - e2=find_intersect(offl1_out,bi) - else: - if l1[2]==0: - e1=[pt2[0]-width/2,pt2[1]] - e2=[pt2[0]+width/2,pt2[1]] - else: - e1=[pt2[0],offl1_in[0]*pt2[0]+offl1_in[1]] - e2=[pt2[0],offl1_out[0]*pt2[0]+offl1_out[1]] + offl2_in,offl2_out=find_offset(l2,width) + + e1=find_intersect(offl1_in,bi) + e2=find_intersect(offl1_out,bi) + else: + e1,e2=self.find_iso_bry(width,pt2,pt1) + # if l1[2]==0: + # e1=[pt2[0]-width/2,pt2[1]] + # e2=[pt2[0]+width/2,pt2[1]] + # else: + # e1=[pt2[0],offl1_in[0]*pt2[0]+offl1_in[1]] + # e2=[pt2[0],offl1_out[0]*pt2[0]+offl1_out[1]] - - self.msp.add_line(s1,e1,dxfattribs={ - 'layer':'Circuit', - 'linetype':'DASHDOT'}) - self.msp.add_line(s2,e2,dxfattribs={ - 'layer':'Circuit', - 'linetype':'DASHDOT'}) + + self.msp.add_line(s1,e1,dxfattribs={ + 'layer':'Circuit', + 'linetype':'DASHDOT'}) + self.msp.add_line(s2,e2,dxfattribs={ + 'layer':'Circuit', + 'linetype':'DASHDOT'}) - - if i<len(path)-2: - if list(e1)==list(find_intersect(offl2_out,bi)): - offl1_out,offl1_in=find_offset(l2,width) - else: - offl1_in,offl1_out=find_offset(l2,width) - s1=find_intersect(offl1_in,bi) - s2=find_intersect(offl1_out,bi) + + if i<len(path)-2: + if list(e1)==list(find_intersect(offl2_out,bi)): + offl1_out,offl1_in=find_offset(l2,width) + else: + offl1_in,offl1_out=find_offset(l2,width) + s1=find_intersect(offl1_in,bi) + s2=find_intersect(offl1_out,bi) def draw_cross_cut(self,size): for module_pin in self.pin_at: cross_cut(self.msp,size,module_pin) - def isolation_box_bry(self,size): - tolerance=0.03 - for path in self.wiring: - endpoint=[path[0],path[-1]] - for i in range(len(endpoint)): - ept=endpoint[i] - for module_pin in self.pin_at: - for pt in module_pin: - flag=0 - iso_pts=isolation_box_pts(size,pt) - if (sqrt((ept[0]-pt[0])**2+(ept[1]-pt[1])**2)) <= tolerance: - #such line is intersect with one of the edge of isolation box - if i==0: - l=find_line_eq(path[0],path[1]) - else: - l=find_line_eq(path[-1],path[-2]) - - for j in range(len(iso_pts)): - draw=0 - if j==3: - k=0 - else: k=j+1 - p1=iso_pts[j] - p2=iso_pts[k] - - if p1[0]>p2[0]: - p1=iso_pts[k] - p2=iso_pts[j] - elif p1[0]==p2[0]: - if p1[1]>p2[1]: - p1=iso_pts[k] - p2=iso_pts[j] - if flag==0: - iso_line=find_line_eq(p1,p2) - inter=find_intersect(iso_line,l) - if type(inter)!=type(None): - if inter[0]>=p1[0] and inter[0]<=p2[0]: - if inter[1]>=p1[1] and inter[1]<=p2[1]: - flag=1 - else: draw=1 - else: draw=1 - else: draw=1 - else: draw=1 - if draw==1: - self.msp.add_line(p1,p2,dxfattribs={'linetype':'DASHDOT', 'layer':'Cut'}) - - - - - - + def find_iso_bry(self,width,endpoint1,endpoint2): + tolerance=0.05 + ept=endpoint1 + l=find_line_eq(endpoint1,endpoint2) + for module_pin in self.pin_at: + for pin in module_pin: + if (sqrt((ept[0]-pin[0])**2+(ept[1]-pin[1])**2)) <= tolerance: + #endpoint 1 is connect to such pin + four_l_points=isolation_box_linepts(width,pin) + for line_pts in four_l_points: + pt1,pt2=line_pts[0],line_pts[1] + iso_line=find_line_eq(pt1,pt2) + inter=find_intersect(iso_line,l) + if type(inter)!=type(None): + if inter[0]>= pt1[0] and inter[0]<=pt2[0] and inter[1]>=pt1[1] and inter[1] <=pt2[1]: + #such edge intersect with the path + draw_pt1=pt1 + draw_pt2=pt2 + four_l_points.remove(line_pts) + break + for line_pts in four_l_points: + p1,p2=line_pts[0],line_pts[1] + self.msp.add_line(p1,p2,dxfattribs={'linetype':'DASHDOT', 'layer':'Cut'}) + return draw_pt1,draw_pt2 -def isolation_box_pts(box_size,pt): +def isolation_box_linepts(box_size,pt): """ box_size= lenght of isoloation box """ tipat=box_size/2 x=pt[0] y=pt[1] - s1=(x-tipat,y-tipat) - s2=(x-tipat,y+tipat) - e1=(x+tipat,y+tipat) - e2=(x+tipat,y-tipat) - - return [s1,s2,e1,e2] + a=(x-tipat,y-tipat) + b=(x-tipat,y+tipat) + c=(x+tipat,y+tipat) + d=(x+tipat,y-tipat) + l1=[a,b] + l2=[b,c] + l3=[d,c] + l4=[a,d] + return [l1,l2,l3,l4] def cross_cut(msp,cross_size,pin_loc): """ cross_size= lenght of bounding box of the cross cut