@@ -60,11 +60,16 @@ jobs:
6060
6161 # Calculate camera position dynamically based on machine dimensions
6262 # Extract parameters from OpenSCAD file
63- MACHINE_HEIGHT=$(grep -E "^MACHINE_HEIGHT = " openscad/lifetrac_v25.scad | grep -oE "[0-9]+\.?[0-9]*" || echo "1000")
64- WHEEL_BASE=$(grep -E "^WHEEL_BASE = " openscad/lifetrac_v25.scad | grep -oE "[0-9]+\.?[0-9]*" || echo "1400")
65- GROUND_CLEARANCE=$(grep -E "^GROUND_CLEARANCE = " openscad/lifetrac_v25.scad | grep -oE "[0-9]+\.?[0-9]*" || echo "150")
66- ARM_MAX_ANGLE=$(grep -E "^ARM_MAX_ANGLE = " openscad/lifetrac_v25.scad | grep -oE "[0-9]+\.?[0-9]*" || echo "60")
67- BUCKET_HEIGHT=$(grep -E "^BUCKET_HEIGHT = " openscad/lifetrac_v25.scad | grep -oE "[0-9]+\.?[0-9]*" || echo "450")
63+ MACHINE_HEIGHT=$(grep -E "^MACHINE_HEIGHT = " openscad/lifetrac_v25.scad | grep -oE "[0-9]+\.?[0-9]*" | head -1)
64+ MACHINE_HEIGHT=${MACHINE_HEIGHT:-1000}
65+ WHEEL_BASE=$(grep -E "^WHEEL_BASE = " openscad/lifetrac_v25.scad | grep -oE "[0-9]+\.?[0-9]*" | head -1)
66+ WHEEL_BASE=${WHEEL_BASE:-1400}
67+ GROUND_CLEARANCE=$(grep -E "^GROUND_CLEARANCE = " openscad/lifetrac_v25.scad | grep -oE "[0-9]+\.?[0-9]*" | head -1)
68+ GROUND_CLEARANCE=${GROUND_CLEARANCE:-150}
69+ ARM_MAX_ANGLE=$(grep -E "^ARM_MAX_ANGLE = " openscad/lifetrac_v25.scad | grep -oE "[0-9]+\.?[0-9]*" | head -1)
70+ ARM_MAX_ANGLE=${ARM_MAX_ANGLE:-60}
71+ BUCKET_HEIGHT=$(grep -E "^BUCKET_HEIGHT = " openscad/lifetrac_v25.scad | grep -oE "[0-9]+\.?[0-9]*" | head -1)
72+ BUCKET_HEIGHT=${BUCKET_HEIGHT:-450}
6873
6974 # Validate all extracted parameters
7075 if [ -z "$MACHINE_HEIGHT" ] || [ -z "$WHEEL_BASE" ] || [ -z "$GROUND_CLEARANCE" ] || [ -z "$ARM_MAX_ANGLE" ] || [ -z "$BUCKET_HEIGHT" ]; then
@@ -179,17 +184,22 @@ jobs:
179184 run : |
180185 cd LifeTrac-v25/mechanical_design
181186
182- # Render each module's example
183- for module in modules/*.scad; do
184- filename=$(basename "$module" .scad)
185- echo "Rendering $filename examples..."
186- openscad -o "output/renders/${filename}_examples.png" \
187- --camera=500,500,500,0,0,0 \
188- --imgsize=1600,900 \
189- --projection=p \
190- --colorscheme=Nature \
191- "$module"
192- done
187+ # Only render module examples if modules directory exists and contains .scad files
188+ if [ -d "modules" ] && compgen -G "modules/*.scad" > /dev/null; then
189+ # Render each module's example
190+ for module in modules/*.scad; do
191+ filename=$(basename "$module" .scad)
192+ echo "Rendering $filename examples..."
193+ openscad -o "output/renders/${filename}_examples.png" \
194+ --camera=500,500,500,0,0,0 \
195+ --imgsize=1600,900 \
196+ --projection=p \
197+ --colorscheme=Nature \
198+ "$module"
199+ done
200+ else
201+ echo "No module examples to render (modules directory not found or contains no .scad files)"
202+ fi
193203
194204
195205 - name : Generate summary report
0 commit comments