From 371dfdb9771903c994628dc6c350afbfc9dfc83f Mon Sep 17 00:00:00 2001
From: 42loop <ulf.freyhoff@gmx.net>
Date: Sun, 23 Jun 2019 12:48:29 +0200
Subject: [PATCH] added blower function, inverted read_data result to reflect
 sensor function active low

---
 android/.idea/vcs.xml                         |    6 +
 .../com/stuffaboutcode/bluedot/Button.java    |   22 +
 android/app/src/main/res/drawable/blower.png  |  Bin 0 -> 16985 bytes
 .../src/main/res/layout/activity_button.xml   |   40 +-
 bluedot_server/dotserver.py                   |   31 +-
 bluedot_server/sensorcheck.py                 |  106 +
 christ_io/.gitignore                          |    1 +
 raspi_mount.dxf                               | 4438 +++++++++++++++++
 raspi_mount.scad                              |   24 +
 9 files changed, 4642 insertions(+), 26 deletions(-)
 create mode 100644 android/.idea/vcs.xml
 create mode 100644 android/app/src/main/res/drawable/blower.png
 create mode 100644 bluedot_server/sensorcheck.py
 create mode 100644 christ_io/.gitignore
 create mode 100644 raspi_mount.dxf
 create mode 100644 raspi_mount.scad

diff --git a/android/.idea/vcs.xml b/android/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/android/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/android/app/src/main/java/com/stuffaboutcode/bluedot/Button.java b/android/app/src/main/java/com/stuffaboutcode/bluedot/Button.java
index 2ed59f5..9cb91a8 100644
--- a/android/app/src/main/java/com/stuffaboutcode/bluedot/Button.java
+++ b/android/app/src/main/java/com/stuffaboutcode/bluedot/Button.java
@@ -98,6 +98,7 @@ public class Button extends AppCompatActivity {
         final View fwd = (View)findViewById(R.id.fwdButton);
         final View bwd = (View)findViewById(R.id.bwdButton);
 
+        final View blowerButton = (View)findViewById(R.id.blowerButton);
         //send heartbeat to server:
 
         final Handler h = new Handler();
@@ -184,6 +185,20 @@ public class Button extends AppCompatActivity {
             }
         });
 
