BlueprintGeometricAndTechDrawing

From Inkscape Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Summary

This blueprint accompanies the GSoC'08 project "Geometric & Tech Drawing Abilities for Inkscape" by Maximilian Albert. It collects ideas from the community regarding desired features and their implementation (with no warranty that any of them will be included in the project :)). Feel free to add your thoughts here.

The aim of the project is to create a new tool consisting of a number of "subtools"/"modules" which facilitate geometric constructions and technical drawings.

Typical Workflow

To perform a geometric construction (e.g., create a circle through 3 points), the corresponding "module" is activated in the toolbar, either by clicking on its icon or via a shortcut. Then the items on which this construction relies (i.e., the three points) are clicked. This creates the desired geometric object (in this case a circle passing through the points).

Td typical workflow.png


Desired Constructions/Other Features

Basic

Some constructions that should be possible with the new tool:

Td constructions.png


More advanced or less important

  • "Preserve angles" mode for node editing of polygons (mockup courtesy of Johan Engelen)
    Td preserve angles mode.png
  • Marker improvements:
    • Apply the color of the current stroke to markers, too (long-standing bug: LP #165865)
    • The left image shows how a marker currently looks like when applied to a curve with a sharp turn. Of course, it should look like the one on the right (also note the above-mentioned bug that the marker doesn't take the curve's stroke color).
      Td marker.png
    • Automatic path shortening when a marker is applied
    • Smarter way of guessing a suitable marker size (not only based on stroke width but maybe also on the length of the path)
    • Optional "bendy" markers that follow the curvature of the corresponding curve (see bug/wish #244279 for an example)
  • Tangent snapping:
    Td tangent snapping.png


Dimensioning abilities

The tool will need all the dimensioning abilities a normal CAD software has.

  • Linear dimensions (with arrows pointing outwards <-----> for big dimensions and inwards ->--<----- for small dimensions
  • Radius/Diameter dimensions
  • On every dimension there should be the possibility of adding a text box and overriding the default dimension value,...

Details & Internals

User Interface

All constructions should be accomplishable by mouse input only. E.g., points can be specified by mouse clicks, their position can be adapted by dragging, as can angles of lines, radii of circles, etc. But since for technical drawings the ability to use exact values is indispensable, each of these values can also be set by using numeric input fields (e.g., in the secondary toolbar).


Code

The tool will be implemented as a collection of "Live Path Effects" (LPEs). See here for a technical description. The algorithms will be provided by the 2geom library which is intended to become Inkscape's core library in the near future. There are separate GSoC proposals for 2geom integration into Inkscape.

As part of the project, it is intended to integrate LPEs much more tightly into Inkscape's UI, e.g., by providing handles for parameter adaption or making their controls available in toolbars (not only in the LPE dialog).