Skip to content

Commit f28ccc4

Browse files
committed
Add FreeCAD export
1 parent f78d5f7 commit f28ccc4

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,64 @@ jobs:
4141
with:
4242
name: kicad-export
4343
path: ${{ env.OutputFolder }}
44+
retention-days: 1
45+
46+
export-freecad:
47+
env:
48+
FREECADVERSION: "1.0.2"
49+
FREECADFOLDER: "./mechanical"
50+
FREECADFILENAME: "housing.FCStd"
51+
OUTPUTFOLDER: "./output"
52+
PARTTYPE: "PartDesign::Body"
53+
runs-on: ubuntu-latest
54+
steps:
55+
- name: Fetch repository
56+
uses: actions/checkout@v4
57+
58+
- name: Checkout xdb-freecad repository
59+
uses: actions/checkout@v5
60+
with:
61+
repository: 0x007E/xdb-freecad
62+
path: mechanical
63+
token: ${{ secrets.GITHUB_TOKEN }}
64+
65+
- name: Prepare output directory
66+
run: |
67+
mkdir -p ${{ env.OUTPUTFOLDER }}
68+
cp ./LICENSE ${{ env.OUTPUTFOLDER }}
69+
70+
- name: Install FreeCAD
71+
run: |
72+
wget https://github.com/FreeCAD/FreeCAD/releases/download/${{ env.FREECADVERSION }}/FreeCAD_${{ env.FREECADVERSION }}-conda-Linux-x86_64-py311.AppImage
73+
chmod 0777 FreeCAD_${{ env.FREECADVERSION }}-conda-Linux-x86_64-py311.AppImage
74+
./FreeCAD_${{ env.FREECADVERSION }}-conda-Linux-x86_64-py311.AppImage --appimage-extract
75+
76+
- name: Get FreeCAD Export
77+
run: |
78+
git clone https://github.com/0x007E/pyfreecadexport.git
79+
80+
- name: Modifiy Spreadsheet
81+
run: |
82+
REPO_NAME="$(basename "${{ github.repository }}")"
83+
REPO_NAME_UPPER="${REPO_NAME^^}"
84+
85+
cp -r ${{ env.FREECADFOLDER }}/${{ env.FREECADFILENAME }} ./housing.FCStd
86+
cp -r ${{ env.FREECADFOLDER }}/*.otf ./
87+
88+
./squashfs-root/usr/bin/python ./pyfreecadexport/src/pyfreecadspreadsheet.py -f "${{ env.FREECADFILENAME }}" -s "Parameter" -a "Text_Function" -d "${REPO_NAME_UPPER}" -l "squashfs-root/usr/lib/"
89+
90+
rm -r ./*.otf
91+
cp -r ./${{ env.FREECADFILENAME }} ${{ env.FREECADFOLDER }}/${{ env.FREECADFILENAME }}
92+
cp -r ${{ env.FREECADFOLDER }} ${{ env.OUTPUTFOLDER }}
93+
94+
- name: Export STEP Files
95+
run: |
96+
./squashfs-root/usr/bin/python ./pyfreecadexport/src/pyfreecadexport.py -f "${{ env.FREECADFOLDER }}/${{ env.FREECADFILENAME }}" -p "${{ env.PARTTYPE }}" -d "${{ env.OUTPUTFOLDER }}" -e "step" -l "squashfs-root/usr/lib/"
97+
./squashfs-root/usr/bin/python ./pyfreecadexport/src/pyfreecadexport.py -f "${{ env.FREECADFOLDER }}/${{ env.FREECADFILENAME }}" -p "${{ env.PARTTYPE }}" -d "${{ env.OUTPUTFOLDER }}" -e "stl" -l "squashfs-root/usr/lib/"
98+
99+
- name: Archive artifacts
100+
uses: actions/upload-artifact@v4
101+
with:
102+
name: freecad-export
103+
path: ${{ env.OUTPUTFOLDER }}
44104
retention-days: 1

0 commit comments

Comments
 (0)