ibnuda / dactyl-keyboard

Web generator for dactyl keyboards.
https://dactyl.siskam.link
GNU Affero General Public License v3.0
198 stars 51 forks source link

Generated plate SCAD results in CGAL ERROR with certain number of columns #81

Open derlucag opened 3 years ago

derlucag commented 3 years ago

Hi, first of all, great work on the generator, i enjoy it a ton!

There might be a bug in the SCAD plate generation though:

With this JSON, the generated plate can be compiled in OpenSCAD version 2021.01 :

{ "keys": { "columns": 5, "rows": 5, "thumb-count": "six", "last-row": "two", "switch-type": "box", "inner-column": null, "hide-last-pinky": false }, "curve": { "alpha": 12, "pinky-alpha": 12, "beta": 36, "centercol": 4, "tenting": 15, "rotate-x": 180 }, "connector": { "external": false, "trrs": false, "micro-usb": false }, "form": { "stagger-pinky-y": -5, "hotswap": false, "stagger-index-y": 0, "wire-post": false, "stagger": true, "stagger-ring-z": 0, "stagger-middle-z": -2.5, "screw-inserts": true, "thumb-offset-x": 6, "stagger-middle-y": 2.8, "height-offset": 4, "wide-pinky": true, "stagger-index-z": 0, "thumb-tenting-y": null, "thumb-offset-z": 7, "stagger-ring-y": 0, "thumb-offset-y": -3, "stagger-pinky-z": 6 }, "misc": { "keycaps": false, "right-side": false, "case": true } }

With this JSON, it results in the following error:

{ "keys": { "columns": 6, "rows": 5, "thumb-count": "six", "last-row": "two", "switch-type": "box", "inner-column": null, "hide-last-pinky": false }, "curve": { "alpha": 12, "pinky-alpha": 12, "beta": 36, "centercol": 4, "tenting": 15, "rotate-x": 180 }, "connector": { "external": false, "trrs": false, "micro-usb": false }, "form": { "stagger-pinky-y": -5, "hotswap": false, "stagger-index-y": 0, "wire-post": false, "stagger": true, "stagger-ring-z": 0, "stagger-middle-z": -2.5, "screw-inserts": true, "thumb-offset-x": 6, "stagger-middle-y": 2.8, "height-offset": 4, "wide-pinky": true, "stagger-index-z": 0, "thumb-tenting-y": null, "thumb-offset-z": 7, "stagger-ring-y": 0, "thumb-offset-y": -3, "stagger-pinky-z": 6 }, "misc": { "keycaps": false, "right-side": false, "case": true } }

Compiling design (CSG Products generation)... ERROR: CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion violation! Expr: e_below != SHalfedge_handle() File: /mxe/usr/x86_64-w64-mingw32.static.posix/include/CGAL/Nef_3/SNC_FM_decorator.h Line: 426

The difference between the two JSON files is only the value of keys.columns.