printing to scale

Hi

I have a small simple model that I want to make in wood and print out cut-seams on paper in real size. Its only about 100 millimeters wide.

I know how to set the ortographic camera and draw only the edges but I dont know how to get the lines to be real size on the paper when printed out. It has to be 1:1 scale.

Anyone know how to do this or know about a tutorial?

What you need is a method of converting Blender Units to pixels per inch/cm (also called dots per inch/cm), which are the respective scales used in Blender and much of digital printing.

You can specify the pixel dimensions of your rendered image, and you can specify the printing resolution (pixels/cm) of your image, so you can create an output file that will print at specific dimensions. Example: supposed your printing application is set at 50 pixels (dots) per cm. An image 500 pixels wide would be equal to 10 cm (100mm) when printed out.

If you set your Blender output size (pixel dimensions) to 500 x whatever, then when printed out at the above specs, the image should be 10 cm wide. Since the Blender 3D view indicates the exact area to fit inside the dimensions of your image, with the ortho camera you can set the image scale and/or scale your parts as needed using the overall Blender image area as the master “ruler.” If setting the grid specs to divide the area up into usable units is difficult, you could make a “gauge mesh” of a plane that exactly fits the image area, subdivided to provide “ruler marks” to gauge with.

Just as a thought…

An old school way to do it would be print something out at any size. Measure its longest length.
Take that measurement as " What You Have " … The Size that the measurement is supposed to be is " What You Want " … Divide " What you want … by … What you have " … That is the percentage of enlargement or reduction.

Example. What you just printed is 5inches across. What you need it to be is 10.75 inches. 10.75inches (10 and 3/4inches) Divided by 5inches = is 2.15 or … 215%. If you have fractions to deal with …use a chart to convert them to ( Decimal equivalents of one inch). Then print the final template at 215% of what you originally printed.

Hows that for a round about way of getting there!

I dont understand how to figure out the image size. Lets say its just a cube and one of its sides are 10 blender units and I know that its supposed to be millimeters. So what I want is to print it so the lines representing that side on paper must be 10 millimeters, since it was 10 blender units…

Do I have to put the camera so the model fills the whole frame for the scale to be correct?

If you wanted to print the lines of a cube that were 10 blender units * 10 blender units /millimeters, what would you do to render the correct image for printing at 300dpi and get a scale of 1:1 ?

Just load it up into a paint program after you render. Doesn’t matter much about the render or pixels or anything.

In the paint program - Photoshop or Gimp simply lay it out to scale using the ruler in the printable area of the page, then print.

You could get fancy and figure out how many pixels it needs to be at 300 dpi (printing). But why bother when you can just render it and lay it out to scale in the paint program.

You could also simply crop it to the longest side and re-size the image to the exact dimensions that the longest side needs to be. Done. Then you could lay it out as a layer or just print it.

You can print out blender renders with great accuracy. Details of how to do it are in my Precision Modelling Guide. 3rd paragraph down on the attached page.
Creating a page template.

The guide is based on precision modelling of engineering components with a scale of 1 blender unit = 1mm. You might need to read a bit more of the guide to fully understand the setup.

Regards
Rob

Nice, I followed the tutorial and now have a jpg that looks right, the last part I didnt understand though, the changing of dpi to 300 in a photo software. I tried photoshop and changed the pixels per inch setting to 300 and the image became 10 000 pixels wide… would that be correct? I think it sounds a bit strange but I havent tried to print it.

I have gimp too, do you know how to change the dpi there?

There are two ways to set the pixels per inch spec in phtoshop – one resizes the image pixel dimensions and the other doesn’t.

If you check the “Resample” box in Photoshop, then your image will be changed in terms of increasing or decreasing the number of pixels in the image. That’s called resampling, and can cause some image quality problems in some cases. This method will get any image to fit a particular print size/pixels per inch spec, at the cost of making the image slightly different (and sometime more than slightly different) in terms of the actual pixels.

In general it’s a bad idea to resample “up” – getting the image editor to create more pixels than were in the original image. It can lead to visible “jaggies” while at the same time creating an overall fuzziness to the image, especially higher-contrast images.

With “Resample” unchecked, the number of pixels in the image stays constant. As a result, the printed image size will change as you change the pixels per inch spec.

You can use these “rules” to set up Blender and your printing app so that after being set once, all you need do is model to scale in Blender, then print, and your printouts will be the correct size.

For your purposes the “300 dpi” printing resolution (often a default for some image editors) is not useful in and of itself – it can be changed with no effect on image quality in order to suit your setup in Blender. Since you’re using the metric system in Blender, better to use the metric system in Photoshop as well, and set your “dots” setting to pixels per cm rather than pixels per inch.

