Antiprism Up Next
Home
Programs
Examples
Album
Download
Development
Forum
About

off_align - alignment of OFF files

Usage    |    Examples    |    Notes

Usage



Usage: off_align [options] [input_file]

Read a base file and brick file in OFF format, and use vertices or faces
to position the brick with respect to the base. The brick may be repeated
symmetrically and/or merged with the base. If input_file is not given the
program reads from standard input.

Options
  -h,--help this help message (run 'off_util -H help' for general help)
  --version version information
  -v <arg>  align by vertices, arg is a comma separated list of a brick
            geometry (if empty use base) optionally followed by 'r' (reverse
            brick orientation) followed by two, four or six points given as
            the vertex index number in the OFF files (starting at 0). The base
            points are all given first and then the brick points.
            Formats:
               u1,v1 - point alignment
                  translation u1-v1 (so v1 of brick moves to u1 of base)
               u1,u2,v1,v2 - line alignment
                  point alignment as above followed by rotation through
                  u1 perpendicular to u1u2 and v1v2 to align u1u2 and v1v2.
               u1,u2,u3,v1,v2,v3 - face alignment
                  line alignment as above followed by a rotation
                  around u1,u2 so v3 lies in plane of u1u2u3.
  -f <arg>  align by face index, arg is a comma separated list of a brick
            geometry (if empty use base) followed by up to three numbers
            separated by commas: base face index, brick face index
            (default: 0), polygon alignment selection number (default: 0)
  -F <arg>  align and combine polyhedra by face index, arg is a comma
            separated list of a brick geometry (if empty use base) followed
            by up to three numbers: base face index, brick face index
            (default: 0), polygon alignment selection number (default: 0).
            Brick is after base, bond vertices are merged, bond faces are
            removed
  -M <val>  merge parts, select and order parts in the output, val may be:
               default (0):    any combined part (-F) followed by any brick
                               parts (-v, -f)
               brick (1):      brick parts only
               base_brick (2): base part, possibly combined (-F). followed
                               any brick parts (-v, -f)
               brick_base (3): brick parts (-v, -f), followed by base part
  -y <sub>  repeat bricks according to symmetry of base. sub is symmetry
            subgroup (Schoenflies notation) or 'full' optionally followed
            by a ',' and conjugation type (integer)
  -o <file> write output to file (default: write to standard output)

Examples

See also, off_align examples with images.

Bond vertices 0,2,4 of an octahedron brick to vertices 0,1,2 of a tetrahedron base, and output both parts in the order brick (octahedron) followed by base (tetrahedron)

   off_align -M brick_base -v oct,0,1,2,0,2,4 tet | antiview


Augment face 1 of an icosahedron, making a polyhedron with 22 faces
   off_align -F tet,1 icosa | antiview


Notes

This can be used to build larger structures using polyhedra as bricks.

When using -F the specified faces are deleted from the output. Faces in the base polyhderon that come after the bonding face will have their index numbers decreased by one in the output.

When aligning models into a collection one at a time with repeated calls of off_align, -M brick_base will preserve the brick index numbers (useful for a helix), and -M base_brick will preserve the base index numbers (useful to add new parts to the same base).

Parts aligned to have coincident faces (in pairs) can have these faces removed later with off_util -M b.

Options -f and -F must take an option argument. If the argument should be empty then give the argument as a comma ','. This will indicate that the brick geometry is empty (use the base geometry for the brick) and all following parameters are defaults.

For -f and -v, option -y repeats the aligned brick with the specified symmetry group. For -F, -y selects a face set on the base model to bond to, and there is only one bond for each of these faces. If the aligned brick model is not fixed by the same symmetry subgroup that fixes the bond face (i.e. maps it onto itself), then the final model won't have the symmetry given in -y.

Here is an example aligning the side of a triangular prism with a cube face, the result has Oh symmetry

    off_align -f pri3,0,2 -y full cube | antiview


And the same example using bonding, the warning is triggered and the result does not have Oh symmetry
    off_align -F pri3,0,2 -y full cube | antiview


Sometimes the warning will be redundant
    off_align -F pri3 -y full oct | antiview


Models with coincident vertices will have those vertices merged when using option -F.


     Next: off_util - utilities for OFF files
     Up: Programs and Documentation


Home   |   Programs   |   Examples   |   Album   |   Download   |   Development   |   Forum   |   About

Contact: adrian@antiprism.com      -      Modified 1.6.2022