The Packer object is the key element for parametric object modeling. It arranges its child objects into a row and scales
them to fill the space of the packer using a variety f options. 2D and 3D object arrays can be built by stacking
The property gadget of packer has the options listed below.
Drag And Drop Snapping options define what happens, when a packer object is dragged from the object browser window
and dropped to a view window. The packer object has an ability to search closest other objects and snap into them. Snapping is based on
collision detection. You can use the Hit Invisible property of geometric primitives to control and optimize snapping.
- Space: Snapping orientation.
- Object: Snapping search directions (see Dir1, Dir2 and Dir3 below) are defined in the object space of the packer.
- World: Snapping directions are defined in world space.
- IPlane: Snapping directions are defined in the current input plane of the view window.
From the left: Object, Input Plane and World spaces
- Dir1: The primary snapping direction. Snapping can move the packer to the direction of a fixed axis, in a 2D plane with
a given density (see Sampling below), or in all directions. Note that snapping directions are examined starting from the pivot
point of the packer; this is sometimes a relevant factor. Setting Dir1=None disables the snapping functionality (other directions
are not considered).
From the left: Z, XZ and XYZ(=all) snapping directions
- Dir2: The optional secondary snapping direction, which takes place after the primary snapping has been processed. For example,
a kitchen wall cabinet can first snap to a nearest wall and then move side by side to a closest other cabinet. Note that if snapping space
is set to Object, the secondary snapping happens in already rotated object space (see the Rotate option below).
- Dir3: The optional third snapping direction. For example, a kitchen cabinet designed to stand on a floor can first snap to the closest
wall, then snap to the floor level and finally snap to the nearest other cabinet.
- Rotate: The packer can be rotated to match the surface tangent at the snapping position. For example, a kitchen cabinet should turn its
backside against the wall to which it snaps. Rotate options define the 'route' of rotation as follows:
- Direct: The packer axis defined using the Axis option below is rotated to match the surface tangent using a single (shortest route)
rotation. If the target surface has unusual orientation, this may tilt the object.
- H, P: The object is first rotated around its vertical Y axis (Heading angle) and then around the axis perpendicular
to the selected fitting axis (Pitching angle). Two-step rotation eliminates tilting (i.e. Banking angle remains zero).
- H: The packer is rotated only around the Y axis.
Three cubes snapped to a tilted plane using Direct, HP and H (=heading only) rotation
- Axis: The axis which is rotated to match the surface tangent. The 8 main axis directions +-X, +-Y, +-Z of the selected snapping
space are available. The option Any selects the axis that matches the tangent initially best i.e. selects the minimal required
- Fit: Defines what is snapped to the found target point.
- BBox: The bounding box of the packer is fitted to the snap target point.
- Pivot: The pivot point of the packer is moved to the snap target point.
- Surface: The surface of the child objects of the packer is fitted to the snap target point using
bi-directional collision detection.
Bounding box, Pivot and Surface fitting
- Range: A distance threshold for snapping. Surfaces further than this are not considered in snapping.
- Sampling: Defines how many directions are examined in 2D and 3D snapping cases. For example, if Dir1=XZ and sampling
is at the minimal level 1, four directions X, X-, Z and Z- are examined. If level is 2, 8 directions at 45-degree intervals are examined.
Geometry Managing options:
- Width: The current width (x dimension) of the packer object
- Height: The height (y dimension) of the packer
- Depth: The depth (z dimension) of the packer
- Min. Width, Min. Height, Min. Depth: You can set a minimal size for the packer object using these controls.
For example, a kitchen cabinet assembled from 16 mm plate must be at least 32 mm wide (in practice at least 10 cm wide).
The minimal size is initialized to the size of the packer at its creation time.
- X, Y, Z Modulo: If X modulo is nonzero, Width of the packer is automatically rounded to a multiply of the modulo value. Y and Z
dimension work in a similar way. In other words, Modulo values define an object specific snapping grid for the size. The feature is useful
when resizing the object manually using the edit handles of the packer. For example, allowed standard width values of kitchen cabinets
can be multiplies of 10 cm.
- Orientation: Defines the direction in which the packer arranges its child objects.
- Target: Selects a child object whose packing is controlled using the options below. If target=All, you can set packing options to
all child objects at once.
- Expand: Expand the packing space reserved for the selected target to fill the packer.
- Unmanage: Disables packer management for the selected target. For example, material map objects are
usually unmanaged children.
- Fill X, Fill Y, Fill Z: The selected target is stretched in the selected direction X, Y and Z to fill the packing
space reserved for it.
- Pad X, Pad Y, Pad Z: Adds extra padding space around the selected target. The padding space is not filled
even when the respective Fill option is enabled.
Two spherical objects packed. Both have Expand enabled and hence occupy an equal amount of space. The sphere at the right side has also Fill X enabled.
- IPad X, IPad Y, IPad Z: Expands the packing space reserved for the selected target.
- Anchor: The position of the selected target inside the packing space. Not relevant when the packing space is as large as the size of
the target (Expand disabled or Fill options enabled to fill a dimension)