This is a customizable parametric international shipping container. I needed this for some architectural modeling and made it as customizable as possible. The model supports containe of different dimeio, different container and wall styles, different forms of assembly, as well as some supplemental architectural features, such as windows and interior walls. It builds on an earlier model by gudnyboyz, from which it inherits the architectural features such as windows, internal walls and text. I completely rewrote the geometry, wall styles, infill and parts placement, added some finer geometry such as frame ba and ISO1161 corner castings, and made it customizable. The reference veion of the script is maintained on Github at Usage Use the customizer to generate the kind of container you want, which gives you a fair amount of customization. Or download the script into OpeCAD for additional customization, such as architectural features like windows, internal walls, icribed text, or cutaway side panels. Some of the easily accessibly customization features include: Dimeio: length, width and height) Scale - standard is 1:100, set to 1:87 for H0 scale, 1:160 for N scale Thickness of walls in the model, so that it is scale-independent Wall style: flat, corrugated, doo, or no walls at all Fill style: hollow or solid box, tanktainer or internal architectural walls Assembly style: a box, a box with a separate lid, or parts that can be glued together Basic customization The script generates a standard shipping container with a frame and ISO 1161 corner castings. Most aspects of the container's appearance, such as the container size and the wall styles, can be customized by changing single variables in the script. Measurements The measurements of the container are specified by CONTAINER_LENGTH = 6.06; CONTAINER_WIDTH = 2.44; CONTAINER_HEIGHT = 2.59; SCALE = 100;
WALL_THICKNESS = 1.5; INTERNAL_WALL_THICKNESS = 1.5; ASSEMBLY_TOLERANCE = 0.1; Here, the fit four measurements refer to the container dimeio and the scale: CONTAINER_LENGTH: Length of the container (in m). Standard lengths are 6.06 for a 20', 12.19 for a 40' container. CONTAINER_WIDTH: Width of the container (in m). The standard width is 2.44. CONTAINER_HEIGHT: Height of the container (in m). Standard heights are 2.59, or 2.90 for a High Cube container. SCALE: The scale of the model. Standard is 100, tcommon scales would be 87 for H0 scale, 160 for N scale and so on. The other settings refer to the generated model: WALL_THICKNESS: The thickness of the container's external walls (in mm). INTERNAL_WALL_THICKNESS: The thickness of the container's internal walls (in mm). For placing internal walls, see "Architectural features" below. ASSEMBLY_TOLERANCE: The tolerance between wall parts when generated as separate parts. By default this is 0.1 mm. Styles The look of the container is determined by a set of style directives: FRONT_WALL_STYLE="door"; BACK_WALL_STYLE="ridges"; RIGHT_WALL_STYLE="ridges"; LEFT_WALL_STYLE="ridges"; TOP_COVER_STYLE="ridges"; BOTTOM_COVER_STYLE="flat"; CONTAINER_INFILL_STYLE="walls"; Wall styles All walls support the following styles: "none": generates an empty wall that coists only of the container frame. "flat": generates a flat wall without ridges.
"ridges": generates a corrugated wall with ridges. The front and back walls (FRONT_WALL_STYLE, BACK_WALL_STYLE) additionally support the following style: "door": generates a simple door that is iet somewhat and has a few ridges, hinges, a center divider and a horizontal latch. The bottom cover (BOTTOM_COVER_STYLE) additionally supports the following style: "crossba": generates a container bottom with a few wide crossba.
Fill styles The Fill style (CONTAINER_INFILL_STYLE) determines the container's interior. Currently there are the following fill styles: "none": generates a hollow, empty container. "infill": generates a solid container that is easy to print as a single object without overhangs. "walls": generates a hollow container with walls placed on the iide (see "Architectural features" below). "tank": generates a tanktainer with a single tank on the iide. Most useful with the walls set to "none". Assembly The container can be generated as a solid object or disassembled into several pieces. This is governed by the assembly style directive: ASSEMBLY_STYLE = "parts"; DISTANCE_BETWEEN_PARTS = 3; Currently the following assembly styles are supported: "box": generates the container as a single box "lid": generates the container as a box, and places the top cover separately "parts": generates all walls separately, face up, except the bottom, which will be generated in place. This makes it easy to print interior walls, but it also mea that a container bottom with ridges can be hard to print. "faceup": generates all walls separately, face up. This assembly style mea that interior walls cannot be placed, as they would extend below the Z plane. They will be ignored. "facedown": generates all walls separately, face down. "custom": custom placement for every part, see below. All wall parts are generated with 45° edges in order to make it easier to assemble the container. The part distance DISTANCE_BETWEEN_PARTS (in mm) specifies the distance between the disassembled parts. Custom assembly If the standard assembly styles are not flexible enough (e.g. if you have a window in a single wall that needs to be placed upside down for printing without supports), you can customize the placement for all walls individually: CUSTOM_FRONT_WALL_PLACEMENT = "faceup"; CUSTOM_BACK_WALL_PLACEMENT = "faceup"; CUSTOM_LEFT_WALL_PLACEMENT = "facedown"; CUSTOM_RIGHT_WALL_PLACEMENT = "faceup"; CUSTOM_TOP_COVER_PLACEMENT = "inplace"; CUSTOM_BOTTOM_COVER_PLACEMENT = "inplace"; inplace = facedown There are three placement optio for each wall: "inplace": generates the wall in place "faceup": generates the wall face down. This mea it can be printed on the flat back side, with 45° overhangs (and some extra overhangs for the frame parts) "facedown": generates the wall in place. This mea that it needs to be printed on the ridged front side. This may be useful in some cases to avoid overhangs. Note that there is no sanity check. It's easy to generate a container with all side walls placed separately, but with the top generated"inplace" and hanging in the air. Advanced customization Architectural features Advanced architectural features, such as openings, windows, interior walls or text, can be placed individually. In order to define such architectural features, find the FEATURES = [ list and add your desired features in there. Whether architectural features are placed or not can be controlled separately. Placement of windows (including openings) and interior and exterior text can be controlled using the dedicated variables: PLACE_WINDOWS = false; PLACE_TEXT_INT = false; PLACE_TEXT_EXT = true; The placement of interior walls is enabled by setting the fill style of the container to "walls". Openings An opening is a hole in the container from floor to ceiling, essentially a missing section of wall. Example: opening(wall=RIGHT, x=0.5, width=4) Here: wall: the wall you want the opening on: RIGHT, LEFT, FRONT,BACK x: the position (in m) where the opening starts width: the width (in m) of the opening Windows A window is a smaller opening in a container wall with a frame. Note that window frames stick out at 90° angles, so they need some care when 3D-printing. Containe with windows are easier to print as separate walls (using the "parts" assembly directive). Example: window(wall=LEFT, x=0.75, y=0.8, width=1.8, height=1.7) Here: wall: the side you want the window on: RIGHT, LEFT, FRONT,BACK x: the position (in m) to start the window y: the height off the ground (in m) of the window width: the width (in m) of the window height: the height (in m) of the window Note that there is no sanity check of the window's dimeio, so you need to take care that your windows are not higher or wider than the container wall. Walls Walls are placed internally in the container. Walls can be either be placed lengthwise (in X direction) or across (in Y direction). Example: wall(dir="x", x=1, y=1.2, length=1.5) Here: dir: the direction of the wall: "x", "y" x: the position (in m) to start the wall y: the position (in m) to start the wall length: the length (in m) of the wall Interior text Interior text is embedded in the floor of the container in the iide. So far it can be placed only in X direction. Example: text_int(text="Robe", x=0.25, y=2.1, size=6) text: the text to show (keep it short!) x: the position (in m) to start the text y: the position (in m) to start the text size: the text font size. For the font, Arial is used by default. Exterior text Exterior text is embedded in the floor of the container on the outside. This makes most see with the "flat" bottom style, as other bottom styles will interfere with the text. So far it can be placed only in X direction. Example: text_ext(text=str("1:",SCALE), x=0.25, y=2.1, size=6) text: the text to show (keep it short!). In the example, this prints the scale of the model into the bottom, using the OpeCADstr() function x: the position (in m) to start the text y: the position (in m) to start the text =size=: the text font size. For the font, Arial is used by default. Other customizable dimeio Most dimeio of the container are specified through variables and can be customized. Note that it is easy to break the model in this way. Some of the more useful customization optio specify the dimeio of the container frame, and the orientation of the side panels and walls to the container frame: FRAME_THICKNESS = 0.10: Dimeion of the container frame (in m). The default assumes 10 cm or 4x4" ba. FRAME_IET_X = 0.02: Offset of the vertical frame ba in X direction (in m), default: 2 cm. FRAME_IET_Y = 0.02: Offset of the vertical frame ba in X direction (in m), default 2 cm. TOP_IET = 0.02: Offset of the top panel below the top frame (in m), default 2 cm. SIDE_IET = 0.03: Offset of the side panels towards the iide of the container (in m), default 3 cm. The defaults look good in a model. However, they can make the container hard to print when the side panels or frame parts are printed on the side. In those cases, it may be preferable to set them to 0. Todo Here are some of things that could be supported in the future: Support rotation of text More realistic corner placement for very long containe (45' and 53'), which have corner castings also along the ba Wall ridges at 90° angles look OK in the model, but customizable angles would be better Forklift holes for 20' containe (in both X and Y direction) More different door styles, e.g. a simple door that prints well at small scales, or a more complex door that has more realistic latches.