Update 12/4: Added STLs for smaller, thicker bus. (See below.)
Update 12/4-b: Updated OpenSCAD -- fixed some bugs, added some parameters. (10 d/l)
A friend of mine posted a cute metal double-decker bus toy, and I thought it would make a great 3D-printed toy. Using the photo as a rough guide, I modeled this bus in OpenSCAD. It's parametric so you can change things like the overall dimensions, thickness, wheel sizes & offsets, axle sizes, rounding, window height, stile width, trim height, and more.
The original toy said "Welcome to Hyde Park," so I added an *.SVG for that as well. (The font is Garamond, but it's converted to curves in case you don't have that font.)
I could only see one side of the toy from the photo, so I just guessed at the rest. It's not identical to the toy, either -- I took a couple of shortcuts. But it's immediately recognizable as a double-decker bus by both my kids, so I'm pretty satisfied. :)
STL files include the full plate, the bus shell, the chassis, the wheels, and also a plate with just the chassis and wheels (e.g. if you want to do those in black or grey).
The photo of the underside of the bus is taken with my hand for scale. The default STL is 120mm long, 40mm wide, and 60mm high (without the wheels). The material is 1mm thick, so as-is it's not the most sturdy of toys, but you can always just change the thickness parameter to fix that!
I still need to clean up the code a bit.
Update 12/4: I just tweaked the OpenSCAD file and added some STLs (those that end in "small") for a smaller, sturdier bus. This one is about half the size and twice as thick. I haven't test printed this smaller version.
1) Print all the parts. You might want to tweak the parameters to get some settings that slice nicely.
2) Snap the chassis into the clips at the bottom.
3) Cut two axles from a wire hanger, insert into undercarriage, and glue on wheels.
4) Cut out the "Welcome to Hyde Park" signs (cut on the inside of the boxes), and paste one on either side of the bus.