Comment 6 for bug 716145

Revision history for this message
su_v (suv-lp) wrote :

> how do I proceed in order to avoid that matrix transformation?

Keep in mind what results in a 'matrix()' transformation: scaling, rotating, skewing, flipping etc. with the Select/Transform tool <F1> - on-canvas, with the buttons on the select tool controls bar, or with the dialog 'Object > Transform…'.
- These kind of transformations will be stored as preserved transformations (in the 'transform' attribute) when applied to object types like inkscape shapes, text, groups etc. Some exceptions are e.g. scaling a rectangle which is not rotated (this will only change its width / height), or proportionally scaling a text object (this adjusts the font size).
- Only regular paths can have these types of transformations always applied directly to the path data (aka geometry) - this behavior depends on the preference setting 'Transforms > Store transformation: [x] Optimized
- 'transform' attributes can be "inherited": ungrouping a group which has e.g. a 'matrix()' transformation applied will pass that transformation on to each of its former members.

Here are a few tips:

1) For new drawings:
In general: try to not scale objects - like groups or shapes, which are to be later connected with connectors - with the select tool (instead modify the objects' geometry with object-specific tools)
- groups: edit the geometry of the objects inside the group ('Ctrl+LMB' to select an object within a group, 'Ctrl+Enter' to enter a group [1]), or size them appropriately before grouping them.
- Inkscape shapes like ellipse/circle and polygons/stars will always use a preserved transform attribute e.g. when moved or scaled (even when scaled proportionally). To avoid that (or to get rid of it after resizing such a shape), convert the shapes to regular paths (menu 'Path > Object to Path'), and nudge them with the arrow keys (to optimize any inherited transforms): regular paths will have the transformation applied directly (aka "optimized" to the path geometry (with default preference settings for 'Transforms').

2) For existing objects:
1) ungroup transformed groups
2) convert the contained objects to path, nudge them with the arrow keys (to have the inherited transform attribute optimized into the path data)
3) I'm not sure about the text objects: they are not supposed to keep a 'transform' attribute when scaled unless the scaling is non-uniform (i.e. not proportional). If the scaling was non-proportional, you might have to delete its 'transform' attribute manually in the XML Editor, then reposition the text and adjust its font-size. Else you might consider recreating the text object - whatever is faster to achieve.
4) regroup
5) reattach the connectors to the newly created groups

-----
[1] <http://tavmjong.free.fr/INKSCAPE/MANUAL/html/Groups.html>