From b5826607d91c9c042cc6a15c969ae6e26d1eed68 Mon Sep 17 00:00:00 2001 From: Keith Sloan Date: Mon, 19 Sep 2016 22:34:27 +0100 Subject: [PATCH] First attempt at support for CSG text command --- src/Mod/OpenSCAD/.OpenSCAD2Dgeom.py.swp | Bin 0 -> 16384 bytes src/Mod/OpenSCAD/.OpenSCADUtils.py.swp | Bin 0 -> 40960 bytes src/Mod/OpenSCAD/importCSG.py | 43 ++++++++++++++++++++++-- src/Mod/OpenSCAD/tokrules.py | 1 + 4 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 src/Mod/OpenSCAD/.OpenSCAD2Dgeom.py.swp create mode 100644 src/Mod/OpenSCAD/.OpenSCADUtils.py.swp diff --git a/src/Mod/OpenSCAD/.OpenSCAD2Dgeom.py.swp b/src/Mod/OpenSCAD/.OpenSCAD2Dgeom.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..f18e19e038a8b5a73ea637aa9848ad8ea664b3af GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/src/Mod/OpenSCAD/.OpenSCADUtils.py.swp b/src/Mod/OpenSCAD/.OpenSCADUtils.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..a75ca37489aed315415b809ae9b2b6729e791fd6 GIT binary patch literal 40960 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