I know there are some experiments like fpmagic [2] and people drawing KiCad footprints in Freecad [3] (which I assume lets you draw using constraints). Like you said, there are proprietary commercial solutions as well but I rarely find the time to assess them.
After reading this blog post and looking at the author's libfive, I thought I would play around with that and see if I could start a solution using it. I'd be interested to hear what your own approach to this would be though.
[1]: https://github.com/monostable/footwork
[2]: http://fpmagic.engineerjs.com/
[3]: https://forum.kicad.info/t/import-create-footprint-dxf/11818...