Customizing the Eagle Environment
Overview
Eagle is extremely flexible and a wide variety of environment specific settings can be made. In this section we'll discuss the various possibilities of customizing the Eagle system including the setting of environment variables. Everything from size of windows, layout, placement to database underactivity, file import and export and many other user definable environment variables may be set here. Modification of Eagle Environment variables, in many cases, may have a profound effect on the way the system operates and we therefore recommend that you read each section of this file before attempting to modify settings in the sections. For the most part the default settings are a working model for most applications, you may want to have parts of an application display difference characteristics at different times and this is where customized configuration comes in.
It is possible to use
Windows environment variables in preference to those set by the Eagle
environment. Refer to the ENVIRONMENT
and SYSENV commands and function
with the same name in the LET command
for more details.
Configuration
Eagle environment settings
are stored either in an configuration file, as system variables or as
Registry settings. The configuration file has typically been favoured
by developers.
The
default Eagle installation installs with configuration settings based
in the configuration file. The Configuration file in INI type
format is popular with users who want to edit and tweak INI files during
development without fear of interfering with other environment or Register
settings. Starting from version 12, the variables read
from and written to the INI file are "cached" in memory. This
means that changes made to the INI file outside the Eagle environment
during an Eagle session (hand coded changes or changes made by external
programs) are no longer synchronized with values in the Eagle cache, Eagle
and Eagle alone controls the cache. If you are new to Eagle or want
to experiment with a setting, try creating a backup installation based
in the configuration file.
The
registry-based version configuration is memory based and was prior to
version 12 was much faster than the configuration file option, especially
when a model contained many sub-models where the name is prefixed with
a variable (e.g.: -apparatus/volume/k0093476-1-23.mod). In these cases, all operations
requiring reading the model data (e.g.: SHOW, dynamic
pan/zoom, etc.) used to have to continuously access the configuration
file from the disk instead of reading from a memory based location. After
version 12.5 the configuration settings are cached in memory so this performance
issue is removed.

