STL Export Scale Factor is Wrong

I recently changed to working in meters instead of mm. This solves some problems I was having with sketchup, but introduces a new issue.
When I export the printable object, I export it with units set to mm. This should scale the object by 0.001 to change from meters to mm. Cura seems to import it correctly, but when I switched to Repetier Host I ran into a problem. The object was apparently scaled by 1000 instead of 0.001. Telling Sketchup to export in drawing units (meters) and telling Repetier to import in mm gives an object that is the correct size. Clearly I can work around the issue.
I have communicated with the author of Repetier Host and he confirmed that when set to mm Repetier imports without doing any scaling.

Changing the units in SketchUp doesn’t scale the model in any way. It only switches to showing the dimensions in differnt units. Typically, 3D printing systems let you specify the unit used when importing the STL file.

Anssi

There were two things going on here. I am increasing the drawing units and
then expecting to scale back down to mm on export to the slicing program.
The scaling that I am complaining does not work correctly is the scaling of
the STL export plug in. The fact that it has a menu choice of units implies
that it is re-scaling on export.

According to Dan Rathbun scale factor in Sketchup does more than change the
units displayed. Below is a quote from an email he sent me.

"Are you drawing at full scale or 100x or 1000x ? There might be issues
with small faces, etc. (SketchUp has an internal tolerance of 0.001 inch.)
So this extra time “wheel-spinning” may be SketchUp choking on coincident
points, etc.

It is often recommended to set the model units to meters, but think (and
enter measurements) as if units were set to millimeters. Later when
printing or exporting you can scale the whole model down 1000x."

I appreciate your effort to help with the issue. Dan’s advice seems to be
correct in that drawing problems with small curved surfaces intersecting
are not evidenced when drawing in meters instead of mm. Also I have noticed
that saves are a lot faster with the larger geometry.

Very interesting. From time to time, I 3D print models from SketchUp, and when I want to print a building at a 1:500 scale, my workflow is as follows:

  1. In the project file where I model the building (units: centimeters), I group the building I want to print.
  2. Inside that group, I draw a 500 cm line using the pencil tool.
  3. I select the Tape Measure tool.
  4. I measure that 500 cm line.
  5. I type 1 cm on the keyboard.
  6. I open a new SketchUp file using the “3D printing – millimeters” template.
  7. I copy the scaled group into this new file.
  8. From that file, I export to STL.

This way, the scale and units are correctly interpreted in Cura and Bambu Studio (Orca Slicer).

Or the second method:

  1. I change the units to mm.
  2. I export to STL.

This way, the slicers also load the STL with the correct units.

That means slicers expect models to be in millimeters, and changing the units in SketchUp affects that.

Yup. I’m modelling at either 1:160 or 1:320 scale. The issue is number of usable decimal points in Sketchup - I think it is probably 1, but might be 2. To get a usable output for 3D printing, I first use 100 feet life size to 1 meter model: then reduce the scale twice: once x 25% , once x 38.1%. Otherwise the units become unreliable. I then either export to STL for the framework (when is STEP going to be there) or to Layout for the facades.

SketchUp can show dimensions to 6 decimal places.

This seems like a lot of faffing about to me. I presume basedon the 1:160 and 1:320 scales you are making models for N-scale or another model railroad scale. When I am modeling for N-scale stuff I model at life size. No need to do any scale calculations at that point. Once the model is complete I deal with the scale.

For 3D printing for N-scale instead of scaling down, I would scale up from life size by 6.25 and then export the .stl file with the units set to meters. Scaling up reduces the chances of losing small details due to SketchUp’s issue with tiny faces. Here’s a quick example I whipped up.

A 40 foot long house.


Scaled up by 6.25 and the units changed to meters.

76.2 millimeters equals 3 inches. At 1:160 three inches equals 40 feet.

Export with units set to meters.

Imported into slicer (my slicer only deals with millimeters) and the house is 76.2 mm long. Sorry, it’s hard to read against the grid.

For creating N-scale card models using LayOut I leave the model at life size in SketchUp. In LayOut I created a custom 1:160 scale which I can then apply to the elevation and plan viewports to get them to be the correct size on the page. Here’s an example showing that.

Thanks. I like the idea. I’m modeling St Pancras Station - which is huge, before any scaling up.

When I model in mm and export in mm I can rely on the sizes I read in Sketchup to be exactly what the printer should produce in mm, without any mental arithmetic to ensure that everything lines up when the jigsaw is brought together.

I will have a look at the scaling up idea a bit more I think.

Since STL files have no units you can also rely on a model made with units set to meters and exported with units set to meters to be accurate in mm with the printer.

Example: Modeled as if millimeters were meters.

The resulting print.