+        blowerButton.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+
+                if (event.getAction() == MotionEvent.ACTION_DOWN) {
+                    blowerpressed(blowerButton, event);
+
+                }
+                return false;
+            }
+        });
+
+
+
         leftbrush.setOnTouchListener(new View.OnTouchListener() {
             @Override
             public boolean onTouch(View v, MotionEvent event) {
@@ -535,6 +550,13 @@ public class Button extends AppCompatActivity {
 
     }
 
+
+
+    private void blowerpressed(View blowerButton, MotionEvent event) {
+        send(buildMessageWithID("1", 0, 0, "blower"));
+
+    }
+
     private void sqonpressed(View squareonButton, MotionEvent event) {
         double x = calcX(squareonButton, event);
         double y = calcY(squareonButton, event);
diff --git a/android/app/src/main/res/drawable/blower.png b/android/app/src/main/res/drawable/blower.png
new file mode 100644
index 0000000000000000000000000000000000000000..315d5ea56d82224e9f2eb2d7b8be8706ce600e74
GIT binary patch
literal 16985
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

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/layout/activity_button.xml b/android/app/src/main/res/layout/activity_button.xml
index 5959cec..962e67a 100644
--- a/android/app/src/main/res/layout/activity_button.xml
+++ b/android/app/src/main/res/layout/activity_button.xml
@@ -60,11 +60,11 @@
 
         android:layout_marginEnd="16dp"
         android:layout_marginRight="16dp"
-        android:layout_marginBottom="16dp"
+        android:layout_marginBottom="8dp"
         android:background="@drawable/square_off_button"
         android:text="OFF"
         android:textSize="40dp"
-        app:layout_constraintBottom_toTopOf="@+id/cb1"
+        app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="@+id/roundButton2" />
 
     <Button
@@ -76,11 +76,11 @@
         android:layout_marginLeft="16dp"
         android:layout_marginEnd="16dp"
         android:layout_marginRight="16dp"
-        android:layout_marginBottom="16dp"
+        android:layout_marginBottom="8dp"
         android:background="@drawable/square_off_button"
         android:text="AUTO"
         android:textSize="40dp"
-        app:layout_constraintBottom_toTopOf="@+id/cb1"
+        app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toStartOf="@+id/offButton"
         app:layout_constraintStart_toEndOf="@+id/onButton" />
 
@@ -199,11 +199,11 @@
         android:layout_marginStart="16dp"
 
         android:layout_marginLeft="16dp"
-        android:layout_marginBottom="16dp"
+        android:layout_marginBottom="8dp"
         android:background="@drawable/square_off_button"
         android:text="ON"
         android:textSize="40dp"
-        app:layout_constraintBottom_toTopOf="@+id/cb1"
+        app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintStart_toStartOf="@+id/roundButton1" />
 
     <ImageButton
@@ -236,22 +236,20 @@
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/yellowButton" />
 
-    <CheckBox
-        android:id="@+id/cb1"
-        android:layout_width="0dp"
-        android:layout_height="60dp"
-        android:layout_marginStart="16dp"
-        android:layout_marginLeft="16dp"
-        android:layout_marginEnd="16dp"
-        android:layout_marginRight="16dp"
-        android:layout_marginBottom="16dp"
-        android:layout_weight="1"
-        android:onClick="onCheckboxClicked"
-        android:scaleX="2"
-        android:scaleY="2"
-        app:layout_constraintBottom_toBottomOf="parent"
+    <ImageButton
+        android:id="@+id/blowerButton"
+        android:layout_width="100dp"
+        android:layout_height="100dp"
+        android:layout_marginTop="32dp"
+        android:layout_marginEnd="24dp"
+        android:layout_marginRight="24dp"
+        android:background="@drawable/round_button"
+        android:scaleType="fitXY"
+        android:src="@drawable/blower"
+        android:text="SPEED"
+        android:textSize="40dp"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent" />
+        app:layout_constraintTop_toBottomOf="@+id/RLButton" />
 
 
 </android.support.constraint.ConstraintLayout>
diff --git a/bluedot_server/dotserver.py b/bluedot_server/dotserver.py
index 8342082..95904e9 100644
--- a/bluedot_server/dotserver.py
+++ b/bluedot_server/dotserver.py
@@ -1,5 +1,11 @@
 #!/usr/bin/python3
 
+
+#  ggf wegen umrichter:
+#  s.wendel@sourceindex.de
+
+
+
 DEBUG=False
 platform="raspi"
 
@@ -22,6 +28,8 @@ data0=0
 data1=0
 data2=0
 
+blower=False
+
 last_sensors=0
 sensors=0
 
@@ -77,9 +85,10 @@ master_in=4
 data0_ids={"fwd":0,"bwd":1,"none":2,"none":3,"LL":4,"LR":5,"RL":6,"RR":7}
 #          GND                                          15V DC
 data1_ids={"lbrushcw":0,"lbrushccw":1,"none":2,"none":3,"rbrushcw":4,"rbrushccw":5,"none":6,"none":7}
-#          12V DC                              5V DC  
-data2_ids={"col1":0,"col2":1,"col3":2,"col4":3,"ampel_fwd":4,"ampel_bwd":5,"ampel_stop":6,"none":7}
+#          12V DC                              42V AC  
+data2_ids={"col1":0,"col2":1,"col3":2,"col4":3,"blower":4,"none":5,"none":6,"none":7}
 
+data3_ids={"ampel_fwd":0,"ampel_bwd":1,"ampel_stop":2,"none":3}
 #all on 42V AC
 sensor_ids={"railstart":0,"railend":1,"railposition":2,"left":3,"right":4,"center":5,"none":6,"none":7}
 
@@ -252,7 +261,7 @@ def read_data(card_no,adr):
 
     #print("READ card_no: ",card_no," subadr: ",adr," data: ",result)
 
-    return result
+    return ~result
 
 
 
@@ -460,6 +469,7 @@ def check_sensor_action():
         else:
             print("estop railend released")
             motion_block = motion_block & ~(1<<data0_ids["fwd"])
+    
 
     if (sensors & (1<<sensor_ids["railposition"])) != (last_sensors & (1<<sensor_ids["railposition"])):
         if (sensors & (1<<sensor_ids["railposition"])) !=0:
@@ -821,6 +831,7 @@ def pressed(pos,id):
     global auto
     global time_elap
 
+    global blower
     
 
 
@@ -837,12 +848,14 @@ def pressed(pos,id):
     global rightpressedts
     global heartbeatts
 
+
+
     ts = int(round(time.time() * 1000))
     
-#    print("pressed: ",id,ts);
+    #print("pressed: ",id,ts);
 
     if id=="heartbeat":
-        print("have heartbeat from client")
+#        print("have heartbeat from client")
         heartbeatts=ts
 
     if id=="leftbrush":
@@ -889,6 +902,14 @@ def pressed(pos,id):
             data0=data0 | 1<<data0_ids[id]
 
 
+    elif id=="blower":
+        blower=not blower
+        if blower:
+            data2=data2 | 1<<data2_ids[id]
+        else:
+            data2=data2 & ~(1<<data2_ids[id])
+
+
 
 
 #handle colors
diff --git a/bluedot_server/sensorcheck.py b/bluedot_server/sensorcheck.py
new file mode 100644
index 0000000..48ba6dd
--- /dev/null
+++ b/bluedot_server/sensorcheck.py
@@ -0,0 +1,106 @@
+#!/usr/bin/python3
+
+st_stop=0
+st_fwd=1
+st_bwd=2
+
+state=st_fwd
+#state=st_bwd
+
+last_sensors=0
+sensors=32
+
+position=0
+
+data0_ids={"fwd":0,"bwd":1,"LL":2,"LR":3,"RL":4,"RR":5,"none":6,"none":7}
+#data1_ids={"lbrushcw":0,"lbrushccw":1,"rbrushcw":2,"rbrushccw":3,"col1":4,"col2":5,"col3":6,"col4":7}
+sensor_ids={"railstart":0,"railend":1,"railposition":2,"left":3,"right":4,"center":5,"none":6,"none":7}
+
+motion_block=0
+
+
+def check_sensor_action():
+    global position
+    global motion_block
+
+    if (sensors & (1<<sensor_ids["railstart"])) != (last_sensors & (1<<sensor_ids["railstart"])):
+        if (sensors & (1<<sensor_ids["railstart"])) != 0:
+            print("railstart hit")
+            motion_block = motion_block | (1<<data0_ids["bwd"])
+        else:
+            print("railstart released")
+            motion_block = motion_block & ~(1<<data0_ids["bwd"])
+
+    if (sensors & (1<<sensor_ids["railend"])) != (last_sensors & (1<<sensor_ids["railend"])):
+        if (sensors & (1<<sensor_ids["railend"])) !=0:
+            print("railend hit")
+            motion_block = motion_block | (1<<data0_ids["fwd"])
+        else:
+            print("railend released")
+            motion_block = motion_block & ~(1<<data0_ids["fwd"])
+
+    if (sensors & (1<<sensor_ids["railposition"])) != (last_sensors & (1<<sensor_ids["railposition"])):
+        if (sensors & (1<<sensor_ids["railposition"])) !=0:
+            print("railposition hit")
+            if state==st_fwd:
+                position+=1
+            else:
+                position-=1
+        else:
+            print("railposition released")
+
+    if (sensors & (1<<sensor_ids["left"])) != (last_sensors & (1<<sensor_ids["left"])):
+        if (sensors & (1<<sensor_ids["left"])) !=0:
+            print("left hit")
+            motion_block = motion_block | (1<<data0_ids["LL"])
+        else:
+            print("left released")
+            motion_block = motion_block & ~(1<<data0_ids["LL"])
+
+
+    if (sensors & (1<<sensor_ids["right"])) != (last_sensors & (1<<sensor_ids["right"])): 
+        if (sensors & (1<<sensor_ids["right"])) !=0:
+            print("right hit")
+            motion_block = motion_block | (1<<data0_ids["RR"])
+        else:
+            print("right released")
+            motion_block = motion_block & ~(1<<data0_ids["RR"])
+
+    if (sensors & (1<<sensor_ids["center"])) != (last_sensors & (1<<sensor_ids["center"])):        
+        if (sensors & (1<<sensor_ids["center"])) !=0:
+            print("center hit")
+            motion_block = motion_block | (1<<data0_ids["LR"])
+            motion_block = motion_block | (1<<data0_ids["RL"])
+
+        else:
+            print("center released")
+            motion_block = motion_block & ~(1<<data0_ids["LR"])
+            motion_block = motion_block & ~(1<<data0_ids["RL"])
+
+    print(motion_block)
+
+
+def apply_motion_block():
+    if (motion_block & (1<<data0_ids["fwd"]) !=0):
+        print("block fwd")
+
+    if (motion_block & (1<<data0_ids["bwd"]) !=0):
+        print("block bwd")
+
+    if (motion_block & (1<<data0_ids["LL"]) !=0):
+        print("block LL")
+
+    if (motion_block & (1<<data0_ids["LR"]) !=0):
+        print("block LR")
+
+    if (motion_block & (1<<data0_ids["RL"]) !=0):
+        print("block RL")
+
+    if (motion_block & (1<<data0_ids["RR"]) !=0):
+        print("block RR")
+
+
+
+
+check_sensor_action()
+apply_motion_block()
\ No newline at end of file
diff --git a/christ_io/.gitignore b/christ_io/.gitignore
new file mode 100644
index 0000000..13b8155
--- /dev/null
+++ b/christ_io/.gitignore
@@ -0,0 +1 @@
+*.s#*
diff --git a/raspi_mount.dxf b/raspi_mount.dxf
new file mode 100644
index 0000000..928a996
--- /dev/null
+++ b/raspi_mount.dxf
@@ -0,0 +1,4438 @@
+  0
+SECTION
+  2
+BLOCKS
+  0
+ENDSEC
+  0
+SECTION
+  2
+ENTITIES
+  0
+LINE
+  8
+0
+ 10
+0
+ 20
+0
+ 11
+100
+ 21
+0
+  0
+LINE
+  8
+0
+ 10
+100
+ 20
+0
+ 11
+100
+ 21
+75
+  0
+LINE
+  8
+0
+ 10
+100
+ 20
+75
+ 11
+0
+ 21
+75
+  0
+LINE
+  8
+0
+ 10
+0
+ 20
+75
+ 11
+0
+ 21
+0
+  0
+LINE
+  8
+0
+ 10
+3.5
+ 20
+3
+ 11
+3.50822
+ 21
+3.15679
+  0
+LINE
+  8
+0
+ 10
+3.50822
+ 20
+3.15679
+ 11
+3.53278
+ 21
+3.31187
+  0
+LINE
+  8
+0
+ 10
+3.53278
+ 20
+3.31187
+ 11
+3.57342
+ 21
+3.46352
+  0
+LINE
+  8
+0
+ 10
+3.57342
+ 20
+3.46352
+ 11
+3.62968
+ 21
+3.6101
+  0
+LINE
+  8
+0
+ 10
+3.62968
+ 20
+3.6101
+ 11
+3.70096
+ 21
+3.75
+  0
+LINE
+  8
+0
+ 10
+3.70096
+ 20
+3.75
+ 11
+3.78648
+ 21
+3.88168
+  0
+LINE
+  8
+0
+ 10
+3.78648
+ 20
+3.88168
+ 11
+3.88528
+ 21
+4.0037
+  0
+LINE
+  8
+0
+ 10
+3.88528
+ 20
+4.0037
+ 11
+3.9963
+ 21
+4.11472
+  0
+LINE
+  8
+0
+ 10
+3.9963
+ 20
+4.11472
+ 11
+4.11832
+ 21
+4.21352
+  0
+LINE
+  8
+0
+ 10
+4.11832
+ 20
+4.21352
+ 11
+4.25
+ 21
+4.29904
+  0
+LINE
+  8
+0
+ 10
+4.25
+ 20
+4.29904
+ 11
+4.3899
+ 21
+4.37032
+  0
+LINE
+  8
+0
+ 10
+4.3899
+ 20
+4.37032
+ 11
+4.53648
+ 21
+4.42658
+  0
+LINE
+  8
+0
+ 10
+4.53648
+ 20
+4.42658
+ 11
+4.68813
+ 21
+4.46722
+  0
+LINE
+  8
+0
+ 10
+4.68813
+ 20
+4.46722
+ 11
+4.84321
+ 21
+4.49178
+  0
+LINE
+  8
+0
+ 10
+4.84321
+ 20
+4.49178
+ 11
+5
+ 21
+4.5
+  0
+LINE
+  8
+0
+ 10
+5
+ 20
+4.5
+ 11
+5.15679
+ 21
+4.49178
+  0
+LINE
+  8
+0
+ 10
+5.15679
+ 20
+4.49178
+ 11
+5.31187
+ 21
+4.46722
+  0
+LINE
+  8
+0
+ 10
+5.31187
+ 20
+4.46722
+ 11
+5.46352
+ 21
+4.42658
+  0
+LINE
+  8
+0
+ 10
+5.46352
+ 20
+4.42658
+ 11
+5.6101
+ 21
+4.37032
+  0
+LINE
+  8
+0
+ 10
+5.6101
+ 20
+4.37032
+ 11
+5.75
+ 21
+4.29904
+  0
+LINE
+  8
+0
+ 10
+5.75
+ 20
+4.29904
+ 11
+5.88168
+ 21
+4.21352
+  0
+LINE
+  8
+0
+ 10
+5.88168
+ 20
+4.21352
+ 11
+6.0037
+ 21
+4.11472
+  0
+LINE
+  8
+0
+ 10
+6.0037
+ 20
+4.11472
+ 11
+6.11472
+ 21
+4.0037
+  0
+LINE
+  8
+0
+ 10
+6.11472
+ 20
+4.0037
+ 11
+6.21352
+ 21
+3.88168
+  0
+LINE
+  8
+0
+ 10
+6.21352
+ 20
+3.88168
+ 11
+6.29904
+ 21
+3.75
+  0
+LINE
+  8
+0
+ 10
+6.29904
+ 20
+3.75
+ 11
+6.37032
+ 21
+3.6101
+  0
+LINE
+  8
+0
+ 10
+6.37032
+ 20
+3.6101
+ 11
+6.42658
+ 21
+3.46352
+  0
+LINE
+  8
+0
+ 10
+6.42658
+ 20
+3.46352
+ 11
+6.46722
+ 21
+3.31187
+  0
+LINE
+  8
+0
+ 10
+6.46722
+ 20
+3.31187
+ 11
+6.49178
+ 21
+3.15679
+  0
+LINE
+  8
+0
+ 10
+6.49178
+ 20
+3.15679
+ 11
+6.5
+ 21
+3
+  0
+LINE
+  8
+0
+ 10
+6.5
+ 20
+3
+ 11
+6.49178
+ 21
+2.84321
+  0
+LINE
+  8
+0
+ 10
+6.49178
+ 20
+2.84321
+ 11
+6.46722
+ 21
+2.68813
+  0
+LINE
+  8
+0
+ 10
+6.46722
+ 20
+2.68813
+ 11
+6.42658
+ 21
+2.53648
+  0
+LINE
+  8
+0
+ 10
+6.42658
+ 20
+2.53648
+ 11
+6.37032
+ 21
+2.3899
+  0
+LINE
+  8
+0
+ 10
+6.37032
+ 20
+2.3899
+ 11
+6.29904
+ 21
+2.25
+  0
+LINE
+  8
+0
+ 10
+6.29904
+ 20
+2.25
+ 11
+6.21352
+ 21
+2.11832
+  0
+LINE
+  8
+0
+ 10
+6.21352
+ 20
+2.11832
+ 11
+6.11472
+ 21
+1.9963
+  0
+LINE
+  8
+0
+ 10
+6.11472
+ 20
+1.9963
+ 11
+6.0037
+ 21
+1.88528
+  0
+LINE
+  8
+0
+ 10
+6.0037
+ 20
+1.88528
+ 11
+5.88168
+ 21
+1.78648
+  0
+LINE
+  8
+0
+ 10
+5.88168
+ 20
+1.78648
+ 11
+5.75
+ 21
+1.70096
+  0
+LINE
+  8
+0
+ 10
+5.75
+ 20
+1.70096
+ 11
+5.6101
+ 21
+1.62968
+  0
+LINE
+  8
+0
+ 10
+5.6101
+ 20
+1.62968
+ 11
+5.46352
+ 21
+1.57342
+  0
+LINE
+  8
+0
+ 10
+5.46352
+ 20
+1.57342
+ 11
+5.31187
+ 21
+1.53278
+  0
+LINE
+  8
+0
+ 10
+5.31187
+ 20
+1.53278
+ 11
+5.15679
+ 21
+1.50822
+  0
+LINE
+  8
+0
+ 10
+5.15679
+ 20
+1.50822
+ 11
+5
+ 21
+1.5
+  0
+LINE
+  8
+0
+ 10
+5
+ 20
+1.5
+ 11
+4.84321
+ 21
+1.50822
+  0
+LINE
+  8
+0
+ 10
+4.84321
+ 20
+1.50822
+ 11
+4.68813
+ 21
+1.53278
+  0
+LINE
+  8
+0
+ 10
+4.68813
+ 20
+1.53278
+ 11
+4.53648
+ 21
+1.57342
+  0
+LINE
+  8
+0
+ 10
+4.53648
+ 20
+1.57342
+ 11
+4.3899
+ 21
+1.62968
+  0
+LINE
+  8
+0
+ 10
+4.3899
+ 20
+1.62968
+ 11
+4.25
+ 21
+1.70096
+  0
+LINE
+  8
+0
+ 10
+4.25
+ 20
+1.70096
+ 11
+4.11832
+ 21
+1.78648
+  0
+LINE
+  8
+0
+ 10
+4.11832
+ 20
+1.78648
+ 11
+3.9963
+ 21
+1.88528
+  0
+LINE
+  8
+0
+ 10
+3.9963
+ 20
+1.88528
+ 11
+3.88528
+ 21
+1.9963
+  0
+LINE
+  8
+0
+ 10
+3.88528
+ 20
+1.9963
+ 11
+3.78648
+ 21
+2.11832
+  0
+LINE
+  8
+0
+ 10
+3.78648
+ 20
+2.11832
+ 11
+3.70096
+ 21
+2.25
+  0
+LINE
+  8
+0
+ 10
+3.70096
+ 20
+2.25
+ 11
+3.62968
+ 21
+2.3899
+  0
+LINE
+  8
+0
+ 10
+3.62968
+ 20
+2.3899
+ 11
+3.57342
+ 21
+2.53648
+  0
+LINE
+  8
+0
+ 10
+3.57342
+ 20
+2.53648
+ 11
+3.53278
+ 21
+2.68813
+  0
+LINE
+  8
+0
+ 10
+3.53278
+ 20
+2.68813
+ 11
+3.50822
+ 21
+2.84321
+  0
+LINE
+  8
+0
+ 10
+3.50822
+ 20
+2.84321
+ 11
+3.5
+ 21
+3
+  0
+LINE
+  8
+0
+ 10
+3.5
+ 20
+23
+ 11
+3.50822
+ 21
+23.1568
+  0
+LINE
+  8
+0
+ 10
+3.50822
+ 20
+23.1568
+ 11
+3.53278
+ 21
+23.3119
+  0
+LINE
+  8
+0
+ 10
+3.53278
+ 20
+23.3119
+ 11
+3.57342
+ 21
+23.4635
+  0
+LINE
+  8
+0
+ 10
+3.57342
+ 20
+23.4635
+ 11
+3.62968
+ 21
+23.6101
+  0
+LINE
+  8
+0
+ 10
+3.62968
+ 20
+23.6101
+ 11
+3.70096
+ 21
+23.75
+  0
+LINE
+  8
+0
+ 10
+3.70096
+ 20
+23.75
+ 11
+3.78648
+ 21
+23.8817
+  0
+LINE
+  8
+0
+ 10
+3.78648
+ 20
+23.8817
+ 11
+3.88528
+ 21
+24.0037
+  0
+LINE
+  8
+0
+ 10
+3.88528
+ 20
+24.0037
+ 11
+3.9963
+ 21
+24.1147
+  0
+LINE
+  8
+0
+ 10
+3.9963
+ 20
+24.1147
+ 11
+4.11832
+ 21
+24.2135
+  0
+LINE
+  8
+0
+ 10
+4.11832
+ 20
+24.2135
+ 11
+4.25
+ 21
+24.299
+  0
+LINE
+  8
+0
+ 10
+4.25
+ 20
+24.299
+ 11
+4.3899
+ 21
+24.3703
+  0
+LINE
+  8
+0
+ 10
+4.3899
+ 20
+24.3703
+ 11
+4.53648
+ 21
+24.4266
+  0
+LINE
+  8
+0
+ 10
+4.53648
+ 20
+24.4266
+ 11
+4.68813
+ 21
+24.4672
+  0
+LINE
+  8
+0
+ 10
+4.68813
+ 20
+24.4672
+ 11
+4.84321
+ 21
+24.4918
+  0
+LINE
+  8
+0
+ 10
+4.84321
+ 20
+24.4918
+ 11
+5
+ 21
+24.5
+  0
+LINE
+  8
+0
+ 10
+5
+ 20
+24.5
+ 11
+5.15679
+ 21
+24.4918
+  0
+LINE
+  8
+0
+ 10
+5.15679
+ 20
+24.4918
+ 11
+5.31187
+ 21
+24.4672
+  0
+LINE
+  8
+0
+ 10
+5.31187
+ 20
+24.4672
+ 11
+5.46352
+ 21
+24.4266
+  0
+LINE
+  8
+0
+ 10
+5.46352
+ 20
+24.4266
+ 11
+5.6101
+ 21
+24.3703
+  0
+LINE
+  8
+0
+ 10
+5.6101
+ 20
+24.3703
+ 11
+5.75
+ 21
+24.299
+  0
+LINE
+  8
+0
+ 10
+5.75
+ 20
+24.299
+ 11
+5.88168
+ 21
+24.2135
+  0
+LINE
+  8
+0
+ 10
+5.88168
+ 20
+24.2135
+ 11
+6.0037
+ 21
+24.1147
+  0
+LINE
+  8
+0
+ 10
+6.0037
+ 20
+24.1147
+ 11
+6.11472
+ 21
+24.0037
+  0
+LINE
+  8
+0
+ 10
+6.11472
+ 20
+24.0037
+ 11
+6.21352
+ 21
+23.8817
+  0
+LINE
+  8
+0
+ 10
+6.21352
+ 20
+23.8817
+ 11
+6.29904
+ 21
+23.75
+  0
+LINE
+  8
+0
+ 10
+6.29904
+ 20
+23.75
+ 11
+6.37032
+ 21
+23.6101
+  0
+LINE
+  8
+0
+ 10
+6.37032
+ 20
+23.6101
+ 11
+6.42658
+ 21
+23.4635
+  0
+LINE
+  8
+0
+ 10
+6.42658
+ 20
+23.4635
+ 11
+6.46722
+ 21
+23.3119
+  0
+LINE
+  8
+0
+ 10
+6.46722
+ 20
+23.3119
+ 11
+6.49178
+ 21
+23.1568
+  0
+LINE
+  8
+0
+ 10
+6.49178
+ 20
+23.1568
+ 11
+6.5
+ 21
+23
+  0
+LINE
+  8
+0
+ 10
+6.5
+ 20
+23
+ 11
+6.49178
+ 21
+22.8432
+  0
+LINE
+  8
+0
+ 10
+6.49178
+ 20
+22.8432
+ 11
+6.46722
+ 21
+22.6881
+  0
+LINE
+  8
+0
+ 10
+6.46722
+ 20
+22.6881
+ 11
+6.42658
+ 21
+22.5365
+  0
+LINE
+  8
+0
+ 10
+6.42658
+ 20
+22.5365
+ 11
+6.37032
+ 21
+22.3899
+  0
+LINE
+  8
+0
+ 10
+6.37032
+ 20
+22.3899
+ 11
+6.29904
+ 21
+22.25
+  0
+LINE
+  8
+0
+ 10
+6.29904
+ 20
+22.25
+ 11
+6.21352
+ 21
+22.1183
+  0
+LINE
+  8
+0
+ 10
+6.21352
+ 20
+22.1183
+ 11
+6.11472
+ 21
+21.9963
+  0
+LINE
+  8
+0
+ 10
+6.11472
+ 20
+21.9963
+ 11
+6.0037
+ 21
+21.8853
+  0
+LINE
+  8
+0
+ 10
+6.0037
+ 20
+21.8853
+ 11
+5.88168
+ 21
+21.7865
+  0
+LINE
+  8
+0
+ 10
+5.88168
+ 20
+21.7865
+ 11
+5.75
+ 21
+21.701
+  0
+LINE
+  8
+0
+ 10
+5.75
+ 20
+21.701
+ 11
+5.6101
+ 21
+21.6297
+  0
+LINE
+  8
+0
+ 10
+5.6101
+ 20
+21.6297
+ 11
+5.46352
+ 21
+21.5734
+  0
+LINE
+  8
+0
+ 10
+5.46352
+ 20
+21.5734
+ 11
+5.31187
+ 21
+21.5328
+  0
+LINE
+  8
+0
+ 10
+5.31187
+ 20
+21.5328
+ 11
+5.15679
+ 21
+21.5082
+  0
+LINE
+  8
+0
+ 10
+5.15679
+ 20
+21.5082
+ 11
+5
+ 21
+21.5
+  0
+LINE
+  8
+0
+ 10
+5
+ 20
+21.5
+ 11
+4.84321
+ 21
+21.5082
+  0
+LINE
+  8
+0
+ 10
+4.84321
+ 20
+21.5082
+ 11
+4.68813
+ 21
+21.5328
+  0
+LINE
+  8
+0
+ 10
+4.68813
+ 20
+21.5328
+ 11
+4.53648
+ 21
+21.5734
+  0
+LINE
+  8
+0
+ 10
+4.53648
+ 20
+21.5734
+ 11
+4.3899
+ 21
+21.6297
+  0
+LINE
+  8
+0
+ 10
+4.3899
+ 20
+21.6297
+ 11
+4.25
+ 21
+21.701
+  0
+LINE
+  8
+0
+ 10
+4.25
+ 20
+21.701
+ 11
+4.11832
+ 21
+21.7865
+  0
+LINE
+  8
+0
+ 10
+4.11832
+ 20
+21.7865
+ 11
+3.9963
+ 21
+21.8853
+  0
+LINE
+  8
+0
+ 10
+3.9963
+ 20
+21.8853
+ 11
+3.88528
+ 21
+21.9963
+  0
+LINE
+  8
+0
+ 10
+3.88528
+ 20
+21.9963
+ 11
+3.78648
+ 21
+22.1183
+  0
+LINE
+  8
+0
+ 10
+3.78648
+ 20
+22.1183
+ 11
+3.70096
+ 21
+22.25
+  0
+LINE
+  8
+0
+ 10
+3.70096
+ 20
+22.25
+ 11
+3.62968
+ 21
+22.3899
+  0
+LINE
+  8
+0
+ 10
+3.62968
+ 20
+22.3899
+ 11
+3.57342
+ 21
+22.5365
+  0
+LINE
+  8
+0
+ 10
+3.57342
+ 20
+22.5365
+ 11
+3.53278
+ 21
+22.6881
+  0
+LINE
+  8
+0
+ 10
+3.53278
+ 20
+22.6881
+ 11
+3.50822
+ 21
+22.8432
+  0
+LINE
+  8
+0
+ 10
+3.50822
+ 20
+22.8432
+ 11
+3.5
+ 21
+23
+  0
+LINE
+  8
+0
+ 10
+3.5
+ 20
+72
+ 11
+3.50822
+ 21
+72.1568
+  0
+LINE
+  8
+0
+ 10
+3.50822
+ 20
+72.1568
+ 11
+3.53278
+ 21
+72.3119
+  0
+LINE
+  8
+0
+ 10
+3.53278
+ 20
+72.3119
+ 11
+3.57342
+ 21
+72.4635
+  0
+LINE
+  8
+0
+ 10
+3.57342
+ 20
+72.4635
+ 11
+3.62968
+ 21
+72.6101
+  0
+LINE
+  8
+0
+ 10
+3.62968
+ 20
+72.6101
+ 11
+3.70096
+ 21
+72.75
+  0
+LINE
+  8
+0
+ 10
+3.70096
+ 20
+72.75
+ 11
+3.78648
+ 21
+72.8817
+  0
+LINE
+  8
+0
+ 10
+3.78648
+ 20
+72.8817
+ 11
+3.88528
+ 21
+73.0037
+  0
+LINE
+  8
+0
+ 10
+3.88528
+ 20
+73.0037
+ 11
+3.9963
+ 21
+73.1147
+  0
+LINE
+  8
+0
+ 10
+3.9963
+ 20
+73.1147
+ 11
+4.11832
+ 21
+73.2135
+  0
+LINE
+  8
+0
+ 10
+4.11832
+ 20
+73.2135
+ 11
+4.25
+ 21
+73.299
+  0
+LINE
+  8
+0
+ 10
+4.25
+ 20
+73.299
+ 11
+4.3899
+ 21
+73.3703
+  0
+LINE
+  8
+0
+ 10
+4.3899
+ 20
+73.3703
+ 11
+4.53648
+ 21
+73.4266
+  0
+LINE
+  8
+0
+ 10
+4.53648
+ 20
+73.4266
+ 11
+4.68813
+ 21
+73.4672
+  0
+LINE
+  8
+0
+ 10
+4.68813
+ 20
+73.4672
+ 11
+4.84321
+ 21
+73.4918
+  0
+LINE
+  8
+0
+ 10
+4.84321
+ 20
+73.4918
+ 11
+5
+ 21
+73.5
+  0
+LINE
+  8
+0
+ 10
+5
+ 20
+73.5
+ 11
+5.15679
+ 21
+73.4918
+  0
+LINE
+  8
+0
+ 10
+5.15679
+ 20
+73.4918
+ 11
+5.31187
+ 21
+73.4672
+  0
+LINE
+  8
+0
+ 10
+5.31187
+ 20
+73.4672
+ 11
+5.46352
+ 21
+73.4266
+  0
+LINE
+  8
+0
+ 10
+5.46352
+ 20
+73.4266
+ 11
+5.6101
+ 21
+73.3703
+  0
+LINE
+  8
+0
+ 10
+5.6101
+ 20
+73.3703
+ 11
+5.75
+ 21
+73.299
+  0
+LINE
+  8
+0
+ 10
+5.75
+ 20
+73.299
+ 11
+5.88168
+ 21
+73.2135
+  0
+LINE
+  8
+0
+ 10
+5.88168
+ 20
+73.2135
+ 11
+6.0037
+ 21
+73.1147
+  0
+LINE
+  8
+0
+ 10
+6.0037
+ 20
+73.1147
+ 11
+6.11472
+ 21
+73.0037
+  0
+LINE
+  8
+0
+ 10
+6.11472
+ 20
+73.0037
+ 11
+6.21352
+ 21
+72.8817
+  0
+LINE
+  8
+0
+ 10
+6.21352
+ 20
+72.8817
+ 11
+6.29904
+ 21
+72.75
+  0
+LINE
+  8
+0
+ 10
+6.29904
+ 20
+72.75
+ 11
+6.37032
+ 21
+72.6101
+  0
+LINE
+  8
+0
+ 10
+6.37032
+ 20
+72.6101
+ 11
+6.42658
+ 21
+72.4635
+  0
+LINE
+  8
+0
+ 10
+6.42658
+ 20
+72.4635
+ 11
+6.46722
+ 21
+72.3119
+  0
+LINE
+  8
+0
+ 10
+6.46722
+ 20
+72.3119
+ 11
+6.49178
+ 21
+72.1568
+  0
+LINE
+  8
+0
+ 10
+6.49178
+ 20
+72.1568
+ 11
+6.5
+ 21
+72
+  0
+LINE
+  8
+0
+ 10
+6.5
+ 20
+72
+ 11
+6.49178
+ 21
+71.8432
+  0
+LINE
+  8
+0
+ 10
+6.49178
+ 20
+71.8432
+ 11
+6.46722
+ 21
+71.6881
+  0
+LINE
+  8
+0
+ 10
+6.46722
+ 20
+71.6881
+ 11
+6.42658
+ 21
+71.5365
+  0
+LINE
+  8
+0
+ 10
+6.42658
+ 20
+71.5365
+ 11
+6.37032
+ 21
+71.3899
+  0
+LINE
+  8
+0
+ 10
+6.37032
+ 20
+71.3899
+ 11
+6.29904
+ 21
+71.25
+  0
+LINE
+  8
+0
+ 10
+6.29904
+ 20
+71.25
+ 11
+6.21352
+ 21
+71.1183
+  0
+LINE
+  8
+0
+ 10
+6.21352
+ 20
+71.1183
+ 11
+6.11472
+ 21
+70.9963
+  0
+LINE
+  8
+0
+ 10
+6.11472
+ 20
+70.9963
+ 11
+6.0037
+ 21
+70.8853
+  0
+LINE
+  8
+0
+ 10
+6.0037
+ 20
+70.8853
+ 11
+5.88168
+ 21
+70.7865
+  0
+LINE
+  8
+0
+ 10
+5.88168
+ 20
+70.7865
+ 11
+5.75
+ 21
+70.701
+  0
+LINE
+  8
+0
+ 10
+5.75
+ 20
+70.701
+ 11
+5.6101
+ 21
+70.6297
+  0
+LINE
+  8
+0
+ 10
+5.6101
+ 20
+70.6297
+ 11
+5.46352
+ 21
+70.5734
+  0
+LINE
+  8
+0
+ 10
+5.46352
+ 20
+70.5734
+ 11
+5.31187
+ 21
+70.5328
+  0
+LINE
+  8
+0
+ 10
+5.31187
+ 20
+70.5328
+ 11
+5.15679
+ 21
+70.5082
+  0
+LINE
+  8
+0
+ 10
+5.15679
+ 20
+70.5082
+ 11
+5
+ 21
+70.5
+  0
+LINE
+  8
+0
+ 10
+5
+ 20
+70.5
+ 11
+4.84321
+ 21
+70.5082
+  0
+LINE
+  8
+0
+ 10
+4.84321
+ 20
+70.5082
+ 11
+4.68813
+ 21
+70.5328
+  0
+LINE
+  8
+0
+ 10
+4.68813
+ 20
+70.5328
+ 11
+4.53648
+ 21
+70.5734
+  0
+LINE
+  8
+0
+ 10
+4.53648
+ 20
+70.5734
+ 11
+4.3899
+ 21
+70.6297
+  0
+LINE
+  8
+0
+ 10
+4.3899
+ 20
+70.6297
+ 11
+4.25
+ 21
+70.701
+  0
+LINE
+  8
+0
+ 10
+4.25
+ 20
+70.701
+ 11
+4.11832
+ 21
+70.7865
+  0
+LINE
+  8
+0
+ 10
+4.11832
+ 20
+70.7865
+ 11
+3.9963
+ 21
+70.8853
+  0
+LINE
+  8
+0
+ 10
+3.9963
+ 20
+70.8853
+ 11
+3.88528
+ 21
+70.9963
+  0
+LINE
+  8
+0
+ 10
+3.88528
+ 20
+70.9963
+ 11
+3.78648
+ 21
+71.1183
+  0
+LINE
+  8
+0
+ 10
+3.78648
+ 20
+71.1183
+ 11
+3.70096
+ 21
+71.25
+  0
+LINE
+  8
+0
+ 10
+3.70096
+ 20
+71.25
+ 11
+3.62968
+ 21
+71.3899
+  0
+LINE
+  8
+0
+ 10
+3.62968
+ 20
+71.3899
+ 11
+3.57342
+ 21
+71.5365
+  0
+LINE
+  8
+0
+ 10
+3.57342
+ 20
+71.5365
+ 11
+3.53278
+ 21
+71.6881
+  0
+LINE
+  8
+0
+ 10
+3.53278
+ 20
+71.6881
+ 11
+3.50822
+ 21
+71.8432
+  0
+LINE
+  8
+0
+ 10
+3.50822
+ 20
+71.8432
+ 11
+3.5
+ 21
+72
+  0
+LINE
+  8
+0
+ 10
+15
+ 20
+6
+ 11
+15
+ 21
+19
+  0
+LINE
+  8
+0
+ 10
+15
+ 20
+19
+ 11
+85
+ 21
+19
+  0
+LINE
+  8
+0
+ 10
+85
+ 20
+19
+ 11
+85
+ 21
+6
+  0
+LINE
+  8
+0
+ 10
+85
+ 20
+6
+ 11
+15
+ 21
+6
+  0
+LINE
+  8
+0
+ 10
+61.5
+ 20
+23
+ 11
+61.5082
+ 21
+23.1568
+  0
+LINE
+  8
+0
+ 10
+61.5082
+ 20
+23.1568
+ 11
+61.5328
+ 21
+23.3119
+  0
+LINE
+  8
+0
+ 10
+61.5328
+ 20
+23.3119
+ 11
+61.5734
+ 21
+23.4635
+  0
+LINE
+  8
+0
+ 10
+61.5734
+ 20
+23.4635
+ 11
+61.6297
+ 21
+23.6101
+  0
+LINE
+  8
+0
+ 10
+61.6297
+ 20
+23.6101
+ 11
+61.701
+ 21
+23.75
+  0
+LINE
+  8
+0
+ 10
+61.701
+ 20
+23.75
+ 11
+61.7865
+ 21
+23.8817
+  0
+LINE
+  8
+0
+ 10
+61.7865
+ 20
+23.8817
+ 11
+61.8853
+ 21
+24.0037
+  0
+LINE
+  8
+0
+ 10
+61.8853
+ 20
+24.0037
+ 11
+61.9963
+ 21
+24.1147
+  0
+LINE
+  8
+0
+ 10
+61.9963
+ 20
+24.1147
+ 11
+62.1183
+ 21
+24.2135
+  0
+LINE
+  8
+0
+ 10
+62.1183
+ 20
+24.2135
+ 11
+62.25
+ 21
+24.299
+  0
+LINE
+  8
+0
+ 10
+62.25
+ 20
+24.299
+ 11
+62.3899
+ 21
+24.3703
+  0
+LINE
+  8
+0
+ 10
+62.3899
+ 20
+24.3703
+ 11
+62.5365
+ 21
+24.4266
+  0
+LINE
+  8
+0
+ 10
+62.5365
+ 20
+24.4266
+ 11
+62.6881
+ 21
+24.4672
+  0
+LINE
+  8
+0
+ 10
+62.6881
+ 20
+24.4672
+ 11
+62.8432
+ 21
+24.4918
+  0
+LINE
+  8
+0
+ 10
+62.8432
+ 20
+24.4918
+ 11
+63
+ 21
+24.5
+  0
+LINE
+  8
+0
+ 10
+63
+ 20
+24.5
+ 11
+63.1568
+ 21
+24.4918
+  0
+LINE
+  8
+0
+ 10
+63.1568
+ 20
+24.4918
+ 11
+63.3119
+ 21
+24.4672
+  0
+LINE
+  8
+0
+ 10
+63.3119
+ 20
+24.4672
+ 11
+63.4635
+ 21
+24.4266
+  0
+LINE
+  8
+0
+ 10
+63.4635
+ 20
+24.4266
+ 11
+63.6101
+ 21
+24.3703
+  0
+LINE
+  8
+0
+ 10
+63.6101
+ 20
+24.3703
+ 11
+63.75
+ 21
+24.299
+  0
+LINE
+  8
+0
+ 10
+63.75
+ 20
+24.299
+ 11
+63.8817
+ 21
+24.2135
+  0
+LINE
+  8
+0
+ 10
+63.8817
+ 20
+24.2135
+ 11
+64.0037
+ 21
+24.1147
+  0
+LINE
+  8
+0
+ 10
+64.0037
+ 20
+24.1147
+ 11
+64.1147
+ 21
+24.0037
+  0
+LINE
+  8
+0
+ 10
+64.1147
+ 20
+24.0037
+ 11
+64.2135
+ 21
+23.8817
+  0
+LINE
+  8
+0
+ 10
+64.2135
+ 20
+23.8817
+ 11
+64.299
+ 21
+23.75
+  0
+LINE
+  8
+0
+ 10
+64.299
+ 20
+23.75
+ 11
+64.3703
+ 21
+23.6101
+  0
+LINE
+  8
+0
+ 10
+64.3703
+ 20
+23.6101
+ 11
+64.4266
+ 21
+23.4635
+  0
+LINE
+  8
+0
+ 10
+64.4266
+ 20
+23.4635
+ 11
+64.4672
+ 21
+23.3119
+  0
+LINE
+  8
+0
+ 10
+64.4672
+ 20
+23.3119
+ 11
+64.4918
+ 21
+23.1568
+  0
+LINE
+  8
+0
+ 10
+64.4918
+ 20
+23.1568
+ 11
+64.5
+ 21
+23
+  0
+LINE
+  8
+0
+ 10
+64.5
+ 20
+23
+ 11
+64.4918
+ 21
+22.8432
+  0
+LINE
+  8
+0
+ 10
+64.4918
+ 20
+22.8432
+ 11
+64.4672
+ 21
+22.6881
+  0
+LINE
+  8
+0
+ 10
+64.4672
+ 20
+22.6881
+ 11
+64.4266
+ 21
+22.5365
+  0
+LINE
+  8
+0
+ 10
+64.4266
+ 20
+22.5365
+ 11
+64.3703
+ 21
+22.3899
+  0
+LINE
+  8
+0
+ 10
+64.3703
+ 20
+22.3899
+ 11
+64.299
+ 21
+22.25
+  0
+LINE
+  8
+0
+ 10
+64.299
+ 20
+22.25
+ 11
+64.2135
+ 21
+22.1183
+  0
+LINE
+  8
+0
+ 10
+64.2135
+ 20
+22.1183
+ 11
+64.1147
+ 21
+21.9963
+  0
+LINE
+  8
+0
+ 10
+64.1147
+ 20
+21.9963
+ 11
+64.0037
+ 21
+21.8853
+  0
+LINE
+  8
+0
+ 10
+64.0037
+ 20
+21.8853
+ 11
+63.8817
+ 21
+21.7865
+  0
+LINE
+  8
+0
+ 10
+63.8817
+ 20
+21.7865
+ 11
+63.75
+ 21
+21.701
+  0
+LINE
+  8
+0
+ 10
+63.75
+ 20
+21.701
+ 11
+63.6101
+ 21
+21.6297
+  0
+LINE
+  8
+0
+ 10
+63.6101
+ 20
+21.6297
+ 11
+63.4635
+ 21
+21.5734
+  0
+LINE
+  8
+0
+ 10
+63.4635
+ 20
+21.5734
+ 11
+63.3119
+ 21
+21.5328
+  0
+LINE
+  8
+0
+ 10
+63.3119
+ 20
+21.5328
+ 11
+63.1568
+ 21
+21.5082
+  0
+LINE
+  8
+0
+ 10
+63.1568
+ 20
+21.5082
+ 11
+63
+ 21
+21.5
+  0
+LINE
+  8
+0
+ 10
+63
+ 20
+21.5
+ 11
+62.8432
+ 21
+21.5082
+  0
+LINE
+  8
+0
+ 10
+62.8432
+ 20
+21.5082
+ 11
+62.6881
+ 21
+21.5328
+  0
+LINE
+  8
+0
+ 10
+62.6881
+ 20
+21.5328
+ 11
+62.5365
+ 21
+21.5734
+  0
+LINE
+  8
+0
+ 10
+62.5365
+ 20
+21.5734
+ 11
+62.3899
+ 21
+21.6297
+  0
+LINE
+  8
+0
+ 10
+62.3899
+ 20
+21.6297
+ 11
+62.25
+ 21
+21.701
+  0
+LINE
+  8
+0
+ 10
+62.25
+ 20
+21.701
+ 11
+62.1183
+ 21
+21.7865
+  0
+LINE
+  8
+0
+ 10
+62.1183
+ 20
+21.7865
+ 11
+61.9963
+ 21
+21.8853
+  0
+LINE
+  8
+0
+ 10
+61.9963
+ 20
+21.8853
+ 11
+61.8853
+ 21
+21.9963
+  0
+LINE
+  8
+0
+ 10
+61.8853
+ 20
+21.9963
+ 11
+61.7865
+ 21
+22.1183
+  0
+LINE
+  8
+0
+ 10
+61.7865
+ 20
+22.1183
+ 11
+61.701
+ 21
+22.25
+  0
+LINE
+  8
+0
+ 10
+61.701
+ 20
+22.25
+ 11
+61.6297
+ 21
+22.3899
+  0
+LINE
+  8
+0
+ 10
+61.6297
+ 20
+22.3899
+ 11
+61.5734
+ 21
+22.5365
+  0
+LINE
+  8
+0
+ 10
+61.5734
+ 20
+22.5365
+ 11
+61.5328
+ 21
+22.6881
+  0
+LINE
+  8
+0
+ 10
+61.5328
+ 20
+22.6881
+ 11
+61.5082
+ 21
+22.8432
+  0
+LINE
+  8
+0
+ 10
+61.5082
+ 20
+22.8432
+ 11
+61.5
+ 21
+23
+  0
+LINE
+  8
+0
+ 10
+61.5
+ 20
+72
+ 11
+61.5082
+ 21
+72.1568
+  0
+LINE
+  8
+0
+ 10
+61.5082
+ 20
+72.1568
+ 11
+61.5328
+ 21
+72.3119
+  0
+LINE
+  8
+0
+ 10
+61.5328
+ 20
+72.3119
+ 11
+61.5734
+ 21
+72.4635
+  0
+LINE
+  8
+0
+ 10
+61.5734
+ 20
+72.4635
+ 11
+61.6297
+ 21
+72.6101
+  0
+LINE
+  8
+0
+ 10
+61.6297
+ 20
+72.6101
+ 11
+61.701
+ 21
+72.75
+  0
+LINE
+  8
+0
+ 10
+61.701
+ 20
+72.75
+ 11
+61.7865
+ 21
+72.8817
+  0
+LINE
+  8
+0
+ 10
+61.7865
+ 20
+72.8817
+ 11
+61.8853
+ 21
+73.0037
+  0
+LINE
+  8
+0
+ 10
+61.8853
+ 20
+73.0037
+ 11
+61.9963
+ 21
+73.1147
+  0
+LINE
+  8
+0
+ 10
+61.9963
+ 20
+73.1147
+ 11
+62.1183
+ 21
+73.2135
+  0
+LINE
+  8
+0
+ 10
+62.1183
+ 20
+73.2135
+ 11
+62.25
+ 21
+73.299
+  0
+LINE
+  8
+0
+ 10
+62.25
+ 20
+73.299
+ 11
+62.3899
+ 21
+73.3703
+  0
+LINE
+  8
+0
+ 10
+62.3899
+ 20
+73.3703
+ 11
+62.5365
+ 21
+73.4266
+  0
+LINE
+  8
+0
+ 10
+62.5365
+ 20
+73.4266
+ 11
+62.6881
+ 21
+73.4672
+  0
+LINE
+  8
+0
+ 10
+62.6881
+ 20
+73.4672
+ 11
+62.8432
+ 21
+73.4918
+  0
+LINE
+  8
+0
+ 10
+62.8432
+ 20
+73.4918
+ 11
+63
+ 21
+73.5
+  0
+LINE
+  8
+0
+ 10
+63
+ 20
+73.5
+ 11
+63.1568
+ 21
+73.4918
+  0
+LINE
+  8
+0
+ 10
+63.1568
+ 20
+73.4918
+ 11
+63.3119
+ 21
+73.4672
+  0
+LINE
+  8
+0
+ 10
+63.3119
+ 20
+73.4672
+ 11
+63.4635
+ 21
+73.4266
+  0
+LINE
+  8
+0
+ 10
+63.4635
+ 20
+73.4266
+ 11
+63.6101
+ 21
+73.3703
+  0
+LINE
+  8
+0
+ 10
+63.6101
+ 20
+73.3703
+ 11
+63.75
+ 21
+73.299
+  0
+LINE
+  8
+0
+ 10
+63.75
+ 20
+73.299
+ 11
+63.8817
+ 21
+73.2135
+  0
+LINE
+  8
+0
+ 10
+63.8817
+ 20
+73.2135
+ 11
+64.0037
+ 21
+73.1147
+  0
+LINE
+  8
+0
+ 10
+64.0037
+ 20
+73.1147
+ 11
+64.1147
+ 21
+73.0037
+  0
+LINE
+  8
+0
+ 10
+64.1147
+ 20
+73.0037
+ 11
+64.2135
+ 21
+72.8817
+  0
+LINE
+  8
+0
+ 10
+64.2135
+ 20
+72.8817
+ 11
+64.299
+ 21
+72.75
+  0
+LINE
+  8
+0
+ 10
+64.299
+ 20
+72.75
+ 11
+64.3703
+ 21
+72.6101
+  0
+LINE
+  8
+0
+ 10
+64.3703
+ 20
+72.6101
+ 11
+64.4266
+ 21
+72.4635
+  0
+LINE
+  8
+0
+ 10
+64.4266
+ 20
+72.4635
+ 11
+64.4672
+ 21
+72.3119
+  0
+LINE
+  8
+0
+ 10
+64.4672
+ 20
+72.3119
+ 11
+64.4918
+ 21
+72.1568
+  0
+LINE
+  8
+0
+ 10
+64.4918
+ 20
+72.1568
+ 11
+64.5
+ 21
+72
+  0
+LINE
+  8
+0
+ 10
+64.5
+ 20
+72
+ 11
+64.4918
+ 21
+71.8432
+  0
+LINE
+  8
+0
+ 10
+64.4918
+ 20
+71.8432
+ 11
+64.4672
+ 21
+71.6881
+  0
+LINE
+  8
+0
+ 10
+64.4672
+ 20
+71.6881
+ 11
+64.4266
+ 21
+71.5365
+  0
+LINE
+  8
+0
+ 10
+64.4266
+ 20
+71.5365
+ 11
+64.3703
+ 21
+71.3899
+  0
+LINE
+  8
+0
+ 10
+64.3703
+ 20
+71.3899
+ 11
+64.299
+ 21
+71.25
+  0
+LINE
+  8
+0
+ 10
+64.299
+ 20
+71.25
+ 11
+64.2135
+ 21
+71.1183
+  0
+LINE
+  8
+0
+ 10
+64.2135
+ 20
+71.1183
+ 11
+64.1147
+ 21
+70.9963
+  0
+LINE
+  8
+0
+ 10
+64.1147
+ 20
+70.9963
+ 11
+64.0037
+ 21
+70.8853
+  0
+LINE
+  8
+0
+ 10
+64.0037
+ 20
+70.8853
+ 11
+63.8817
+ 21
+70.7865
+  0
+LINE
+  8
+0
+ 10
+63.8817
+ 20
+70.7865
+ 11
+63.75
+ 21
+70.701
+  0
+LINE
+  8
+0
+ 10
+63.75
+ 20
+70.701
+ 11
+63.6101
+ 21
+70.6297
+  0
+LINE
+  8
+0
+ 10
+63.6101
+ 20
+70.6297
+ 11
+63.4635
+ 21
+70.5734
+  0
+LINE
+  8
+0
+ 10
+63.4635
+ 20
+70.5734
+ 11
+63.3119
+ 21
+70.5328
+  0
+LINE
+  8
+0
+ 10
+63.3119
+ 20
+70.5328
+ 11
+63.1568
+ 21
+70.5082
+  0
+LINE
+  8
+0
+ 10
+63.1568
+ 20
+70.5082
+ 11
+63
+ 21
+70.5
+  0
+LINE
+  8
+0
+ 10
+63
+ 20
+70.5
+ 11
+62.8432
+ 21
+70.5082
+  0
+LINE
+  8
+0
+ 10
+62.8432
+ 20
+70.5082
+ 11
+62.6881
+ 21
+70.5328
+  0
+LINE
+  8
+0
+ 10
+62.6881
+ 20
+70.5328
+ 11
+62.5365
+ 21
+70.5734
+  0
+LINE
+  8
+0
+ 10
+62.5365
+ 20
+70.5734
+ 11
+62.3899
+ 21
+70.6297
+  0
+LINE
+  8
+0
+ 10
+62.3899
+ 20
+70.6297
+ 11
+62.25
+ 21
+70.701
+  0
+LINE
+  8
+0
+ 10
+62.25
+ 20
+70.701
+ 11
+62.1183
+ 21
+70.7865
+  0
+LINE
+  8
+0
+ 10
+62.1183
+ 20
+70.7865
+ 11
+61.9963
+ 21
+70.8853
+  0
+LINE
+  8
+0
+ 10
+61.9963
+ 20
+70.8853
+ 11
+61.8853
+ 21
+70.9963
+  0
+LINE
+  8
+0
+ 10
+61.8853
+ 20
+70.9963
+ 11
+61.7865
+ 21
+71.1183
+  0
+LINE
+  8
+0
+ 10
+61.7865
+ 20
+71.1183
+ 11
+61.701
+ 21
+71.25
+  0
+LINE
+  8
+0
+ 10
+61.701
+ 20
+71.25
+ 11
+61.6297
+ 21
+71.3899
+  0
+LINE
+  8
+0
+ 10
+61.6297
+ 20
+71.3899
+ 11
+61.5734
+ 21
+71.5365
+  0
+LINE
+  8
+0
+ 10
+61.5734
+ 20
+71.5365
+ 11
+61.5328
+ 21
+71.6881
+  0
+LINE
+  8
+0
+ 10
+61.5328
+ 20
+71.6881
+ 11
+61.5082
+ 21
+71.8432
+  0
+LINE
+  8
+0
+ 10
+61.5082
+ 20
+71.8432
+ 11
+61.5
+ 21
+72
+  0
+LINE
+  8
+0
+ 10
+92.5
+ 20
+3
+ 11
+92.5082
+ 21
+3.15679
+  0
+LINE
+  8
+0
+ 10
+92.5082
+ 20
+3.15679
+ 11
+92.5328
+ 21
+3.31187
+  0
+LINE
+  8
+0
+ 10
+92.5328
+ 20
+3.31187
+ 11
+92.5734
+ 21
+3.46352
+  0
+LINE
+  8
+0
+ 10
+92.5734
+ 20
+3.46352
+ 11
+92.6297
+ 21
+3.6101
+  0
+LINE
+  8
+0
+ 10
+92.6297
+ 20
+3.6101
+ 11
+92.701
+ 21
+3.75
+  0
+LINE
+  8
+0
+ 10
+92.701
+ 20
+3.75
+ 11
+92.7865
+ 21
+3.88168
+  0
+LINE
+  8
+0
+ 10
+92.7865
+ 20
+3.88168
+ 11
+92.8853
+ 21
+4.0037
+  0
+LINE
+  8
+0
+ 10
+92.8853
+ 20
+4.0037
+ 11
+92.9963
+ 21
+4.11472
+  0
+LINE
+  8
+0
+ 10
+92.9963
+ 20
+4.11472
+ 11
+93.1183
+ 21
+4.21352
+  0
+LINE
+  8
+0
+ 10
+93.1183
+ 20
+4.21352
+ 11
+93.25
+ 21
+4.29904
+  0
+LINE
+  8
+0
+ 10
+93.25
+ 20
+4.29904
+ 11
+93.3899
+ 21
+4.37032
+  0
+LINE
+  8
+0
+ 10
+93.3899
+ 20
+4.37032
+ 11
+93.5365
+ 21
+4.42658
+  0
+LINE
+  8
+0
+ 10
+93.5365
+ 20
+4.42658
+ 11
+93.6881
+ 21
+4.46722
+  0
+LINE
+  8
+0
+ 10
+93.6881
+ 20
+4.46722
+ 11
+93.8432
+ 21
+4.49178
+  0
+LINE
+  8
+0
+ 10
+93.8432
+ 20
+4.49178
+ 11
+94
+ 21
+4.5
+  0
+LINE
+  8
+0
+ 10
+94
+ 20
+4.5
+ 11
+94.1568
+ 21
+4.49178
+  0
+LINE
+  8
+0
+ 10
+94.1568
+ 20
+4.49178
+ 11
+94.3119
+ 21
+4.46722
+  0
+LINE
+  8
+0
+ 10
+94.3119
+ 20
+4.46722
+ 11
+94.4635
+ 21
+4.42658
+  0
+LINE
+  8
+0
+ 10
+94.4635
+ 20
+4.42658
+ 11
+94.6101
+ 21
+4.37032
+  0
+LINE
+  8
+0
+ 10
+94.6101
+ 20
+4.37032
+ 11
+94.75
+ 21
+4.29904
+  0
+LINE
+  8
+0
+ 10
+94.75
+ 20
+4.29904
+ 11
+94.8817
+ 21
+4.21352
+  0
+LINE
+  8
+0
+ 10
+94.8817
+ 20
+4.21352
+ 11
+95.0037
+ 21
+4.11472
+  0
+LINE
+  8
+0
+ 10
+95.0037
+ 20
+4.11472
+ 11
+95.1147
+ 21
+4.0037
+  0
+LINE
+  8
+0
+ 10
+95.1147
+ 20
+4.0037
+ 11
+95.2135
+ 21
+3.88168
+  0
+LINE
+  8
+0
+ 10
+95.2135
+ 20
+3.88168
+ 11
+95.299
+ 21
+3.75
+  0
+LINE
+  8
+0
+ 10
+95.299
+ 20
+3.75
+ 11
+95.3703
+ 21
+3.6101
+  0
+LINE
+  8
+0
+ 10
+95.3703
+ 20
+3.6101
+ 11
+95.4266
+ 21
+3.46352
+  0
+LINE
+  8
+0
+ 10
+95.4266
+ 20
+3.46352
+ 11
+95.4672
+ 21
+3.31187
+  0
+LINE
+  8
+0
+ 10
+95.4672
+ 20
+3.31187
+ 11
+95.4918
+ 21
+3.15679
+  0
+LINE
+  8
+0
+ 10
+95.4918
+ 20
+3.15679
+ 11
+95.5
+ 21
+3
+  0
+LINE
+  8
+0
+ 10
+95.5
+ 20
+3
+ 11
+95.4918
+ 21
+2.84321
+  0
+LINE
+  8
+0
+ 10
+95.4918
+ 20
+2.84321
+ 11
+95.4672
+ 21
+2.68813
+  0
+LINE
+  8
+0
+ 10
+95.4672
+ 20
+2.68813
+ 11
+95.4266
+ 21
+2.53648
+  0
+LINE
+  8
+0
+ 10
+95.4266
+ 20
+2.53648
+ 11
+95.3703
+ 21
+2.3899
+  0
+LINE
+  8
+0
+ 10
+95.3703
+ 20
+2.3899
+ 11
+95.299
+ 21
+2.25
+  0
+LINE
+  8
+0
+ 10
+95.299
+ 20
+2.25
+ 11
+95.2135
+ 21
+2.11832
+  0
+LINE
+  8
+0
+ 10
+95.2135
+ 20
+2.11832
+ 11
+95.1147
+ 21
+1.9963
+  0
+LINE
+  8
+0
+ 10
+95.1147
+ 20
+1.9963
+ 11
+95.0037
+ 21
+1.88528
+  0
+LINE
+  8
+0
+ 10
+95.0037
+ 20
+1.88528
+ 11
+94.8817
+ 21
+1.78648
+  0
+LINE
+  8
+0
+ 10
+94.8817
+ 20
+1.78648
+ 11
+94.75
+ 21
+1.70096
+  0
+LINE
+  8
+0
+ 10
+94.75
+ 20
+1.70096
+ 11
+94.6101
+ 21
+1.62968
+  0
+LINE
+  8
+0
+ 10
+94.6101
+ 20
+1.62968
+ 11
+94.4635
+ 21
+1.57342
+  0
+LINE
+  8
+0
+ 10
+94.4635
+ 20
+1.57342
+ 11
+94.3119
+ 21
+1.53278
+  0
+LINE
+  8
+0
+ 10
+94.3119
+ 20
+1.53278
+ 11
+94.1568
+ 21
+1.50822
+  0
+LINE
+  8
+0
+ 10
+94.1568
+ 20
+1.50822
+ 11
+94
+ 21
+1.5
+  0
+LINE
+  8
+0
+ 10
+94
+ 20
+1.5
+ 11
+93.8432
+ 21
+1.50822
+  0
+LINE
+  8
+0
+ 10
+93.8432
+ 20
+1.50822
+ 11
+93.6881
+ 21
+1.53278
+  0
+LINE
+  8
+0
+ 10
+93.6881
+ 20
+1.53278
+ 11
+93.5365
+ 21
+1.57342
+  0
+LINE
+  8
+0
+ 10
+93.5365
+ 20
+1.57342
+ 11
+93.3899
+ 21
+1.62968
+  0
+LINE
+  8
+0
+ 10
+93.3899
+ 20
+1.62968
+ 11
+93.25
+ 21
+1.70096
+  0
+LINE
+  8
+0
+ 10
+93.25
+ 20
+1.70096
+ 11
+93.1183
+ 21
+1.78648
+  0
+LINE
+  8
+0
+ 10
+93.1183
+ 20
+1.78648
+ 11
+92.9963
+ 21
+1.88528
+  0
+LINE
+  8
+0
+ 10
+92.9963
+ 20
+1.88528
+ 11
+92.8853
+ 21
+1.9963
+  0
+LINE
+  8
+0
+ 10
+92.8853
+ 20
+1.9963
+ 11
+92.7865
+ 21
+2.11832
+  0
+LINE
+  8
+0
+ 10
+92.7865
+ 20
+2.11832
+ 11
+92.701
+ 21
+2.25
+  0
+LINE
+  8
+0
+ 10
+92.701
+ 20
+2.25
+ 11
+92.6297
+ 21
+2.3899
+  0
+LINE
+  8
+0
+ 10
+92.6297
+ 20
+2.3899
+ 11
+92.5734
+ 21
+2.53648
+  0
+LINE
+  8
+0
+ 10
+92.5734
+ 20
+2.53648
+ 11
+92.5328
+ 21
+2.68813
+  0
+LINE
+  8
+0
+ 10
+92.5328
+ 20
+2.68813
+ 11
+92.5082
+ 21
+2.84321
+  0
+LINE
+  8
+0
+ 10
+92.5082
+ 20
+2.84321
+ 11
+92.5
+ 21
+3
+  0
+ENDSEC
+  0
+SECTION
+  2
+OBJECTS
+  0
+DICTIONARY
+  0
+ENDSEC
+  0
+EOF
diff --git a/raspi_mount.scad b/raspi_mount.scad
new file mode 100644
index 0000000..e4f3a91
--- /dev/null
+++ b/raspi_mount.scad
@@ -0,0 +1,24 @@
+$fn=60;
+
+
+projection(cut=true)
+{
+translate([5,3,0]) difference()
+{
+translate([-5,-3,0]) cube([100,75,3]);
+
+
+translate([0,20,0])
+{
+cylinder(10,1.5,1.5,true);
+translate([58,0,0]) cylinder(10,1.5,1.5,true);
+translate([58,49,0]) cylinder(10,1.5,1.5,true);
+translate([0,49,0]) cylinder(10,1.5,1.5,true);
+}
+
+translate([0,0,0]) cylinder(10,1.5,1.5,true);
+translate([89,0,0]) cylinder(10,1.5,1.5,true);
+
+translate([10,3,-5])  cube([70,13,10]);
+}
+}
-- 
GitLab