From Inkscape Wiki
Jump to navigation Jump to search

CAD Interoperability

Computer-aided design (CAD) is another particular application for 2D vector graphics. A difference between CAD and other types of drawing is that precision is extremely important. Another difference is the need for dimensioning of items in the drawing. Workflow can also be very different between CAD and other vector drawing uses. Because of these reasons, Inkscape is not currently useful as a CAD tool directly, but could be with future (as yet unplanned) additions.

DXF support

However, being able to import CAD drawings for final cleanup/rendering, or to mock up some ideas before putting into CAD, may be of use. The de factor standard exchange format for CAD programs is DXF. Having support for this format suddenly opens up interoperability with a huge range of other applications, including not only 2D CAD such as qcad, but also 3D rendering programs such as Blender, etc.

A nice workaround to import cad drawings in Inkscape could be the following:

  1. create a pdf via pdf creator (gpl'ed - windows) or via any other distiller
  2. open it Gsview and use the command "convert to vector format" via GnuLibplot to convert it in SVG format.
  3. the file is ready for Inkscape.

As an alternative, you can use the command line for pstoedit or GnuLibplot, but they are much more tricky to install under windows.

CAD additions

the changes/aditions to inkscape required to give some kind of CAD usability include:

  • the ability to enter data (distances, angles, co-ordinates) exactly (probably with the keyboard)
  • the ability to snap to nodes and other points on objects (centers of arcs etc.) while drawing
  • the ability to snap to a point at some ratio or distance along a line, as well as to perpendiculars and tangents of lines.
  • a dimensioning tool (arrows with measurements, that kind of thing).
  • the ability to set a page/layout to a certain scale.
  • support for other CAD formats

these would need to be implemented via either a plugin (not currently enough support for that), or a source code change. if the project begins to require more differentiation from inkscape, perhaps a fork would be required.

see also