I mentioned using 50 pixels/cm in Photoshop and making your Blender rendering 500 pixels wide – depth can be also 500 but only if you want a square workspace. Any rendering made at that size will print 10cm (100mm) wide. If you set up your Blender workspace to be 100 BU = 100mm wide, then you have a 1:1 ratio between Blender workspace and printout.

For a larger workspace, just increase the pixel dimensions of the rendering and the Blender workspace by the same ratio. For example, at 50 pixels/cm, a 750 pixels wide image will print at 15 cm wide = 150 mm (1.5x the first specification). Then increase your workspace to 100 x 1.5 = 150 BU = 150mm… again a 1:1 workspace and print ratio.

I tend to use Gimp. For the size to print to scale following the tutorial open the rendered image and then in Image>Scale image, change the X and Y resolution to 300. and leave the width and height as pixels.

I had used 300 pixels/inch because that is default for most printers to produce a quality image. You could set the resolution in the tutorial to whatever you wanted, just make sure the same resolution is used in Gimp.

.

Attachments


@ robbur: Does Gimp automatically resample the image in order to keep the same print size? That dialogue box from Gimp isn’t clear in that regard.

If you change the pixels/inch without changing the number of pixels in the image (no resampling), then the image’s print size will change (not good to preserve scale from Blender).

If you change pixels/inch without changing image size (doesn’t seem to be an option in Gimp), then the image gets resampled to create more pixels – this can lead to less clarity in the image, especially when going from 72 to 300 dpi (a factor of better than 3X).

If you choose a render size and pixels/cm to match as I described earlier, there’s no need to resample or scale in either Gimp or Photoshop.

@chipmasque: Gimp doesn’t resample the image when you change the pixels/inch it simply instructs the printer to print the same number of pixels in a different sized area.

What bergsprekken wants is a scaled plan of his blender model, that he can use as an accurate template to cut out of wood. That means rendering with an orthographic camera and allowing that render to be printed at a 1 to 1 scale. Modelling to a set size and setting the correct camera scale and pixel area gives you the correct ratios to print, but blender outputs the render at your monitors resolution. In my case 72dpi which would be a pretty poor quality print. Up-scaling the pixels in the Blender render and then downsizing the print area retains the accuracy but gives a much better quality print.

