No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

generate_stls.sh 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/bin/bash
  2. # ----------------------------------------------------------------------------
  3. # Copyright (c) 2023 Kauzerei (openautolab@kauzerei.de)
  4. # Copyright (c) 2023 Thomas Buck (thomas@xythobuz.de)
  5. #
  6. # This program is free software: you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation, either version 3 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # This program is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. # GNU General Public License for more details.
  15. #
  16. # See <http://www.gnu.org/licenses/>.
  17. # ----------------------------------------------------------------------------
  18. # space separated list of scad files (without extension)
  19. MODULES="actuator beam enclosure tamb_mount"
  20. OUTDIR="stl"
  21. # enter directory of script (case)
  22. cd "$(dirname "$0")"
  23. # Detect OS
  24. if [[ "$OSTYPE" == "darwin"* ]]; then
  25. echo "Mac OS X detected"
  26. SCAD="open -n -a OpenSCAD --args"
  27. else
  28. echo "Linux detected"
  29. SCAD="openscad"
  30. fi
  31. echo "deleting previous build output"
  32. rm -rf $OUTDIR
  33. mkdir -p $OUTDIR
  34. for MODULE in $MODULES
  35. do
  36. PARTS=$(grep -o "part.*//.*\[.*]" ${MODULE}.scad | sed 's/,/ /g' | sed 's/.*\[\([^]]*\)\].*/\1/g')
  37. echo "generating from ${MODULE}"
  38. for PART in ${PARTS}
  39. do
  40. if [[ "${PART}" != "OPT_"* ]]; then
  41. echo ${PART}
  42. FILENAME=$(echo $OUTDIR/${MODULE}_${PART}.stl | tr '[:upper:]' '[:lower:]')
  43. $SCAD $(pwd)/${MODULE}.scad --D part=\"${PART}\" --o $(pwd)/${FILENAME}
  44. fi
  45. done
  46. done