Advertisement
l0rdjcd

FANUC CNC-FILE SPLITTER

Jul 17th, 2022
1,277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.45 KB | None | 0 0
  1. ################# FANUC CNC-FILE SPLITTER ########################
  2. #
  3. # CNC-FILE-SPLITTER FOR FANUC PROGRAM-OUTPUT-FILES
  4. # COMPATIBLE WITH LINUX, ANDROID & WINDOWS WSL
  5. # THIS FUNCTION EXTRACTS ALL PROGRAMS FROM A CNC OUTPUT FILE
  6. # TESTED WITH VERSION 0i,16i,18i-TB,31i
  7. # FOR EASY-USE, ADD THIS CODE AS FUNCTION IN YOUR ~/.bashrc
  8. # AND START WITH COMMAND
  9. #
  10. #          fanuc_split
  11. #
  12. # CODED: SEBASTIAN STAITSCH
  13. # LAST EDIT: 2021/12/21 @ 15:19 - Version 3.1
  14. # VIDEO: https://youtu.be/ChFv7KmzxHI
  15. #
  16. ##################################################################
  17.  
  18.  
  19. fanuc_split(){
  20.         loop(){
  21.                 echo -e --- "\e[32mFOUND\e[0m" $(egrep -no '^O{1}[0-9]{1,}|^<' $file | wc -l) Programs in $file
  22.                 sleep 2
  23.                 sed -i '1d' $file
  24.                 sed -i 's/\r//g' $file
  25.                 while [ "$(cat $file | wc -l)" -gt 1 ]; do
  26.                         name=$(egrep -o -m1 '^<{1}\S*>{1}|^O[0-9]{1,}' $file | tr -d '<>')
  27.                         start=$(egrep -no -m1 '^O{1}[0-9]{1,}|^<' $file | grep -Po '^.*:' | tr -d ':')
  28.                         end=$(egrep -no -m2 '^O{1}[0-9]{1,}|^<|^%' $file | grep -Po '^.*:' | tr -d ':' | tail -n1)
  29.                         (( end-- ))
  30.                         echo "%" > cnc_$folder/$name
  31.                         sed -n ''$start','$end'p' $file >> cnc_$folder/$name
  32.                         sed -n 2,3p cnc_$folder/$name
  33.                         echo
  34.                         echo "%" >> cnc_$folder/$name
  35.                         sed -E -i 's/\s$//' cnc_$folder/$name
  36.                         (( end-- ))
  37.                         sed -i '1,'$end'd' $file
  38.                 done
  39.         rm $file
  40.         mv $file.BAK $file
  41.         }
  42.         echo
  43.         echo "Welcome to Fanuc-File-Splitter v3.1 - Coded by Sebastian Staitsch"
  44.         echo "     Contact: [email protected]"
  45.         echo
  46.         sleep 1
  47.         echo
  48.         for file in `ls *`; do
  49.                 if [[ "$(grep -E -c '^O[0-9]{4,}|^<.+>$' $file)" -gt 1 ]]; then
  50.                         cp $file $file.BAK
  51.                         folder=$(echo $file | sed 's/.ALL// ; s/.TXT//')
  52.                         mkdir cnc_$folder
  53.                         loop
  54.                 else
  55.                         echo -e --- File $file "\e[1;31;40mnot compatible\e[0m"
  56.                         sleep 1
  57.                 fi
  58.         done
  59.         echo
  60.         echo -e "\e[1;33;40m--- Success\e[0m"
  61. } 2>/dev/null
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement