## Name

edit — Edits objects, using subcommands.

## Synopsis

`edit` [ (1) subcommand [(2) args] `object`... ]
(1) help | translate | rotate | scale | ...
(2) [(3) from] (4) to [ (2) more_args ...]
(3) [`-n`] `-k` { (6) from_object | (5) from_position }
(4) [`-n`] [ `-a` | `-r` ] { (6) to_object | (5) to_position }
(5) { (7) coords } | { [ `-x` { `x` | (6) x-obj } ] [ `-y` { `y` | (6) y-obj } ] [ `-z` { `z` | (6) z-obj } ] }
(6) [`path/`] `object` [ (7) offset_distance ]
(7) `x` [ `y` [`z`] ]

## DESCRIPTION

Operates on objects in the database, solely through the use of subcommands. The flexibility of the edit subcommands lies in their utilization of a common style of syntax. Coordinates in model space, offsets, and objects are all accepted interchangeably as reference points. A single reference point is equivalent to an absolute point in model space. A pair of refence points specifies a distance or an angle, and is supplied as a set of from - to arguments (a from argument is similar to the concept of a keypoint). Reference points may be incomplete, and specify only one or two coordinates.

The format of the standard options accepted by subcommands, `-n`, `-k`, `-a`/`-r`, and `-x`/ `-y`/`-z`, is defined here. The interpretation of these options, however, is left up to the implementation of a given subcommand.

All edit commands interpret a lone point ( . ) as a special operator, called the batch operator. The batch operator is accepted as an argument to the options `-k`, `-a`, and `-r`. In a batch operation, each individual object is operated on using the bounding box center of itself in place of the batch operator. While all object's move together in a non-batch operation, in batch operations, each object may move independently of all other object's.

If any from coordinates are omitted, they default to the bounding box center of the first object is used as from. To use the natural origin of the first object as from, from_object must be manually set to whatever object is set to. If any to coordinates are omitted, they default to the values set in from.

The quantity and arrangement of standard edit arguments as well as their intepretation depends upon the subcommand. See the manual page for a given subcommand for more information on its usage:
`>` `man edit_`subcommandName``

## OPTIONS

`-n`

  Use the natural origin of the object specified as an argument to `-k`, `-a`, or `-r` rather than its bounding box center.

`-k`

  Sets the keypoint from to either from_object's bounding box center or from_position.

`-a`

  Sets the destination point to to either to_object's bounding box center or to_position.

`-r`

  Sets the destination point to to a point offset by to_position from the from point.

`-x` | `-y` | `-z`

  Sets the coordinate of a particular axis.

## EXAMPLES

Example 1. Get the authoritative list of available subcommands.

`>` `edit`
`>` `edit help`

  Prints usage and a list of available subcommands.

Example 2. Get the usage of a subcommand.

`>` `edit translate`

  Print usage of the translate subcommand

Example 3. Use the help subcommand to print extended usage of subcommands.

`>` `edit translate help`
`>` `edit help translate`

  Print extended usage of the translate subcommand. Each subcommand also accepts help as an argument, so that the extended usage is still available if edit translate is aliased to something else.

Example 4. A fake subcommand is used to show how standard edit arguments and nonstandard edit arguments are used.

`>` `edit fake_subcmd -B 12 -k sph.s 1.5 7 -a 0 0 0 cube.s`

  The nonstandard `-B` option is unique to fake_subcmd. An explanation of how it is used would be found in the manual for fake_subcmd, if there were one. The remaining options and arguments are standardized. The `-k` and `-a` options are used to specify a from - to pair, as defined in this manual for edit. The interpretation of the vector created by these points would be defined in the fake_subcmd manual.

## BUG REPORTS

Reports of bugs or problems should be submitted via electronic mail to <devs@brlcad.org>, or via the "cadbug.sh" script.