I think I've spotted a problem:
I inserted a bitmap into a drawing and scaled it down by a factor of approximately 0.002, so it's very small now. If I click on "print preview", and select "center to page" and "fit to page", the image is shown in the lower left corner and very small. Inserting the unscaled image reveals, that the printing preview behaves like the image wasn't scaled. The scaling factor seems to be ignored.
Ok. Now a question:
I've been looking for an option to set the drawing scale. I fear that there is none, as with QCad, and I think this is a big inconvenience, at least for technical drawings.
Why? (I'll spend those 15 minutes and explain it.) Of course, I could just set the printing scale. The problem is that all the dimensions put in should have a set height on the paper, regardless of the scaling factor of the workpiece. If I want to print a drawing with a scale of 1:4 and the dimensions should be e.g. 4mm high on paper, the dimensions should still be 4mm on paper if I decide to use an 1:1 scale. Additionally the linewidth should be correct (independent of the scaling factor), too. In many cases those things must not depend on the scaling. The choice of dimensioning and linewidth rules are usually given. Either by a norm or an in-house standard of the company you work for or someone else. Of Course, one could correct the dimension settings and line width every time the scale changes, but this is superfluous work and error prone.
Don't get me wrong: I don't want to be rude and I know that LibreCAD is OpenSource and I could implement this myself. I just want to spell the problem out, because this topic occasionally comes up with QCad and everyone just says: "Draw it 1:1 and use the printing scale factor.", without having understood the real problem.
With "dimension" I meant the dimensioning text and arrows and extension lines ... (That was my fault. I think it's called "dimensioning" and not "dimension" in english. Correct me if that's wrong.)
Yes, using an additional abstraction layer of paper space is how it could be solved (e.g. AutoCAD does this, if I remember correctly). This way additional things like the title blocks (what I mean is e.g. this: http://www.roymech.co.uk/images1/title_block.gif if I got the english term wrong again) are solved, too.
Maybe the simplest workaround (from the implmentation point of view) would be to insert a scaling factor in the drawing preferences. If this was set to say 2:1 all values entered at command line would be multiplied by 2 and thus respecting that the printout should be twice as big as the original part (the print-scaling-factor has then to be 1:1, of course). All the internal drawing data would be twice as big in this case. The dimensioning texts inserted would have to do the reverse: Take the internal units (which are twice as big) and divide them by 2 to show the same values as entered by the user. The sizes of the dimensioning itself, set in the "Drawing Preferences" => "Dimensions" dialogue, are not multiplied and always drawn 1:1. This way the following is achieved:
1) The dimensioning on the paper is as big as set in the setting dialogue (because we print 1:1 later).
2) The linewidths on paper are as thick as set in the layer settings (because we print 1:1 later).
3) The user just enters all values 1:1 (because of the internal scaling of drawing and dimensioning) and doesn't have to worry about the scaling factor (apart from setting it in the preferences) while drawing like now.
I think the only things that would have to be changed to implement it this way would be the part that reads the input from the user (command line) and the one which draws/inserts the dimensions. Everything else could stay the same if I don't miss anything.
If the scaling factor could be set per layer, even something like title blocks could be done by just keeping the corresponding layers at 1:1, so the frame would always be printed 1:1 and the drawing itself would be rescaled according to the scaling factor in the layer settings. Shouldn't be much more complicated the the global approach described above.
I know, it sounds a bit confusing, just ask if something is not clear.
(Hopefully, I haven't mixed up dividing/multiplying, it's already a bit late now.)
The only drawback is, that the internal data must be rescaled if the scaling factor is changed later.