2

Is it possible to set objects to scale in some way as you zoom in and out? Some objects are challenging to see at extremes of zoom. For instance, lines can be too thin to see when zoomed way out but become way thick when zoomed in.

  • 1
    Not a direct answer, but would switching to an outline mode in "View" - "Display Mode" - "Outline" solve your issue? – J.E Nov 27 '18 at 7:53
  • So... you want to zoom.. but not have objects change (visual display) scale when zooming? Isn't that a direct contradiction to what every zoom function does? And would ultimately make zoom worthless? Why would you need zoom at all if nothing changes display scale? – Scott Nov 27 '18 at 9:33
  • @J.E - you're right, not a direct answer, but interesting and useful nonetheless. – Jack Nov 27 '18 at 10:06
  • 1
    @Scott - if all objects scaled in every way, you're right, zoom would make no difference, but if some objects kept their line thickness it might be visually helpful. – Jack Nov 27 '18 at 10:06
  • 1
    I guess I still don't understand. I can't imagine how zoom would be helpful if it failed to maintain scale between objects. I see the entire point of a zoom function as the ability to see how objects relate to one another at varying display scales. If I want to align a path to a shape... when I zoom in, if that path does not maintain relative scale to the shape, any changes I make would be haphazard and random. To me, it merely sounds like you should not use zoom.. – Scott Nov 27 '18 at 11:17
3

First of all ...

... I would refrain from using such an option. Changing the stroke width depending on the zoom would most likely trick you into thinking that your image looks different than it actually does. For working with very thin or thick lines, you can temporarily change to ViewDisplay ModeOutline.

Possible Solution

SVG elements can have the property vector-effect="non-scaling-stroke", see documentation. Inkscape respects that property, but you have to add it manually using the xml editor.

  1. Select an object.
  2. Open the xml editor.
  3. Under style, change vector-effect:none to vector-effect:non-scaling-stroke.
  4. Press set.

xml editor

Example

Here are screenshots of an example image. There are two filled circles with a stroke of width 10px. Only the blue circle on the right has the property vector-effect:non-scaling-stroke.

The following screenshots were made at different zoom levels. For better comparison of the stroke width I copied small parts of all screenshot and pasted them right next to each other. As we can see, the blue circle keeps its stroke width for all zoom levels.

Scene at different zoom levels

Caveats

  • In the example from above both circles have the same stroke width, but at zoom level 100% the yellow circle's stroke is thicker. Seems like a bug in Inkscape. I use version 0.92.2 2405546, 2018-03-11 on Linux.

  • You should change non-scaling-stroke back to none after you are done editing. Not all applications support it.

  • Can't edit just a single letter, so could you add an 'n' in your last list item, to the on-scaling-stroke, @Socowi? – Moini Nov 29 '18 at 1:43
  • That might just work. My current Inkscape project uses Inkscape as a sort of fractal drawing storage facility, where some moderately detailed drawings are kept quite small, so that you can zoom in and see them, but when you zoom out, you see items on a larger scale. Hope I've explained that so it makes sense. I don't ever use "the whole drawing", I use parts of it, screen capped and exported. So your solution may work very well. Thank you! – Jack Nov 30 '18 at 3:13

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.