That basically ignores the pixels/inch spec, then, which I don’t think happens. For example, if your image is 100 pixels wide at 72 dpi, and you change the printer spec to 144 dpi without changing the number of pixels in the image, then your image will print twice as small, because it’s “fitting” more pixels into an inch (144 of 'em instead of 72), and there are no additional pixels in your image without resampling. Resampling creates new pixels so the image “fills out” the print area, but then it’s not exactly the same image as you started with, it’s been “reinterpreted” at a different size with more pixels. The d-box shown has a choice of “Interpolation” mode – that’s the algorithm used for resampling. Looks like Gimp automatically resamples.

In Photoshop you have the option to not resample, which gives greater flexibility in matching rendering resoluton (pixel dimensions) to printout size (based on the pixels/inch or cm spec).

True but that particular “pixels/inch” spec is completely irrelevant in terms of printing – it’s only the monitor’s rez, not the printer’s. What is important is the total number of pixels in the width/depth of the image, because you can specify how many pixels/inch (or cm) your printer works at. Obviously more pixels will give better image quality, and “downsampling” is fine (that’s what you describe by upping the Blender pixel dimensions and reducing the print scale), it’s done quite often in the printing industry.

I think what it boils down to is we’re both talking about doing very similar things, the diff being that by setting up both print app and Blender in advance so the units all match up, there’s no need to do anything but model & print, no need to re-spec the dpi (other than initially), render larger than needed, or do any other massaging, the setup takes care of it all in advance. I’m sure your method works just as well, but maybe with more steps.

EDIT: Completely ignorable historical sidebar :smiley:
The “300 dpi” default that many printers (both desktop and offset) use is a leftover from the early days of digital image processing for print. At that time, it was standard practice to convert the digital files (composed of pixels) to halftone images on negative film (composed of various-sized dots when printed), and then printing plates were exposed as usual and offset printing proceeded. It was soon discovered that for best image quality on the printed page (using the software and technology of the time), it was best to have two pixels in the digital file for every “dot” on the halftone image. Since most halftone images were printed at “150 lines per inch” (“lines” being the term for the halftone dot – confusing, eh!), that meant that digital images should be at least 300 dpi (actually meaning pixels/inch, not “dots”) for highest quality offset reproduction.

But that 300 dpi refers to the resolution at the size the image is being printed – it’s a relative measure, not a constant inherent in the file. A file 8000 pixels wide at “72dpi” will print just fine at “300dpi” without resampling, just at a smaller print area size. The “dpi” spec just ties the otherwise dimensionless pixels to a real-world dimension, and it can vary as needed for any particular printing need.

Modern printing and other reproduction tech doesn’t require that same “300 dpi” standard, because the software that converts digital files to offset dots has gotten much better – in some cases, the halftone is dispensed with entirely (called “stochastic” printing). Digital files can now be transferred directly to printing plates without the film intermediates once required. And many ink-jet-type printing processes (such as your desktop printer) cannot use the “300 dpi” standard – they are more likely to output at 100-150 dpi max resolution, which is just fine for most any but the more critical printing requirements. Most of the vendors I worked with who used inkjet processes for banners and large signage worked very comfortably with 100 dpi files, and the results looked great.

Upshot is that it’s OK to overdo the number of pixels in a rendering, though it adds rendering time, and then “downsample” for the type of printing being done. Better yet imo to tailor the rendering size to the real-world need --saves render time and requires fewer steps in the long run.

It does happen, try it.

If you set the image size to pixels (circled in the image in the post above) then the size of the image is governed by the pixel resolution.Even if you change the drop-down to one of the size options (inches, millimetres etc) it still maintains the same pixel count. To force it to resample the image when you change the resolution, you then need to change the image size input boxes.

For example, if your image is 100 pixels wide at 72 dpi, and you change the printer spec to 144 dpi without changing the number of pixels in the image, then your image will print twice as small, because it’s “fitting” more pixels into an inch (144 of 'em instead of 72), and there are no additional pixels in your image without resampling.
Correct that is how it works.

Resampling creates new pixels so the image “fills out” the print area, but then it’s not exactly the same image as you started with, it’s been “reinterpreted” at a different size with more pixels. The d-box shown has a choice of “Interpolation” mode – that’s the algorithm used for resampling. Looks like Gimp automatically resamples.
No Gimp will only resample if you force a size change. We are not doing that here.

In Photoshop you have the option to not resample, which gives greater flexibility in matching rendering resoluton (pixel dimensions) to printout size (based on the pixels/inch or cm spec).
Exactly the same in gimp. Its a very powerful package if you know how to use it. I have never used Photoshop so I can’t make a comparison.

True but that particular “pixels/inch” spec is completely irrelevant in terms of printing – it’s only the monitor’s rez, not the printer’s. What is important is the total number of pixels in the width/depth of the image, because you can specify how many pixels/inch (or cm) your printer works at. Obviously more pixels will give better image quality, and “downsampling” is fine (that’s what you describe by upping the Blender pixel dimensions and reducing the print scale), it’s done quite often in the printing industry.
No downsampling is reducing the number of pixels when you have got a higher resolution image than you need.

I think what it boils down to is we’re both talking about doing very similar things, the diff being that by setting up both print app and Blender in advance so the units all match up, there’s no need to do anything but model & print, no need to re-spec the dpi (other than initially), render larger than needed, or do any other massaging, the setup takes care of it all in advance. I’m sure your method works just as well, but maybe with more steps.
I think the major difference is I am assigning a world dimension to the Blender unit and modelling to precise measurements. The camera scale is set in relation to the output resolution so you don’t need to scale the camera until the model completely fills the camera view limits. The camera view can represent an area of, or a whole page of the print. The final print will be as accurate as the printer is capable of printing.

Upshot is that it’s OK to overdo the number of pixels in a rendering, though it adds rendering time, and then “downsample” for the type of printing being done. Better yet imo to tailor the rendering size to the real-world need --saves render time and requires fewer steps in the long run.
When you are only outputting an edge render a large image still only takes a few seconds, so time isn’t really an issue.

“Downsampling” (note the quotes) in terms of printing resolution, meaning using an image that is of greater resolution at print size than is needed (i.e., greater than 300dpi at print size), rather than actually reducing the pixel dimensions. The term’s used both ways (if at times slightly inaccurately, for sure) in my experience (30 years in graphic design for print).

My method also assigns a world dimension to Blender using (in the example, 1BU = 1mm), and can be as precise as Blender and the limitations of the printer being used. Just a matter of different methodologies.

I don’t have Gimp so I can’t try the Image Scale operation to see what’s what, but no matter. You say “tomayto,” I say “tomahto,” but they both taste good on a burger ;).