Configuration Locations and Shortcuts
By default configuration settings are located in the eagle.ini file. The storage of configuration files in the Windows directory or the Program Files directory is now discouraged by Microsoft in favour of application defined locations. The recommended standard location for application configuration files is operating system dependent
Documents and Settings\All Users\Application Data\Macrovision\Config\INI
or
Users\Default\AppData\Macrovision\Config\INI
Eagle installed with a standard installation will locate all user files in one of these locations. It is a good idea to made a duplicate of the configuration area for development purposes. This location will typically be used for development project work rather than altering the files in the standard installation with possible UAC (User Account Control) or other security related problems related to interactively editing files in restricted installation areas.
It is actually possible to place the Eagle configuration file in any location. This flexibility means that users can run multiple configurations of Eagle but only need to use one Eagle.exe executable. Different Shortcuts can be set by specifying -ini <filepath and filename> option in the shortcut properties. When this option is used Eagle will start using the settings in the <customfilename>.ini file instead of the default eagle.ini.
A shortcut for example the custom setting in the Target line could look something like this one
"C:\Program Files\Macrovision\EagleCDS\Bin\STD\Eagle.exe" -INI="C:\Users\David\ Documents\EagleCDS\Config\Ini\eagle.ini"
The
most common reason for customized versions of Eagle failing to start is
because the configuration settings file has not been found or if a system
setting is incorrect. If the system appears to open and then after a brief
flash, disappears, the first thing to check is validity of the custom
configuration file and location.
Configuration of Shortcut to define Document Mode
Eagle V14 is capable of operation in multi-document mode a new switch is provided to define the document modes to use at startup.
1. Single Document Interface(-sdi) - means Single Document Interface [ Same behavior as Eagle v.12]
2. Tabbed Document Interface(-tdi) - multi-windows layout based on a single container with tabs [similar to Excel]
3. Multiple Document Interface(-mdi), means Multiple Document Interface a typical multi-windows layout in which windoes can be arranged cascaded, tiled, etc.
4. Tabbed Multiple Document Interface(-tmdi), is a hybrid multi-windows layout of the Tabbed and Multiple Document modes.
The desired mode is defined at startup of Eagle by including the –sdi, -mdi, tdi, -tmdi switch in the starting shortcut.
"C:\Program Files\MacroVision\EagleCDS\Bin\STD\Eagle.exe" -mdi -ini="C:\ProgramData\Macrovision\EagleCDS\Config\Ini\eagle.ini"
Not setting the mode in the shortcut will start Eagle in legacy mode i.e.
-SDI. If you start Eagle in multi document mode you will have to
generate at least one Graphics Window using the GWINDOW
command.
Configuration of Shortcut to define Command Macro
It is also possible a specific macro to run as part of the startup command line or shortcut. this is achieved by using the -CMD switch and a macro to run.
"C:\Program Files\MacroVision\EagleCDS\Bin\STD\Eagle.exe" -cmd="c:\myapps\minieagle.cmd" ini="C:\Users\MyApps\\eagle.ini"
Configuration of Shortcut to use Registry
Eagle can also be started using registry settings with the syntax -reg=<name> entry instead of the -ini setting. This format allows the automatic use of own name Windows Registry settings. <name> is a new entry in the Windows registry that is located in: HKEY_LOCAL_MACHINE\SOFTWARE
Extreme care should always be taken when modifying Registry settings, please ensure backup procedures are in place before attempting to make modifications. Since the introduction of cached INI files the logical reasoning behind using the Registry is now less powerful and may only be required if it is essential for an application to meet specific Windows Logo standards.
A utility program called eagini.exe can be used to view the contents of any eagle INI file in the default Windows directory. The format of this file is Reg4. If you are having trouble with converting Prototype INI settings to Registry equivalents please contact support@macrovision.ie
Configuration Database Structure
The environment variables used by Eagle for startup and runtime settings, can be stored in sections or nodes. Since version 12.5.3 most entries in the database may be "Section-independent" allowing for custom organization of the database structure to suit the developer requirements. In our example database illustrated below we will use the structure familiar to most developers which conforms to the standard build.
[environment] - Location of Eagle core environment settings and flex licensing
[config] - Configuration of services such as messages, fonts, dash, import and export, drag and drop, etc.
[locations] - Locations of working directories and help files
[programs] - Details of default macro and external program services
[graphic] - Eagle graphics and GUI configuration
[rendering] - Advanced rendering library settings
[occ] - Settings for Nurbs
[debug] - Reserved for internal debugging
[patches] - Details of patches to apply for specific functionality
[licensing] - Settings for the licensing mechanism
[devices] - Settings and location of configuration files for printers, plotters and digitizers
[user variables] - Runtime storage of session user environment variables
Please note
that some reserved system variables required for initialization at startup
of the environment remain section dependent e.g. EAGLEPATH, EAGLESITE
and LOGIN for example. These variables MUST be located in these sections
otherwise there will be unforeseen consequences.
Changing Configuration Variables
Eagle allows you to access and change the details of variables in these sections at runtime. Remember that manual changes made to the configuration file or those made using an external program will not take effect until the next start of Eagle. The recommended access the configuration file is by using the ENVIRONMENT command to set values or using and EPI function setting
ENVIRONMENT syspath='/usr/cad/sys'
You should note that some environment settings are only valid for use when Eagle first starts. Example if we change the variable EAWIDTH, which sets the width of the Eagle frame, it will only change when Eagle next starts. This entire configuration setting contains detailed explanation for variable settings and usually also contains information is a dynamic result should be expected. You can print the value of a variable by using TELL env(EAWIDTH)
Both the settings in the configuration file and those set by the LET ENV command during an Eagle session are stored in memory therefore any changes must be made within Eagle and not from an external process. Session based variables are freed at the end of the session by execution of the END command.
The Configuration File
Now lets look at the comprehensive configuration file which includes all variable, descriptions and default settings. A topic page lists all the current variables and description contained in the most recent configuration file. Most variables are self explanatory but where warranted more details are provided in specific subsections. After the topic displaying all settings there are subsections which details specific subsections of the configuration file grouped by relevance.
The Entire Configuration File
This topic lists all current variable settings available in the configuration file
The Components of a Configuration File
General Environment Settings
In this section we define the main environment variables used by Eagle pointing to the directories where the Eagle tree and the configuration files reside.
Licensing Settings
This sub-section relates to the configuration of FlexLM licensing system. Eagle is licensed in a number of ways and FlexLM is just one of them.
Eagle Configuration Settings
The variables in the following sections are used to define the location of and structure of data and data files that interact with Eagle. covering aspects of the location and names of data resources that define the core Eagle its message files, font, and title, together with the configuration for utilities
DXF/DWG Parameters
A section that offers extensive configuration for the
customization of the IMPORT and EXPORT commands.
+Detailed description...>
Drag and Drop Settings
This subsection defines the configuration of the action
to take place when particular files are Dragged and then Dropped from
the file system to specific windows in Eagle. Most file types are
supported and for each window and each type of file (extension) a specific
entry can be placed which specifies the command file to execute when a
file of that type is dropped in that particular window.
+Detailed description...>
ODBC and Database Settings
This subsection defines the configuration of the ODBC
(Open DataBase Compliance) implementation in Eagle which is used to communicate
with a huge number of data sources without having to have specific data
monitoring programs as required in legacy versions. The subsection
also lists other data handling configuration.
+Detailed
description...>
Eagle Applications Locations and Libraries Settings
The locations section defines the temporary files, help files, standard directory and any other directory you wish to specify. Note, the xplot Help now also located in the Eagle help file.
Programs Location Settings
This section is used to define the location of programs that are designed to interact with Eagle and to define the macro action that Eagle makes when starting. This also includes CVS and UFO Compression.
Eagle Appearance and Operational Configuration
The following sections define the set of the appearance and operation of a whole variety of graphic elements and layouts within Eagle including Eagle Frame, windows, configuration of GUI objects, Eagle graphics, Hybrid CAD and geometric presentation.
Eagle Frame and Windows Settings
- covering all aspect of the operation of the core Eagle frame, its appearance
and the behaviour of the elements in it, Windows furniture (buttons),
child windows and dependent windows.
+Detailed description...>
Eagle GUI Windows and Panels
Settings - covering all aspect of the operation of the Eagle GUI,
its appearance and the behaviour of the elements in it.
+Detailed description...>
Eagle Graphics Operation
- Customizes the behaviour of the display of Eagle vector graphics and
the panel and elements of the GUI created from Eagle programs.
+Detailed
description...>
Hybrid Settings - Include
setting needed to tweak the display of images on different platforms.
+Detailed description...>
OpenGL Settings
This section determines if OpenGL graphics are supported or not and if enabled how OpenGl should behave. Originally Introduced in 11.7 OpenGL has continuously been updated in subsequent versions. OpenGL graphics window is enabled by using the OPENGL command.
OCC Nurbs Settings
This section includes the OCC version based settings introduced in V14 and supplied as a separate executable.
Advanced Rendering Settings
This section determines the settings for advanced rendering library which is to a large extend degraded and replaced by OpenGL advanced capabilities.
Patch and Program Tweaking Settings
This section relates to whether or not specific patches are required for your system. These patches are normally operating system specific or version specific. Patches are exactly what they say, a patch to be applied to normal operation either in between versions or for specific functionality. An example might be when a new functionality is introduced into Eagle a patch needs to be added to allow reversion to an old method of using a command even when this usages was not originally envisaged or documented. Refer to the release notes to find out whether or not these need to be set as yes for your system.
Device Settings
This section contains pointers to the configuration files, drivers, settings and ports related attached peripheral devices used by Eagle.
Debugging Settings
Mostly this section should remain untouched, however there is a very useful Tracing option included since V12.6.1 which allows tracing of memory and resource usage particularly useful in the event of an unexpected crash.
[user variables] section
This section is used internally by Eagle during an Eagle session for transient session variable settings and is freed by removing all entries on exiting. If this entry is visible at any time in your configuration file or Registry settings you should not manually insert entries in this area as they will be deleted when next exiting Eagle. Other sections may be added below the [user variables] section.
[user variables]
Other Issues
The configuration entry can be set with a directory separator with either a the backslash \ (used in Microsoft Windows) or in the Internet Eagle system format (with the forward slash /). In most instances the / and \ file separator in the configuration settings are inter-changeable. Certain specific instances are an exception to the rule, for example if a variable is being set to a Microsoft operating system command which requires explicit switch syntax in order to work.