I had the same question and downloaded the Inkscape source from https://gitlab.com/inkscape/inkscape in order to understand the internal mechanisms.
A full-text search for
R14 revealed that these formats are exported using Inkscape extensions,
dxf_outlines, respectively (output shortened):
[~/source/inkscape]$ grep R12 po/de.po -C 1
msgid "Desktop Cutting Plotter (AutoCAD DXF R12) (*.dxf)"
msgstr "Desktop-Schneideplotter (AutoCAD DXF R12) (*.dxf)"
[~/source/inkscape]$ grep R14 po/de.po -C 1
msgid "Desktop Cutting Plotter (AutoCAD DXF R14) (*.dxf)"
msgstr "Desktop-Schneideplotter (AutoCAD DXF R14) (*.dxf)"
I then learned that the Inkscape extensions live in their separate repository at https://gitlab.com/inkscape/extensions. Looking at the source of
dxf_outlines.py, the docstrings confirm that this script effectively outputs the R14 format: https://gitlab.com/inkscape/extensions/-/blob/master/dxf_outlines.py#L22
On my Ubuntu 20 system with Inkscape installed via
snap, the script is executed as follows:
/usr/bin/python3 /snap/inkscape/current/share/inkscape/extensions/dxf_outlines.py --output=file.dxf file.svg
As a prerequisite, I had to install the
numpy extensions for Python 3:
sudo apt install python3-lxml python3-numpy
Hope this helps!