User-definable Object-attached Guidelines and Points for Mutual Object Positioning and Aligning (including a corresponding aligning/positioning toolbox)

Registered by Jiri Biba on 2009-08-21

There are relatively sophisticated, yet still basic aligning tools available in Inkscape. There is missing a tool for precise mutual object positioning and aligning, other that to X-/Y-axes related aligning according to virtual circumscription rectangles of the objects. Aligning two objects according to two of parallel lines being parts of two objects (e.g. aligning a pentahedron and an hexahedron according to two lines chosen of those two objects) is relatively difficult. Likewise, aligning of two objects with a specific angle between two their lines lines, including the mutual position of the objects (e.g. setting a mutual rotation between a pentaheron and an hexahedron and and their mutual translation coordinates) is currently virtually impossible.

The proposal of an aligning tool capable of such positioning and aligning between objects would require two parts: (1) user-definable guidelines and points attachable to objects and (2) toolbox dialogue window for setting of aligning/positioning properties. Their detailed description follows below:

(1) attachable guidelines and points: guidelines (straights) or points could be attached (sticked) in an arbitrary position (translation and rotation) to an object and would make one whole with it; such guidelines could be hidden/shown and they themselves would not constitute graphical parts of the objects (i.e. they would not be visible in the resulting image); there would exist several ways of attaching them to an object like (a) to some of its lines or parallel to such lines, (b) to an outer surface of an object at a specific point like a tangent to the curve defining the shape of the object, (c) to the gravity center of an object with an arbitrary angle with respect to X/Y axes, (d) any free position, etc.; such guidelines or points could be attached to groups of objects as well; then they could be used for aligning the object they are attached to with X/Y axes or (more importantly) another guidelines and points defined on other objects. Guidelines and points (defined on surrounding objects) to which an object would be aligned could be activated or deactivated. A snapping (both angle- and distance-sensitive) of an selected object position and rotation to X/Y axes or activated guidelines would ease the aligning/positioning as well. When the active guideline or/and point of an selected object when moving it or rotating freehand would snap to a user-defined position and/or angle (specified in the toolbox window) given by an active guideline or point of a non-selected object, both the guidelines or points (at the selected as well as at the non-selected object) would highlight. Specification of the desired angles, distances to which the selected object should snap (as well as other settings like selection of active guidelines/points, etc.) could be defined in the toolbox window of this aligning/positioning tool; the guidelines and points would constitute a rigid composition together with the object they were attached to and thus they would be moved and rotated together with the object while in the process they would guide/ease the free-hand manipulation (translation and rotation) of the object by snapping to the other object's active guidelines/points.

(2) toolbox dialogue window for setting of aligning/positioning properties: the window would allow the user to activate/deactivate individual guidelines and points attached to individual objects and set their properties like the way of their attachment to their objects, turn on/off snapping, select several ways of mutual aligning and positioning of any two guidelines, guidelines to points, points to points and it would also highlight which of such settings current applies between which guidelines and/or points. The guideline properties section (tab or something like that) would allow the user to set one or more of guidelines attached to an object to be active (i.e. to participate on the aligning with other objects) or to deactivate them and it would also allow the user to chose the way the guideline is attached to the object (say the guidelines is parallel to a specific line in the object or it is attached as a tangent to the surface of a curve at a definition point, etc.). The mutual aligning options could be like (a) a distance or folds of the distance, resp. list of distances (b) a mutual angle and/or folds of the angle, resp. list of angles, (c) aligning to X/Y axes, (d) aligning to grid, etc., including tolerances (safe margins) of the angles and distances. There could be set one or more of such alignining/positioning options in force.

Lets introduce an example of usability of such tool. Say we want to align an elipsis to a specific line in a pentahedron. First, the user creates a new guideline attached to the pentahedron, being parallel with the desired line of the pentahedron and would move it to shade with such line. Second, the the user creates a guideline attached to the surface of the ellipsis at a specific point and sets it to be parallel with one of the ellipsis axes. Third it goes to the toolbox window and chooses to activate both the created guidelines. Fourth, the user sets on snapping between the guidelines and sets aligning at zero angle and zero distance. Fifths, it takes the ellipsis with the existing free-hand rotation tool and rotates it until the guidelines snaps with zero angle (the option is highlighted in the toolbox window and both the guidelines are highlighted in the picture as well as in the list of guidelines in the toolbox window). Then the user takes the ellipsis and moves it closer to the pentahedron until it snap to the distance aligning option and moves the ellipsis at a desired location along guidelines snapped at distance and rotation (i.e. slides the elipsis with respect to the pentahedron along with the snapped guidelines).

Blueprint information

Not started
Needs approval
Series goal:
Milestone target:

Related branches



- Xaviju- This sound interesting, but I am not sure if I understand it correctly. Could you please elaborate this with a UI design on how it should work?

[Victor Westmann 2018-06-07] If you could make a draw or small video to showcase your idea that would be amazing. Could not get the full picture as well...


Work Items

This blueprint contains Public information 
Everyone can see this information.