MAPTOMODEL | MANUFACTURING | MARK | MEANDER | MENU | MIRROR | MITER | MODULE | MOVE
Function
Map a device to its spice subcircuit model or spice model card.
Syntax
MAPTOMODEL name ..
See also SIM, EXPORT, ADDMODEL.
The MAPTOMODEL command opens a dialog where you can map a part to a specific spice subcircuit model, spice model card, or intrinsic spice model. If the device is not already a spice-compatible device, then the ADDMODEL command is initiated in the background first. MAPTOMODEL shows a dialog where the user can set the model to use, and also map the pins from the part to the model inputs. Note that if a gate is selected, the spice model is attached and mapped considering all gates in the device set, and it applies to all gates. Command available as context-menu item on nets in schematic, as well as through command line and with a toolbar command button.
Function
Toggles the manufacturing dialog.
Syntax
MANUFACTURING;
MANUFACTURING EXPORT;
MANUFACTURING CAM;
The MANUFACTURING command provides access to the manufacturing flyout and the CAM exporter. MANUFACTURING (without parameters) toggles the manufacturing flyout window in the board editor. The manufacturing flyout provides manufacturing information about the board such as dimensions, drillmaps, additional views... MANUFACTURING CAM opens the CAM dialog and MANUFACTURING EXPORT creates a ZIP archive with Gerber and Excellon data based on the current design. These commands are only available in the board editor.
Function
Defines a mark on the drawing area.
Syntax
MARK
MARK;
See also GRID.
The MARK command allows you to define a point on the drawing area and display the coordinates of the mouse cursor relative to that point at the upper left corner of the screen (with a leading 'R' character). This command is useful especially when board dimensions or cutouts are to be defined. Entering MARK; turns the mark on or off.
Before using the MARK command, choose a grid fine enough for accurate position determination.
Function
Balance lengths of differential pairs and increase the length of a signal segment.
Syntax
MEANDER [length] ..
Mouse keys
Ctrl+Left measures the length of the selected signal segment.
Ctrl+Shift+Left measures the maximum length of the selected signal segments.
Right toggles between symmetrical and asymmetrical meanders.
See also ROUTE.
The MEANDER command can be used to balance the lengths of signals forming a differential pair. Click a wire of a differential pair and move the mouse cursor away from the selection point. If there is a difference in the length of the two signals, and the current mouse position is far enough away from the selection point, a "meander" shaped sequence of wires is drawn that increases the length of the shorter signal segment. An indicator attached to the mouse cursor shows the target length (length of the longer signal segment), as well as the deviation (in percent) of the two signals from the target length.
The meander starts at the first click point and extends to the second point the mouse is moved to. The maximum (perpendicular) size of the meander is defined by the distance of the mouse to the meandered wire.
If a single meander isn't enough to balance the lengths, you can add further meanders at different locations.
At any time you can enter a value on the command line to set the target length. This can be used for all signals, not just for differential pairs.
When meandering a differential pair with a given target length, the meander first tries to balance the length of the two signal segments that form the differential pair, and then increases the total length of both segments.
To reset the target length you can either restart the MEANDER command or enter a value of 0 on the command line.
If you click a signal wire with the Ctrl key pressed, the length of that signal segment is measured and displayed on the screen in a little indicator near the mouse position. You can use this to measure the length of a given signal segment and use that as the target length for meandering another segment. If you do the measuring with Ctrl+Shift pressed, the maximum length of this or any previously selected segments will be taken. This can be used to easily determine the maximum length of several bus signals and then meandering each of them to that length.
By default a meander is generated symmetrically, extending to both sides along the selected wire. If this is not what you need, either because there is only space on one side, or because the longer one of the wires of a differential pair shall not be elongated, you can switch to asymmetric mode by clicking the right mouse button. The actual mouse position will decide which side of the wire the meander extends to. Move the mouse around to find the proper position.
The value defined in the Design Rules under "Misc/Max. length difference in differential pairs" is used to select the color when displaying the length deviations while drawing a meander. If the percentage is shown in green, the respective segment lies within the given tolerance. Otherwise the percentage is displayed in red. The default for this parameter is 10 mm.
Function
Customizes the textual command menu.
Syntax
MENU option ..;
MENU;
Use MENU to create a user-specific command menu.
The complete syntax specification for the option parameters is
option := command | submenu | delimiter command := [ icon ] text1 [ ':' text2 ] submenu := [ icon ] text '{' option [ '|' option ] '}' icon := '[' filename ']' delimiter := '---'
A menu option can be a simple command, as in
MENU Display Grid;
which would set the menu to the commands Display and Grid. Display and Grid are interpreted both as menu text and as commands.
It can be an aliased command, as in
MENU 'MyDisp : Display None Top Bottom Pads Vias;' 'MyGrid : Grid mil 100 lines on;';
which would set the menu to show the command aliases MyDisp and MyGrid and actually execute the command sequence behind the ':' of each option (text2, see above) when the respective button is clicked.
It can also be a submenu button as in
MENU 'Grid { Fine : Grid inch 0.001; | Coarse : Grid inch 0.1; }';
which would define a button labeled Grid that, when clicked opens a submenu with the two options Fine and Coarse.
Character '|' is only necessary as a separator in submenu entries (submenu, see above). The special option '---' can be used to insert a delimiter, which may be useful for grouping buttons.
A command button can display an icon by preceding the button text with the file name of an icon, enclosed in square brackets, as in
MENU '[/path/to/myicon.png] Set a fine grid : Grid inch 0.001;';
Here, the button displays only the given icon, and the tooltip says "Set a fine grid" when the mouse cursor is hovered over the button. The filename need not be enquoted (like for masking spaces).
If an icon is used in a popup menu, like
MENU 'Grid { [/path/to/myicon.png] Set a fine grid : Grid inch 0.001; }';
then both the icon and the text will be displayed, as with any other popup menu.
If the icon's file name doesn't include a directory path, it is searched for in the current working directory and in the EAGLE 'bin' directory. Note that any option that consists of more than a single word, or that might be interpreted as a command, must be enclosed in single quotes. If you want to use the MENU command in a script to define a complex menu, and would like to spread the menu definitions over several lines to make them more readable, you need to end the lines with a backslash character ('') as in
MENU 'Grid {\
Fine : Grid inch 0.001; |\
Coarse : Grid inch 0.1;\
}';
MENU Move Delete Rotate Route ';' Edit;
would create a command menu that contains the commands Move...Route, the semicolon, and the Edit command. The command
MENU;
switches back to the default menu. Note that the ';' entry should always be added to the menu. It is used to terminate many commands. Complex example:
MENU '[draw.png] Draw {\ Wire {\ Continous : CHANGE STYLE Continuous; LINE |\ DashDot : CHANGE STYLE DashDot; LINE |\ Help : HELP LINE;\ }|\ Rectangle {\ RECT |\ Help : HELP RECT; \ }\ }\ [export.png] Export {\ Script : EXPORT SCRIPT |\ Image : EXPORT IMAGE\ }\ MyScript : SCRIPT MyScript.scr;';
This menu consists of the 3 entries: Draw, Export and MyScript, whereat Draw and Export have submenus and are supplied with icons. Draw consists of the submenus Wire and Rectangle, whereat Wire consists of the entries Continuous, DashDot and Help and Rectangle consists of the entries RECT (text and command RECT) and Help.
The submenu of Export has the entries Script and Image.
Function
Mirrors objects and groups.
Syntax
MIRROR ..
MIRROR name..
Mouse keys
Ctrl+Right mirrors the group.
Using the MIRROR command, objects may be mirrored about the y axis. One application for this command is to mirror components to be placed on the reverse side of the board.
Parts, pads, smds and pins can also be selected by their name, which is especially useful if the object is outside the currently shown window area.
Attributes of parts can be selected by entering the concatenation of part name and attribute name, as in R5>VALUE.
Components can be mirrored only if the appropriate OriginsTop/OriginsBottom layer is visible.
When footprints are selected for use with the MIRROR command, connected wires on the outer layers are mirrored, too (beware of short circuits!).
Note that any objects on inner layers (2...15) don't change their layer when they are mirrored. The same applies to vias.
Parts cannot be mirrored if they are locked, or if any of their connected pads would extend outside the allowed area (in case you are using a / of EAGLE).
In order to mirror a group of elements, the group is first defined with the GROUP command and polygon in the usual manner. The MIRROR command is then selected and the right mouse button is used to execute the change. The group will be mirrored about the vertical axis through the next grid point. Wires, circles, pads and polygons may not be individually mirrored unless included in a group.
Text on the solder side of a pc board (Bottom and bPlace layers) is mirrored automatically so that it is readable when you look at the solder side of the board. Mirrored text in a schematic will be printed on the other side of its origin point, but it will still remain normally readable.
Function
Miters wire joints.
Syntax
MITER [radius] ..
Mouse keys
Left&Drag dynamically modifies the miter.
Right toggles between round and straight mitering.
See also SPLIT, LINE, ROUTE, POLYGON.
Use MITER to take the edge off a point where two wires join. The two existing wires must be on the the same layer and must have the same width and wire style.
If you select a point where exactly two straight wires join, an additional wire will be inserted between these two wires, according to the given radius. If you click&drag on such a point with the left mouse button, you can define the mitering wire dynamically.
If you select a wire (which may also be an arc) somewhere in the middle between its end points, and that wire is connected to exactly two other straight wires (one at each end), the selected wire will be "re-mitered" according to the given radius. If you click&drag on such a wire with the left mouse button, you can define the mitering wire dynamically.
If radius is positive, the inserted wire will be an arc with the given radius; if it is negative, a straight wire will be inserted (imagine the '-' sign as indicating "straight"). You can toggle between round and straight mitering by pressing the right mouse button.
The radius you give in the MITER command will be used in all other commands that draw wires in case the wire bend style is one of the 90 or 45 degree styles. If you have set round mitering, it will apply to both the 90 and 45 degree bend styles; in case of straight mitering only the 90 degree bend styles are affected.
Function
Creates a module. Adds module instances into a sheet.
Syntax
MODULE [[width height] 'module_name'] ['prefix*'] [+offset] [orientation] ..
MODULE [[width height] 'module_name'] ['module_instance_name'] [+offset] [orientation] ..
MODULE 'variant_name@module_name' ['module_instance_name'] [+offset] [orientation] ..
Mouse keys
Center mirrors the module instance.
Right rotates the module instance.
Shift+Right reverses the direction of rotating.
Use MODULE to create modules used in hierarchical schematics and add module instances into a sheet.
If +offset is given, the current module instance will use this offset for naming the elements. The value has to be a multiple of 100 (for example +100). Note that this is only supported for module instances in the main schematic (details see below).
The orientation of the module instance may be defined textually using the usual definitions as listed in the ADD command (R0, R90 etc.).
The PORT command is used to add ports to a module.
A module instance adds the parts and nets of that module to the board. Net names are composed using the module name and the net name (for example 'MODULE1:N$1'). If a net is exported through a PORT, it could be overwritten with a net connected to this port. Part names of a module instance with an offset are generated by adding this offset (for example 'R17' with offset '100' becomes 'R117', details see below). If no offset is set, part names are composed the same way as net names (for example 'MODULE1:R17').
In order to choose a specific assembly variant of the module, its name has to be prepended the module name (for example 'V1@ABC').
If a prefix is given in the module definition, it will be used for the automatic generation of the module instance name. For syntactic distinction on the command line, the prefix has to be followed by an asterisk ('*'). If neither prefix nor a name for the module instance is given, the module name will be used as a prefix.
Use the NAME command to modify module instance names.
The offset notation for module instances has the advantage of creating shorter names but it has to be used carefully, because it can lead to naming conflicts for the elements.
Example:
If you have parts R1-R9 in a module M and on the schematic main level the part (resp. element) names R201 to R209 are already used, it's not possible to create a module instance MI of M with offset 200, because the elements generated would also occupy names R201 to R209. The same is if there's another module instance with parts R101 to R109 and offset 100. EAGLE checks and refuses that with an error message in such cases. It can easily be solved by trying another positive offset or using offset 0 (i.e. composite notation).
Even if the offset notation works without conflicts it can still be confusing: in the upper sample if you decide to change to offset 300 but have parts on main level with names R310, R311 etc., it's difficult to recognize that these parts do NOT belong to MI but to main level. Because of that, it's recommended to make the offsets large enough to avoid such misunderstandings.
Depending on what you intend to do, the composite notation using short module instance names may be the better alternative.
Also in order to reduce misunderstandings, any offset can only be used once in the whole schematic. The properties dialog for module instances allows changing the offset only to those values that are not yet occupied (or to 0).
Module instances can also be placed into a module sheet. This way a hierarchy of arbitrary depth can be created. Offsets > 0 are not supported for deeper hierarchy levels.
Example: Instance F0 uses module FILTER with offset 100, instance SUB resides in FILTER and uses SUBMODULE with offset 0. For the elements corresponding to the parts for FILTER offset 100 is applied, for the elements (and also signals) corresponding to SUBMODULE the composite notation is used like a directory path, the same for nets/signals. For example, the name of the element corresponding to C1 in SUBMODULE will be M0:SUB:C1. (Remark: if offsets were allowed for deeper hierarchies as well, there would be even more possible name conflicts and misunderstandings).
The size of a module is set if width and height are given before the module name.
The MOVE command can be used to edit the module symbol. The border of the module symbol can be selected with Ctrl+Left for resizing it.
Function
Moves objects.
Syntax
MOVE ..
MOVE name ..
Mouse keys
Ctrl+Left selects an object at its origin or modifies it (see note).
Shift+Left selects the whole polygon (see note).
Ctrl+Right selects the group.
Left&Drag immediately moves the object.
Ctrl+Right&Drag immediately moves the group.
Center mirrors the selected object or the group.
Right rotates the selected object or the group.
Shift+Right reverses the direction of rotating.
See also GROUP, LOCK, RATSNEST.
The MOVE command is used to move objects.
Parts, pads, smds, pins and gates can also be selected by their name, which is especially useful if the object is outside the currently shown window area. Note that when selecting a multi-gate part in a schematic by name, you will need to enter the full instance name, consisting of part and gate name.
Attributes of parts can be selected by entering the concatenation of part name and attribute name, as in R5>VALUE.
Elements can be moved only if the appropriate OriginsTop/OriginsBottom layer is visible.
The MOVE command has no effect on layers that are not visible (refer to DISPLAY).
The ends of wires (tracks) that are connected to an element cannot be moved at this point.
When moving elements, connected wires (tracks) that belong to a signal are moved too (beware of short circuits!).
If an object is selected with the left mouse button and the button is not released, the object can be moved immediately ("click&drag"). The same applies to groups when using the right mouse button. In this mode, however, it is not possible to rotate or mirror the object while moving it.
Parts cannot be moved if they are locked, or if any of their connected pads would extend outside the allowed area (in case you are using a limited edition of EAGLE).
There are 3 different modes the MOVE command utilizes:
Preserve Angles mode will try to maintain the original angles when moving wires or objects connected to wires. When holding Ctrl wires that are not orthogonal will be snapped to grid.
Free mode will not try to maintain the angles and just move the selection following the mouse.Disconnect mode will disconnect the selected objects from their connections (pads, vias, wires, ...). This can be useful to re-route a subcircuit or an element without disrupting the circuit that is already in place.
If, following a MOVE command, two wires from different signals are shorted together, they are maintained as separate signals and the error will be flagged by the DRC command.
In order to move a group, the selected objects are defined in the normal way (GROUP command and polygon) before selecting the MOVE command and clicking the group with the right mouse button. The entire group can now be moved and rotated with the right mouse button.
If you select a polygon wire with Shift pressed, the polygon can be moved as a whole.
If a supply pin (Direction Sup) is placed on a net, the pin name is allocated to this net. Pins or ports placed on each other are connected together.
If disconnected pins of an element are placed on nets or pins then they are connected with them.
If nets are moved over pins they are not connected with them.
Normally a selected object remains within the grid it has been originally placed on. If you press Ctrl while selecting an object, the point where you have selected the object is pulled towards the cursor and snapped into the current grid. If you select a wire somewhere in the middle (not at one of its end points) with Ctrl pressed, the end points stay fixed and you can bend the wire, which changes it into an arc. The same way the curvature of an arc (which is basically a wire) can be modified.
If you select a rectangle at one of its corners with Ctrl pressed, you can resize both the rectangle's width and height. Selecting an edge of the rectangle with Ctrl pressed lets you resize the rectangle's width or height, respectively. Selecting the rectangle at its center with Ctrl pressed pulls it toward the cursor and snaps it into the current grid.
If you select a circle at its circumference with Ctrl pressed, the center stays fixed and you can resize the circle's diameter. Selecting the center point this way pulls it toward the cursor and snaps it into the current grid.
If you select a port with Ctrl pressed, only the port is moved. Of course, this port moving takes affect on all instances of this module.
You can move part of a sheet to another sheet of the same schematic without affecting the board (in case Forward&Back Annotation is active) by defining a GROUP that contains the objects you want to move, selecting that group with the MOVE command and then switching to the desired sheet, with the MOVE command still active and having the group attached to the cursor. In the new sheet, the MOVE command will be active again and will have the previously defined group attached to the cursor. Now place the group as usual, and all the affected objects will be transferred from the original sheet to the current sheet. If the current sheet is the same as the original sheet, nothing happens. Note that only wires that have both ends in the group will be transferred, and any part that is transferred takes all its electrical connections with it, even if a net wire attached to one of its pins is not transferred because its other end is not in the group. In case a pin in the new sheet has an electrical connection, but no other pin, wire or junction attached to it to make this visible, a junction will be automatically generated at this point.
This process can even be scripted. For instance
edit .s1 group (1 1) (1 2) (2 2) (2 1) (1 1) move (> 0 0) edit .s2 (0 0)
would switch to the first sheet, define a group, select that group with MOVE, switch to the second sheet and place the group. Note the final (0 0), which are coordinates to the implicitly invoked MOVE command. See the EDIT command if you want to just reorder the sheets.
You can MOVE objects by simply click and drag on any object already in the current group with Group Default On options enabled.