remy преди 3 години
родител
ревизия
a372037c56

BIN
3D/BoitierGrandV1/pompeDoseuse-Body.stl


BIN
3D/BoitierGrandV1/pompeDoseuse.FCStd


BIN
3D/BoitierGrandV1/pompeDoseuse.FCStd1


BIN
3D/BoitierPetit/Boitier péristatique petit.FCStd


BIN
3D/BoitierPetit/Boitier péristatique petit.FCStd1


BIN
3D/BoitierPetit/testperi.FCStd


BIN
Document/Conso.ods


+ 424 - 610
Soft/MCUnode/PeristatiqueV2/PeristatiqueV2.ino

@@ -1,610 +1,424 @@
-#include <BlynkSimpleEsp8266.h>
-#include <TimeLib.h>
-#include <WidgetRTC.h>
-
-//#define AQUAGRA
-//#define AQUAZOA
-
-#ifdef AQUAGRA
-  char auth[] = "_Fw7V6o4bPAovQ1idbetFcith6LmMnyh"; //220L
-#elif AQUAZOA
-  char auth[] = "oObIhJsLplCUAhCBfwyvpBF_n_N8oqJv"; //70L
-#endif
-
-char ssid[] = "Livebox-7C2C";
-char pass[] = "566C61F61F9C925C9F3D7D79E6";
-
-WidgetRTC rtc;
-BlynkTimer timer;
-WidgetTerminal terminal(V60);
-
-//************************************************************************
-//                Variable Global perso
-//************************************************************************
-#ifdef AQUAGRA
-  #define RESERVE 1200
-  #define LITRE 220
-  #define FACTEURML 635 //Temps d'allumage de la pompe en ms pour distribuer 1ml
-  #define RESERVEMIN 100
-  #define STARTCa 16
-  #define STARTKh 30
-  #define STARTMg 7
-#elif AQUAZOA
-  #define RESERVE 450
-  #define LITRE 70
-  #define FACTEURML 200//todo //Temps d'allumage de la pompe en ms pour distribuer 1ml
-  #define RESERVEMIN 50
-  #define STARTCa 16
-  #define STARTKh 30
-  #define STARTMg 7
-#endif
-
-#define POMPE0 0
-#define POMPE1 1
-#define POMPE2 2
-#define POMPE3 3
-
-//nombre de ml a distribuer pour remonter de +1 (mg ou kh) par litre d'eau
-#define FACTEUR0 0.0057 //FACTEUR CA
-#define FACTEUR1 0.36 //0.36ml/L = +1KH
-#define FACTEUR3 0.02 //FACTEUR MG
-
-const int PINPOMPE0 = 16;
-const int PINPOMPE1 = 5;
-const int PINPOMPE2 = 4;
-const int PINPOMPE3 = 0;
-
-float Mesure0, Mesure1, Mesure2, Mesure3;
-float ML0, ML1, ML2, ML3 ;
-float Cible0, Cible1, Cible2, Cible3 ;
-bool Auto0, Auto1, Auto2, Auto3 ;
-float Reserve0, Reserve1, Reserve2, Reserve3 ;
-float MLForce0, MLForce1, MLForce2, MLForce3 ;
-int dist;
-  
-//************************************************************************
-//                Fonction Seul
-//************************************************************************
-void Ft_Timer() {
-  int Hmin = hour() * 60 + minute();  
-  switch(Hmin){
-  case 0: //Calcium
-    dist=0;
-        AutoDistribue0(ML0);
-    break;
-  case 360: //Calcium
-    dist=1;
-        AutoDistribue0(ML0);
-    break;
-  case 720: //Calcium
-    dist=2;
-        AutoDistribue0(ML0);
-    break;
-  case 1080: //Calcium
-    dist=3;
-    AutoDistribue0(ML0);
-    break;
-  case 90: //KH
-  dist=0;
-    AutoDistribue1(ML1);
-    break;
-  case 450: //KH
-  dist=1;
-    AutoDistribue1(ML1);
-    break;
-  case 810: //KH
-  dist=2;
-    AutoDistribue1(ML1);
-    break;
-  case 1170: //KH
-  dist=3;
-  AutoDistribue1(ML1);
-    break;
-  case 180: //mineral
-  dist=0;
-      AutoDistribue2(ML2);
-    break;
-  case 540: //mineral
-  dist=1;
-      AutoDistribue2(ML2);
-    break;
-  case 900: //mineral
-  dist=2;
-      AutoDistribue2(ML2);
-    break;
-  case 1260: //mineral
-  dist=3;
-    AutoDistribue2(ML2);
-    break;
-  case 270://mg
-  dist=0;
-  AutoDistribue3(ML3);
-    break;
-  case 630://mg
-  dist=1;
-  AutoDistribue3(ML3);
-    break;
-  case 990://mg
-  dist=2;
-  AutoDistribue3(ML3);
-    break;
-  case 1350://mg
-  dist=3;
-    AutoDistribue3(ML3);
-    break;
-  }
-}
-
-BLYNK_CONNECTED() {
-  char message[30];
-  sprintf(message, "\nnew Connection\n");
-  terminal.print(message);
-  terminal.flush();
-
-  rtc.begin();
-
-  Blynk.syncAll();
-}
-
-BLYNK_WRITE(V60){
-  if (String("Ca") == param.asStr())
-    Blynk.virtualWrite(V3, STARTCa);
-  if (String("Kh") == param.asStr())
-    Blynk.virtualWrite(V13, STARTKh);
-  if (String("Mi") == param.asStr())
-    Blynk.virtualWrite(V23, (ML0+ML1)/2);
-  if (String("Mg") == param.asStr())
-    Blynk.virtualWrite(V33, STARTMg); 
-}
-
-
-void setup(){
-
-  //Pin Setup
-  pinMode(PINPOMPE0, OUTPUT);
-  pinMode(PINPOMPE1, OUTPUT);
-  pinMode(PINPOMPE2, OUTPUT);
-  pinMode(PINPOMPE3, OUTPUT);
-  
-  digitalWrite(PINPOMPE0, HIGH);
-  digitalWrite(PINPOMPE1, HIGH);
-  digitalWrite(PINPOMPE2, HIGH);
-  digitalWrite(PINPOMPE3, HIGH);
-
-  Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 18), 8081);
-  
-  setSyncInterval(10 * 60); // Sync interval in seconds (10 minutes)
-
-  timer.setInterval(1000L*60, Ft_Timer);
-}
-
-void loop(){
-  Blynk.run();
-  timer.run();
-}
-//************************************************************************
-//                Fonction Calcium
-//************************************************************************
-
-void AutoDistribue0(float ml){
-  
-  if (Auto0) {
-    if(((ML0/4)*FACTEURML)>(1000*4)){
-    }
-    else if((((ML0/2)*FACTEURML)>(1000*2))&(dist==0|dist==2)){
-      Active0(ML0/2);
-      }
-    else if (dist==0){
-      Active0(ML0);
-    }
-  }
-  else{
-    Blynk.notify("Calcium est Arreter");
-  }
-}
-
-void Active0(float ml) {
-  digitalWrite(PINPOMPE0, LOW);
-  delay(FACTEURML * ml);
-  digitalWrite(PINPOMPE0, HIGH);
-  Reserve0=Reserve0-ml;
-  Blynk.virtualWrite(V4, Reserve0);
-  char message[30];
-  sprintf(message, "Distribution %.1fml de Calcium a %d:%d\n", ml,hour(),minute());
-  terminal.print(message);
-  terminal.flush();
-  if(Reserve0<RESERVEMIN)
-    Blynk.notify("Penser a remettre du Calcium");
-}
-
-//Mesure
-BLYNK_WRITE(V0) {
-  if(Mesure0==0){//Si nouvelle connection on recupere juste la valeur enregistrer sur le server
-    Mesure0 = param.asFloat();
-    return;
-  }
-  Mesure0 = param.asFloat();  
-  
-  ML0  = ML0 + (((ML0/Mesure0)* Cible0 - ML0)/4.0);
-  MLForce0 = (Cible0-Mesure0)*FACTEUR0*LITRE;
-  
-  if(MLForce0<0)
-    MLForce0=0;
-  
-  ML2 = (ML1+ML0)/2.0;
-  Blynk.virtualWrite(V23, ML2);
-  Blynk.virtualWrite(V3, ML0);
-  Blynk.virtualWrite(V7, MLForce0);
-}
-
-//Cible
-BLYNK_WRITE(V1) {
-  if(Cible0==0){//Si nouvelle connection on recupere juste la valeur enregistrer sur le server
-    Cible0 = param.asFloat();
-    return;
-  }
-  Cible0 = param.asFloat();
-  ML0 = ML0 +(((ML0/Mesure0)* Cible0- ML0)/4.0);
-  ML2 = (ML1+ML0)/2.0;
-  
-  Blynk.virtualWrite(V23, ML2);
-  Blynk.virtualWrite(V3, ML0);
-}
-
-//En route
-BLYNK_WRITE(V2) {
-  if ( param.asInt()){
-    Auto0 = true;
-  }
-  else{
-    Auto0 = false;
-  }
-}
-
-BLYNK_WRITE(V3){
-  ML0=param.asFloat();
-  Blynk.virtualWrite(V3, ML0);
-}
-
-BLYNK_WRITE(V4){
-  Reserve0=param.asFloat();
-  Blynk.virtualWrite(V4, Reserve0);
-}
-
-
-//RAZ Reserve
-BLYNK_WRITE(V5){
-  if(param.asInt()){
-    Reserve0=RESERVE;
-    Blynk.virtualWrite(V4, Reserve0);
-  }
-}
-
-//Forcé4
-BLYNK_WRITE(V6){
-  if(param.asInt()){
-    Active0(4.0);
-  }
-}
-
-//NB/Forcé
-BLYNK_WRITE(V7){
-  MLForce0=param.asFloat();
-}
-
-//Forcé
-BLYNK_WRITE(V8){
-  if ( param.asInt()){
-    Active0(MLForce0);
-  }
-}
-
-
-
-//************************************************************************
-//                Fonction KH
-//************************************************************************
-
-void AutoDistribue1(float ml){
-  if (Auto1) {
-    if(((ML1/4)*FACTEURML)>(1000*4)){
-    }
-    else if((((ML1/2)*FACTEURML)>(1000*2))&(dist==0|dist==2)){
-      Active1(ML1/2);
-      }
-    else if (dist==0){
-      Active1(ML1);
-    }
-  }
-  else{
-    Blynk.notify("KH est Arreter");
-  }
-}
-
-void Active1(float ml) {
-  digitalWrite(PINPOMPE1, LOW);
-  delay(FACTEURML * ml);
-  digitalWrite(PINPOMPE1, HIGH);
-  Reserve1=Reserve1-ml;
-  Blynk.virtualWrite(V14, Reserve1);
-  char message[30];
-  sprintf(message, "Distribution %.1fml de KH a %d:%d\n", ml,hour(),minute());
-  terminal.print(message);
-  terminal.flush();
-  if(Reserve1<RESERVEMIN)
-    Blynk.notify("Penser a remettre du KH");
-}
-
-//Mesure
-BLYNK_WRITE(V10) {
-    if(Mesure1==0){//Si nouvelle connection on recupere juste la valeur enregistrer sur le server
-    Mesure1 = param.asFloat();
-    return;
-  }
-  Mesure1 = param.asFloat();
-
-  ML1  = ML1 + (((ML1/Mesure1)* Cible1 - ML1)/4.0);
-  MLForce1 = (Cible1-Mesure1)*FACTEUR1*LITRE;
-  if(MLForce1<0)
-    MLForce1=0;
-  
-  ML2 = (ML1+ML0)/2.0;
-  Blynk.virtualWrite(V23, ML2);
-  Blynk.virtualWrite(V13, ML1);
-  Blynk.virtualWrite(V17, MLForce1);
-}
-
-//Cible
-BLYNK_WRITE(V11) {
-      if(Cible1==0){//Si nouvelle connection on recupere juste la valeur enregistrer sur le server
-    Cible1 = param.asFloat();
-    return;
-  }
-  Cible1 = param.asFloat();
-  ML1 = ML1 +(((ML1/Mesure1) * Cible1- ML1)/4.0);
-  
-  ML2 = (ML0+ML1)/2.0;
-  
-  Blynk.virtualWrite(V23, ML2);
-  Blynk.virtualWrite(V13, ML1);
-}
-
-//En route
-BLYNK_WRITE(V12) {
-  if ( param.asInt()){
-    Auto1 = true;
-  }
-  else{
-    Auto1 = false;
-  }
-}
-
-BLYNK_WRITE(V13){
-  ML1=param.asFloat();
-  Blynk.virtualWrite(V13, ML1);
-}
-
-BLYNK_WRITE(V14){
-   Reserve1=param.asFloat();
-  Blynk.virtualWrite(V14, Reserve1);
-}
-
-
-//RAZ Reserve
-BLYNK_WRITE(V15){
-  if(param.asInt()){
-    Reserve1=RESERVE;
-    Blynk.virtualWrite(V14, Reserve1);
-  }
-}
-
-//Forcé4
-BLYNK_WRITE(V16){
-  if(param.asInt()){
-    Active1(4.0);
-  }
-}
-
-//NB/Forcé
-BLYNK_WRITE(V17){
-  MLForce1=param.asFloat();
-}
-
-//Forcé
-BLYNK_WRITE(V18){
-  if ( param.asInt()){
-    Active1(MLForce1);
-  }
-}
-
-//************************************************************************
-//                Fonction Mineral
-//************************************************************************
-
-void AutoDistribue2(float ml){
-  if (Auto2) {
-    if(((ML2/4)*FACTEURML)>(1000*4)){
-    }
-    else if((((ML2/2)*FACTEURML)>(1000*2))&(dist==0|dist==2)){
-      Active2(ML2/2);
-      }
-    else if (dist==0){
-      Active2(ML2);
-    }
-  }
-  else{
-    Blynk.notify("Mineral est Arreter");
-  }
-}
-
-void Active2(float ml) {
-  digitalWrite(PINPOMPE2, LOW);
-  delay(FACTEURML * ml);
-  digitalWrite(PINPOMPE2, HIGH);
-  Reserve2=Reserve2-ml;
-  Blynk.virtualWrite(V24, Reserve2);
-  char message[30];
-  sprintf(message, "Distribution %.1fml de Mineral a %d:%d\n", ml,hour(),minute());
-  terminal.print(message);
-  terminal.flush();
-  if(Reserve2<RESERVEMIN)
-    Blynk.notify("Penser a remettre du Mineral");
-}
-
-//En route
-BLYNK_WRITE(V22) {
-  if ( param.asInt()){
-    Auto2 = true;
-  }
-  else{
-    Auto2 = false;
-  }
-}
-
-BLYNK_WRITE(V23){
-  ML2=param.asFloat();
-  Blynk.virtualWrite(V23, ML2);
-}
-
-BLYNK_WRITE(V24){
-  Reserve2=param.asFloat();
-  Blynk.virtualWrite(V24, Reserve2);
-}
-
-
-//RAZ Reserve
-BLYNK_WRITE(V25){
-  if(param.asInt()){
-    Reserve2=RESERVE;
-    Blynk.virtualWrite(V24, Reserve2);
-  }
-}
-
-//Forcé4
-BLYNK_WRITE(V26){
-  if(param.asInt()){
-    Active2(4.0);
-  }
-}
-
-//NB/Forcé
-BLYNK_WRITE(V27){
-  MLForce2=param.asFloat();
-}
-
-//Forcé
-BLYNK_WRITE(V28){
-  if ( param.asInt()){
-    Active2(MLForce2);
-  }
-}
-
-//************************************************************************
-//                Fonction Magnesium
-//************************************************************************
-
-void AutoDistribue3(float ml){
-  if (Auto3) {
-    if(((ML3/4)*FACTEURML)>(1000*4)){
-    }
-    else if((((ML3/2)*FACTEURML)>(1000*2))&(dist==0|dist==2)){
-      Active3(ML3/2);
-      }
-    else if (dist==0){
-      Active3(ML3);
-    }
-  }
-  else{
-    Blynk.notify("Magnesium est Arreter");
-  }
-}
-
-void Active3(float ml) {
-  digitalWrite(PINPOMPE3, LOW);
-  delay(FACTEURML * ml);
-  digitalWrite(PINPOMPE3, HIGH);
-  Reserve3=Reserve3-ml;
-  Blynk.virtualWrite(V34, Reserve3);
-  char message[30];
-  sprintf(message, "Distribution %.1fml de Magnesium  a %d:%d\n", ml,hour(),minute());
-  terminal.print(message);
-  terminal.flush();
-  if(Reserve3<RESERVEMIN)
-    Blynk.notify("Penser a remettre du Magnesium");
-}
-
-//Mesure
-BLYNK_WRITE(V30) {
-        if(Mesure3==0){//Si nouvelle connection on recupere juste la valeur enregistrer sur le server
-    Mesure3 = param.asFloat();
-    return;
-  }
-  Mesure3 = param.asFloat();
-  ML3  = ML3 + (((ML3/Mesure3)* Cible3 - ML3)/4.0);
-  MLForce3 = (Cible3-Mesure3)*FACTEUR3*LITRE;
-  if(MLForce3<0)
-    MLForce3=0;
-
-  Blynk.virtualWrite(V33, ML3);
-  Blynk.virtualWrite(V37, MLForce3);
-}
-
-//Cible
-BLYNK_WRITE(V31) {
-  if(Cible3==0){//Si nouvelle connection on recupere juste la valeur enregistrer sur le server
-    Cible3 = param.asFloat();
-    return;
-  }
-  Cible3 = param.asFloat();
-  ML3 = ML3 +(((ML3/Mesure3)* Cible3- ML3)/4.0);
-  Blynk.virtualWrite(V23, ML2);
-  Blynk.virtualWrite(V33, ML3);
-}
-
-//En route
-BLYNK_WRITE(V32) {
-  if ( param.asInt()){
-    Auto3 = true;
-  }
-  else{
-    Auto3 = false;
-  }
-}
-
-BLYNK_WRITE(V33){
-  ML3=param.asFloat();
-  Blynk.virtualWrite(V33, ML3);
-}
-
-BLYNK_WRITE(V34){
-  Reserve3=param.asFloat();
-  Blynk.virtualWrite(V34, Reserve3);
-}
-
-
-//RAZ Reserve
-BLYNK_WRITE(V35){
-  if(param.asInt()){
-    Reserve3=RESERVE;
-    Blynk.virtualWrite(V34, Reserve3);
-  }
-}
-
-//Forcé4
-BLYNK_WRITE(V36){
-  if(param.asInt()){
-    Active3(4.0);
-  }
-}
-
-//NB/Forcé
-BLYNK_WRITE(V37){
-  MLForce3=param.asFloat();
-}
-
-//Forcé
-BLYNK_WRITE(V38){
-  if ( param.asInt()){
-    Active3(MLForce3);
-  }
-}
+ E704.936
+G1 X203.128 Y152.398 E704.96501
+G1 X203.99 Y152.51 E704.99392
+G1 X204.857 Y152.405 E705.02297
+G1 X205.672 Y152.086 E705.05208
+G1 X206.383 Y151.578 E705.08114
+G1 X206.944 Y150.91 E705.11015
+G1 X207.325 Y150.124 E705.13921
+G1 X207.502 Y149.252 E705.1688
+G1 X207.431 Y148.246 E705.20234
+G1 X207.128 Y147.403 E705.23214
+G1 X206.634 Y146.684 E705.26115
+G1 X205.984 Y146.104 E705.29013
+G1 X205.205 Y145.703 E705.31927
+G1 X204.552 Y145.553 E705.34155
+G1 X204.36 Y145.509 E705.3481
+G1 X204.229 Y145.511 E705.35246
+G1 X203.776 Y145.52 E705.36753
+G1 X204.224 Y145.278 E705.37344
+G1 X204.249 Y145.267
+G1 X204.428 Y145.185 E705.37895
+G1 X204.708 Y145.057 E705.38919
+G1 X205.413 Y144.801 E705.41414
+G1 X205.893 Y144.662 E705.43076
+G1 X206.643 Y144.511 E705.4562
+G1 X207.146 Y144.442 E705.47309
+G1 X207.693 Y144.41 E705.49131
+G1 X208.394 Y144.388 E705.51464
+G0 F7200 X200.679 Y147.17
+G0 X198.6 Y153.628
+G0 X21.39 Y153.628
+G0 X20.611 Y153.395
+G1 F3600 X20.612 Y153.396 E705.51469
+G1 X20.616 Y153.6 E705.52147
+G1 X20.412 Y153.6 E705.52584
+G1 X20.411 Y153.6 E705.52587
+G1 X11.4 Y153.6 E705.82558
+G1 X11.4 Y144.583 E706.12549
+G1 X11.4 Y144.582 E706.12552
+G1 X11.4 Y144.374 E706.13244
+G1 X11.608 Y144.383 E706.13686
+G1 X12.727 Y144.435 E706.17412
+G1 X13.264 Y144.496 E706.1921
+G1 X13.979 Y144.635 E706.21632
+G1 X14.506 Y144.775 E706.23446
+G1 X15.173 Y145.011 E706.25799
+G1 X15.557 Y145.176 E706.27189
+G1 X15.622 Y145.203 E706.27423
+G1 X15.687 Y145.231 E706.27659
+G1 X16.216 Y145.512 E706.29651
+G1 X15.693 Y145.522 E706.30242
+G1 X15.485 Y145.526 E706.30843
+G1 X15.417 Y145.545 E706.31064
+G1 X14.643 Y145.761 E706.33737
+G1 X13.886 Y146.196 E706.36641
+G1 X13.26 Y146.805 E706.39545
+G1 X12.804 Y147.551 E706.42453
+G1 X12.545 Y148.382 E706.45348
+G1 X12.498 Y149.254 E706.48253
+G1 X12.671 Y150.112 E706.51164
+G1 X13.047 Y150.898 E706.54062
+G1 X13.606 Y151.569 E706.56967
+G1 X14.316 Y152.08 E706.59876
+G1 X15.128 Y152.398 E706.62777
+G1 X15.99 Y152.51 E706.65668
+G1 X16.857 Y152.405 E706.68573
+G1 X17.672 Y152.086 E706.71483
+G1 X18.383 Y151.578 E706.7439
+G1 X18.944 Y150.91 E706.77291
+G1 X19.325 Y150.124 E706.80196
+G1 X19.449 Y149.516 E706.8226
+G1 X19.502 Y149.252 E706.83156
+G1 X19.467 Y148.751 E706.84826
+G1 X19.684 Y149.152 E706.85187
+G1 X19.726 Y149.229 E706.85411
+G1 X19.837 Y149.475 E706.86122
+G1 X19.941 Y149.703 E706.86955
+G1 X20.2 Y150.415 E706.89475
+G1 X20.334 Y150.883 E706.91094
+G1 X20.496 Y151.677 E706.93789
+G1 X20.558 Y152.139 E706.9534
+G1 X20.59 Y152.686 E706.97162
+G1 X20.611 Y153.395 E706.99521
+G0 F7200 X17.83 Y145.679
+G0 X11.372 Y143.6
+G0 X11.372 Y76.391
+G0 X11.606 Y75.612
+G1 F3600 X11.605 Y75.613 E706.99526
+G1 X11.4 Y75.618 E707.00208
+G1 X11.4 Y75.413 E707.00646
+G1 X11.4 Y75.412 E707.0065
+G1 X11.4 Y66.4 E707.30624
+G1 X20.417 Y66.4 E707.60614
+G1 X20.418 Y66.4 E707.60618
+G1 X20.626 Y66.4 E707.61309
+G1 X20.617 Y66.608 E707.61752
+G1 X20.565 Y67.736 E707.65508
+G1 X20.507 Y68.252 E707.67235
+G1 X20.364 Y68.984 E707.69716
+G1 X20.229 Y69.492 E707.71464
+G1 X20.055 Y70.003 E707.73259
+G1 X19.845 Y70.502 E707.7506
+G1 X19.769 Y70.684 E707.75716
+G1 X19.498 Y71.201 E707.77657
+G1 X19.464 Y70.706 E707.78238
+G1 X19.45 Y70.509 E707.78819
+G1 X19.431 Y70.246 E707.79696
+G1 X19.128 Y69.403 E707.82676
+G1 X18.634 Y68.684 E707.85577
+G1 X17.984 Y68.104 E707.88474
+G1 X17.205 Y67.703 E707.91389
+G1 X16.36 Y67.509 E707.94272
+G1 X15.485 Y67.526 E707.97183
+G1 X14.643 Y67.761 E708.00091
+G1 X13.886 Y68.196 E708.02994
+G1 X13.26 Y68.805 E708.05899
+G1 X12.804 Y69.551 E708.08807
+G1 X12.545 Y70.382 E708.11702
+G1 X12.498 Y71.254 E708.14607
+G1 X12.671 Y72.112 E708.17518
+G1 X13.047 Y72.898 E708.20416
+G1 X13.606 Y73.569 E708.23321
+G1 X14.316 Y74.08 E708.2623
+G1 X15.128 Y74.398 E708.29131
+G1 X15.525 Y74.45 E708.30462
+G1 X15.806 Y74.486 E708.31405
+G1 X15.99 Y74.51 E708.32022
+G1 X16.22 Y74.482 E708.32792
+G1 X16.031 Y74.584 E708.32852
+G1 X15.776 Y74.722 E708.33364
+G1 X15.518 Y74.839 E708.34122
+G1 X15.292 Y74.943 E708.34949
+G1 X14.587 Y75.199 E708.37444
+G1 X14.107 Y75.338 E708.39106
+G1 X13.357 Y75.489 E708.4165
+G1 X12.854 Y75.558 E708.43339
+G1 X12.307 Y75.59 E708.45161
+G1 X11.606 Y75.612 E708.47494
+G0 F7200 X17.307 Y73.413
+G0 X18.301 Y72.493
+G0 X19.036 Y70.329
+G1 F3600 X18.769 Y69.587 E708.50117
+G1 X18.332 Y68.95 E708.52686
+G1 X17.756 Y68.436 E708.55254
+G1 X17.067 Y68.082 E708.5783
+G1 X16.318 Y67.91 E708.60386
+G1 X15.544 Y67.925 E708.62961
+G1 X14.799 Y68.133 E708.65534
+G1 X14.129 Y68.518 E708.68104
+G1 X13.575 Y69.057 E708.70675
+G1 X13.171 Y69.717 E708.73249
+G1 X12.942 Y70.453 E708.75812
+G1 X12.9 Y71.225 E708.78384
+G1 X13.053 Y71.984 E708.80959
+G1 X13.386 Y72.68 E708.83525
+G1 X13.881 Y73.274 E708.86097
+G1 X14.509 Y73.726 E708.8867
+G1 X15.228 Y74.008 E708.91239
+G1 X15.992 Y74.107 E708.93801
+G1 X16.759 Y74.014 E708.96371
+G1 X17.234 Y73.828 E708.98068
+G1 X17.48 Y73.732 E708.98946
+G1 X17.879 Y73.446 E709.00579
+G1 X18.109 Y73.282 E709.01518
+G1 X18.254 Y73.11 E709.02267
+G1 X18.606 Y72.691 E709.04087
+G1 X18.611 Y72.68 E709.04127
+G1 X18.825 Y72.238 E709.0576
+G1 X18.943 Y71.995 E709.06659
+G1 X19.099 Y71.226 E709.09269
+G1 X19.036 Y70.329 E709.12259
+G0 F7200 X17.834 Y74.318
+G0 X11.372 Y76.391
+G0 X11.372 Y143.6
+G0 X17.579 Y146.203
+G0 X19.036 Y148.329
+G1 F3600 X18.85 Y147.814 E709.14081
+G1 X18.769 Y147.587 E709.14882
+G1 X18.687 Y147.467 E709.15366
+G1 X18.387 Y147.03 E709.17129
+G1 X18.332 Y146.95 E709.17452
+G1 X17.863 Y146.531 E709.19543
+G1 X17.756 Y146.436 E709.20019
+G1 X17.44 Y146.274 E709.212
+G1 X17.182 Y146.142 E709.22164
+G1 X17.067 Y146.082 E709.22596
+G1 X16.318 Y145.91 E709.25152
+G1 X15.544 Y145.925 E709.27726
+G1 X14.799 Y146.133 E709.30299
+G1 X14.129 Y146.518 E709.32869
+G1 X13.575 Y147.057 E709.3544
+G1 X13.171 Y147.717 E709.38014
+G1 X12.942 Y148.453 E709.40577
+G1 X12.9 Y149.225 E709.43149
+G1 X13.053 Y149.984 E709.45724
+G1 X13.386 Y150.68 E709.4829
+G1 X13.881 Y151.274 E709.50862
+G1 X14.509 Y151.726 E709.53436
+G1 X15.228 Y152.008 E709.56004
+G1 X15.992 Y152.107 E709.58567
+G1 X16.759 Y152.014 E709.61136
+G1 X17.48 Y151.732 E709.63711
+G1 X18.109 Y151.282 E709.66284
+G1 X18.606 Y150.691 E709.68852
+G1 X18.943 Y149.995 E709.71424
+G1 X19.099 Y149.226 E709.74034
+G1 X19.036 Y148.329 E709.77025
+G0 F7200 X21.023 Y153.795
+G1 F3600 X21.024 Y153.796 E709.77029
+G1 X21.028 Y154 E709.77708
+G1 X20.824 Y154 E709.78145
+G1 X20.823 Y154 E709.78148
+G1 X11 Y154 E710.10819
+G1 X11 Y144.164 E710.43534
+G1 X11 Y144.163 E710.43537
+G1 X11 Y143.955 E710.44229
+G1 X11.208 Y143.964 E710.44672
+G1 X12.761 Y144.036 E710.49843
+G1 X13.322 Y144.099 E710.5172
+G1 X14.072 Y144.245 E710.54262
+G1 X14.616 Y144.39 E710.56134
+G1 X15.331 Y144.643 E710.58657
+G1 X15.849 Y144.865 E710.60531
+G1 X16.52 Y145.221 E710.63058
+G1 X17.003 Y145.519 E710.64945
+G1 X17.367 Y145.787 E710.66449
+G1 X17.601 Y145.958 E710.67357
+G1 X17.927 Y146.233 E710.68484
+G1 X18.041 Y146.33 E710.68819
+G1 X18.497 Y146.783 E710.70168
+G1 X18.599 Y146.884 E710.70491
+G1 X18.951 Y147.285 E710.71774
+G1 X19.03 Y147.39 E710.72123
+G1 X19.175 Y147.583 E710.72853
+G1 X19.412 Y147.899 E710.74167
+G1 X19.719 Y148.376 E710.76054
+G1 X20.078 Y149.038 E710.78559
+G1 X20.314 Y149.558 E710.80458
+G1 X20.578 Y150.285 E710.8303
+G1 X20.724 Y150.792 E710.84785
+G1 X20.888 Y151.597 E710.87518
+G1 X20.956 Y152.103 E710.89216
+G1 X20.99 Y152.675 E710.91122
+G1 X21.023 Y153.795 E710.94848
+G0 F7200 X198.6 Y153.628
+G0 X201.502 Y147.867
+G0 X202.348 Y146.809
+G0 X203.598 Y146.285
+G0 X204.942 Y146.424
+G0 X205.839 Y146.993
+G0 X207.036 Y148.329
+G1 F3600 X206.769 Y147.587 E710.97471
+G1 X206.332 Y146.95 E711.0004
+G1 X205.756 Y146.436 E711.02608
+G1 X205.067 Y146.082 E711.05184
+G1 X204.318 Y145.91 E711.0774
+G1 X203.544 Y145.925 E711.10315
+G1 X202.862 Y146.116 E711.12671
+G1 X202.799 Y146.133 E711.12888
+G1 X202.444 Y146.337 E711.1425
+G1 X202.129 Y146.518 E711.15458
+G1 X202.073 Y146.572 E711.15717
+G1 X201.575 Y147.057 E711.18029
+G1 X201.552 Y147.094 E711.18174
+G1 X201.255 Y147.58 E711.20068
+G1 X201.171 Y147.717 E711.20603
+G1 X201.136 Y147.83 E711.20996
+G1 X200.942 Y148.453 E711.23166
+G1 X200.9 Y149.225 E711.25738
+G1 X201.053 Y149.984 E711.28313
+G1 X201.386 Y150.68 E711.30879
+G1 X201.881 Y151.274 E711.33451
+G1 X202.509 Y151.726 E711.36025
+G1 X203.228 Y152.008 E711.38593
+G1 X203.992 Y152.107 E711.41156
+G1 X204.759 Y152.014 E711.43725
+G1 X205.48 Y151.732 E711.463
+G1 X206.109 Y151.282 E711.48873
+G1 X206.606 Y150.691 E711.51441
+G1 X206.943 Y149.995 E711.54013
+G1 X207.099 Y149.226 E711.56623
+G1 X207.036 Y148.329 E711.59614
+G0 F7200 X208.794 Y143.976
+G1 F3600 X208.795 Y143.975 E711.59618
+G1 X209 Y143.97 E711.603
+G1 X209 Y144.175 E711.60738
+G1 X209 Y144.176 E711.60742
+G1 X209 Y154 E711.93417
+G1 X199.164 Y154 E712.26131
+G1 X199.163 Y154 E712.26135
+G1 X198.955 Y154 E712.26826
+G1 X198.964 Y153.792 E712.27269
+G1 X199.035 Y152.245 E712.3242
+G1 X199.1 Y151.673 E712.34335
+G1 X199.243 Y150.938 E712.36825
+G1 X199.39 Y150.384 E712.38731
+G1 X199.643 Y149.669 E712.41254
+G1 X199.865 Y149.151 E712.43128
+G1 X200.219 Y148.484 E712.4564
+G1 X200.519 Y147.997 E712.47542
+G1 X200.81 Y147.6 E712.4918
+G1 X200.88 Y147.505 E712.49553
+G1 X200.958 Y147.399 E712.49934
+G1 X201.33 Y146.959 E712.5141
+G1 X201.402 Y146.886 E712.51661
+G1 X201.895 Y146.39 E712.53108
+G1 X201.963 Y146.33 E712.53306
+G1 X202.28 Y146.052 E712.54347
+G1 X202.573 Y145.833 E712.55408
+G1 X202.625 Y145.794 E712.55617
+G1 X202.899 Y145.588 E712.56757
+G1 X203.372 Y145.284 E712.58627
+G1 X204.046 Y144.919 E712.61177
+G1 X204.558 Y144.686 E712.63048
+G1 X205.282 Y144.423 E712.6561
+G1 X205.8 Y144.273 E712.67403
+G1 X206.573 Y144.117 E712.70026
+G1 X207.108 Y144.044 E712.71822
+G1 X207.681 Y144.01 E712.73731
+G1 X208.794 Y143.976 E712.77435
+G0 F7200 X208.628 Y76.4
+G0 X207.036 Y70.329
+G1 F3600 X206.769 Y69.587 E712.80058
+G1 X206.332 Y68.95 E712.82627
+G1 X205.756 Y68.436 E712.85195
+G1 X205.067 Y68.082 E712.87771
+G1 X204.318 Y67.91 E712.90327
+G1 X203.544 Y67.925 E712.92902
+G1 X202.799 Y68.133 E712.95475
+G1 X202.129 Y68.518 E712.98045
+G1 X201.575 Y69.057 E713.00616
+G1 X201.171 Y69.717 E713.03189
+G1 X200.942 Y70.453 E713.05753
+G1 X200.9 Y71.225 E713.08324
+G1 X201.053 Y71.984 E713.109
+G1 X201.159 Y72.206 E713.11718
+G1 X201.336 Y72.577 E713.13085
+G1 X201.386 Y72.68 E713.13466
+G1 X201.606 Y72.944 E713.14609
+G1 X201.881 Y73.274 E713.16038
+G1 X202.12 Y73.446 E713.17017
+G1 X202.509 Y73.726 E713.18611
+G1 X202.747 Y73.819 E713.19461
+G1 X203.228 Y74.008 E713.2118
+G1 X203.992 Y74.107 E713.23742
+G1 X204.759 Y74.014 E713.26312
+G1 X205.48 Y73.732 E713.28887
+G1 X206.109 Y73.282 E713.31459
+G1 X206.606 Y72.691 E713.34028
+G1 X206.943 Y71.995 E713.366
+G1 X207.099 Y71.226 E713.39209
+G1 X207.036 Y70.329 E713.422
+G0 F7200 X206.06 Y69.19
+G0 X205.206 Y68.561
+G0 X198.98 Y66
+G1 F3600 X21.045 Y66
+G1 X21.036 Y66.208 E713.42893
+G1 X20.964 Y67.768 E713.48087
+G1 X20.903 Y68.313 E713.49911
+G1 X20.755 Y69.07 E713.52476
+G1 X20.612 Y69.61 E713.54334
+G1 X20.43 Y70.144 E713.56211
+G1 X20.132 Y70.854 E713.58772
+G1 X19.881 Y71.341 E713.60594
+G1 X19.556 Y71.883 E713.62696
+G1 X19.221 Y72.37 E713.64662
+G1 X19.18 Y72.421 E713.64879
+G1 X18.873 Y72.806 E713.66294
+G1 X18.811 Y72.875 E713.66551
+G1 X18.45 Y73.274 E713.67731
+G1 X18.271 Y73.448 E713.68252
+G1 X18.041 Y73.671 E713.68952
+G1 X17.684 Y73.972 E713.70088
+G1 X17.611 Y74.034 E713.70376
+G1 X17.399 Y74.192 E713.71178
+G1 X17.109 Y74.407 E713.72378
+G1 X16.628 Y74.716 E713.7428
+G1 X15.954 Y75.081 E713.76829
+G1 X15.442 Y75.314 E713.787
+G1 X14.718 Y75.577 E713.81262
+G1 X14.2 Y75.727 E713.83056
+G1 X13.427 Y75.883 E713.85679
+G1 X12.892 Y75.956 E713.87475
+G1 X12.319 Y75.99 E713.89384
+G1 X11.206 Y76.024 E713.93087
+G1 X11.205 Y76.025 E713.93092
+G1 X11 Y76.03 E713.93774
+G1 X11 Y75.825 E713.94212
+G1 X11 Y75.824 E713.94216
+G1 X11 Y66 E714.2689
+G1 X20.836 Y66 E714.59605
+G1 X21.045 Y66 E714.603
+G1 X198.98 Y66 E720.52114
+G1 X199.184 Y66 E720.52793
+G1 X209 Y66 E720.85441
+G1 X209 Y75.836 E721.18156
+G1 X209 Y75.837 E721.18159
+G1 X209 Y76.045 E721.18851
+G1 X208.792 Y76.036 E721.19294
+G1 X207.239 Y75.964 E721.24465
+G1 X206.678 Y75.901 E721.26342
+G1 X205.928 Y75.755 E721.28883
+G1 X205.384 Y75.61 E721.30756
+G1 X204.667 Y75.356 E721.33286
+G1 X204.151 Y75.135 E721.35153
+G1 X203.48 Y74.779 E721.37679
+G1 X202.997 Y74.481 E721.39567
+G1 X202.603 Y74.191 E721.41194
+G1 X202.397 Y74.04 E721.41988
+G1 X202.308 Y73.965 E721.42375
+G1 X201.959 Y73.67 E721.4348
+G1 X201.722 Y73.435 E721.44201
+G1 X201.401 Y73.116 E721.45143
+G1 X201.179 Y72.863 E721.45898
+G1 X201.049 Y72.715 E721.46421
+G1 X200.802 Y72.386 E721.4765
+G1 X200.587 Y72.099 E721.48842
+G1 X200.281 Y71.624 E721.50722
+G1 X199.916 Y70.95 E721.53271
+G1 X199.687 Y70.447 E721.55109
+G1 X199.422 Y69.715 E721.57699
+G1 X199.275 Y69.204 E721.59467
+G1 X199.112 Y68.403 E721.62186
+G1 X199.044 Y67.893 E721.638