MEN2DXF Revision History

This document summarizes enhancements and fixes to our Mentor to DXF and DXF to Mentor translators. Please consult this page on a regular basis to determine what changes have been made to our programs.

v2.40 (1/9/2007)

First Linux release

Version 2.40 is now available on Linux, Solaris, and HPUX with Flexlm 11.x support.

Updated dxf2men

Version 2.40 includes the latest DXF parser.

v1.59 Solaris (8/12/2004)

Flexlm support

Added support for Flexlm to Solaris version.

v1.55 (5/3/1999)


DRILL_DEFINITION and DRILL_DEFINITION_UNPLATED diameter values were not scaled properly to current unit. In case the definition unit is different from the current unit, the output would be incorrect. This is now fixed.

v1.54 (3/1/1999)

Output Unit

In a Mentor file, every components may have different units. In previous version, the output unit was picked by an undeterministic algorithm. This version pre-scans the unit of the board component, and uses the scanned unit in output.

v1.53 (2/3/1999)

Add PATHEND option in mentor.cfg

Add a new keyword in mentor.cfg. usage:

When specified, traces with width will end with round ends. (In DXF, it means extra donuts are added at the ends of a POLYLINE.)
*Exception: pointers (a line ending with an arrow head) always use square end with or without width.

v1.52 (1/27/1999)

Fix name suffix problem

part names ending with "_b" or "_t" might generate "duplicate block name" error in DXF. This is because men2dxf appends "_b" and "_t" to block names if the blocks are inserted on the bottom and top layer respectively. This condition is now checked. Extra "_" characters are used when part names ending with "_b" or "_t" are detected.

v1.40 (7/2/1998)

Add Drill translation support

Add a new feature to translate drill data onto the "board" geometry. 3 data files are required to enabled this feature:

  • the drill data file (with X,Y drill coordinates)
  • the drill table file (with $$define_drill_size functions)
  • the drill format file (with functions such as $$define_drill_format)
Using the drill table entries and the drill data file, a drill component will be inserted onto the "board" at every (X,Y) drill coordinate, and a circle with the corresponding diameter is drawn on the "drill_holes" layer.

v1.34 (2/09/1998)

Fixed Component Text Too Big!

Several customers reported the reference designators on components appearing way too big in the DXF file. We traced this to board designs where the board was designed in units of inches and the components were developed in units of mm.

The men2dxf translator did not use the unit information supplied in the REFLOC statement in the component file. When the REFLOC unit is different from the geometry unit, the text would appear too large (typically 25.4 times too big) or possibly too small. Version 1.34 now recognizes IN, MM or CM in the REFLOC statement and applies the proper scaling factor for the ref designators.

Fixed Missing Text or Dimension Text

Some customers reported that some text items were missing or incorrect and we traced this to the fact that dimension points may use a reference name to refer to a pre-defined coordinate point. A ">" symbol in the geom file indicates a indirect reference.

Previous versions supported only one level of indirect reference, such as `10>`0. Version 1.34 supports multi-level indirection, such as `10>X1>`0, and there is no limit on the maximum number of indirection levels. Moreover, reference names, such as X1 or C1, used in a component file can also be used to compose the dimension name.

v1.33 (1/29/1998)

Backside Component Mirroring Fixed

Component inserted on the botton layer was mirrored around the wrong axis and rotated incorrectly. This is now fixed.

Silkscreen Outlines Closed Off

Outline attributes, such as BOARD_PLACEMENT_OUTLINE, may not provide a closed polygon. men2dxf should have automatically closed the polygon in this situration. Previous versions did not do that. Fixed.

Reference Designator Translation Improved...

In the comp file, REFLOC statements are used to insert reference designators onto the board. In a REFLOC statement, text insertion information, such as insertion points, rotation or insert layer, are provided. Previous versions did not use the insert layer information, because insert layer appears to be an optional field. This version will insert the reference names onto the insert layer if it is provided.

Also in the REFLOC statement, more than one set of reference information may be provided; i.e. the reference name may appear more than once on various layers. Previous versions only used the first information set and ignored the rest. This version will translate all the given sets.

Variable Reference Designators...

Any text entity starting with "^$" combination will be translated as a DXF Attribute entity. (In previous version, only ^$REF and ^$prop were recognized.)

    the "^$user=" text string is handled as follows:

  • the string is assumed to be in this format: ^$user=SS where SS is any string
  • a DXF Attrib will be generated using the entire ^$user=SS string
  • a normal DXF Text will be generated using only the SS portion of the string

Control of Circles: Filled/Empty

A new command line option: -cir0 is added. When specified zero width circle entity will generate a zero width circle in DXF. If NOT specified, by default, zero width circle entity will generate a solid ball (using two 180 degree polyline with width.)

v1.32 (12/18/1997)

Bug fix for VIA in trace file

VIA's in trace file are inserted on special layers (see v1.31). These special layers were not generated on the output LAYER table making the output DXF file not useable. This is now fixed.

v1.28 (08/29/97)

Revision number updated to synchronize with 1.28 of dxf2men.

v1.27 (08/05/97)

Add -lyrscan option
Add command line option -lyrscan. When given, the program will scan the geometry and component files for all the layers used. The output will be reported in the log file. No DXF file is generated. This command line option was intended to aid the developers of GUI's who need to know what layers exist in the geom file so that they can display them in a layer mapping dialog box.

v1.26 (07/25/97)

Bug Fix: dropped leading spaces in text string
Fixed a bug that incorrectly translated strings of text that had leading spaces - the leading spaces were lost after translation.

v1.25 (07-16-97)

Add Layer "1" and "2" to AutoCAD Layer Table
Special layers in AutoCAD called "1" and "2" contain the block insertion layer generated from the comp file. Parts inserted on the top side are inserted into layer "1" and parts inserted on the bottom of the board are inserted on layer "2".

Any block attributes who do not have a clearly defined layer will also end up in layer 1 or 2.

v1.24 (07-10-97

Add Support for Mixed Units
men2dxf now supports mixed units. The units of the geometry file are set in the $page() command and men2dxf now respects changes in units. However the DXF file may only contain one "defacto" unit and this will be the units of the very first $page command.

Property ^$prop() now supported
the geometry ^$prop variable is now supported. The ^$prop is a variable for a string of text that is used in the comp insertion. It is translated to DXF as an invisible block attribute because it does not have coordinate placement information associated with it.


revision updated to synchronize with dxf2men


revision updated to synchronize with dxf2men

v1.21 (05/29/97)

Enable user to control name/path of log file
A new command line switch for men2dxf is -log:filename. This enables the user or a calling program to specify the complete path and filename for the log file. The command line switch is optional - if not present men2dxf will write the log file to the same directory as the source mentor file and will name it filename.log where filename is derived from the source name.

Support for Special drafting characters/symbols
Special drafting symbols in the geometry file are recognized and converted to special AutoCAD text symbols - degree to %%D, plus/minus to %%P and diameter to %%C. Most AutoCAD fonts recognize these special %% symols and insert the appropriate symbol.

v1.20 (05/16/97)

Bad Block when undefined component encountered
Fixed a bug that occured when component or trace file was translated together with a geomentry file that contains references to an undefined component. Instead of creating a "empty" block, men2dxf created an unfinished block that prevented AutoCAD from importing the DXF file.

Fixed support for 360 degree arc
A 360 degree arc would generated a single dot on the DXF output instead of a complete circle. We now generate a circle or polyline correctly for a 360 degree arc.

Added -top command line switch
Due to miscommunication the -top command line option was inadvertently replaced by -block. The -top option is now added back in this version along with -block.

Fixed support for reference designator
- Earlier versions recognize ^$ref as a reference designator but failed to recognize ^$REF. We've fixed the program to recognize both lower case and uppercase variables.

Known problem: dimension reference point can have more than 2 levels
The $add_dimension command in the geom file can reference a coordinate variable not yet defined. We fixed version 1.14 to support one level of redirection by scanning the geom file twice and building a table of named point references; but we've now encountered cases where there are two levels of name re-direction. The program does not yet support this and will drop such dimensions. The dropped dimensions are noted in the log file.

v1.19 (05/09/97)

Added support Angular Dimension

Previous versions did not support properly angular dimensioning and radial dimensioning. This has been fixed.

Fixed Bug in $$copy_layer processing that generated "Error 13"
When the block created by $$create_board function is being copied by $$copy_layers function, men2dxf v1.18 was likely to generate "error 13" and not generating output.

Fixed "undefined block 0" bug
If the command line option -block is used, the DXF output from previous versions would generate a referral to an undefined block '0' which would cause AutoCAD to crash on DXFIN.

v1.18 (05/07/97)

Added Support for Top/Bottom Layer Mapping

Mentor displays entities defined on the generic layers of components on the specific layer corresponding to the top or bottom side of the printed circuit board once the components are placed. To support this behavior in DXF, 1.18 creates two versions of the generic block, one for each side of the board.

A boardstation component called RES1 may include pad and outline data on generic layers PAD and SILK respectively. When translating to DXF, men2dxf will create two block definitions for component RES1:

    RES1_top: all data on generic layers moved to _1 layers.
    RES2_bot: all data on generic layers moved to _2 layers.
The mentor comp file calls out the insertion of each component and it also defines whether the component is inserted on top (1) or on the bottom (2) of the board.

When men2dxf reads the component file it chooses the correct version of the RES1 block for insertion: RES1_top for insertions on the top of the board and RES1_bot for insertions on the bottom of the board.

This means the the AutoCAD user can turn off bottom layer information easily and get only a top view of the board or turn off top layers and get a view of the top side of the board.

Better Support for Dimension Reference Points

When dimension reference points are used before they are defined, the previous version would generate an "undefined dimension point" error. This version will try to reorder the block definitions, so that the dimension reference points will be defined before being referred.

This should eliminate the "undefined dimension point" error.

Added support for $$copy_layers function

$$copy_layers function inserts a named geometry block into the current block. However, only data on the selected layers will be included. This program supports this feature by creating a special block from the named geometry that includes data on the selected layers only. The special block will be inserted into the current block.

v1.15 (04/29/97)

Added support of the following geom attributes: PLUNGE_POINT, MILLING_PATH and MILLING_ARC

Added support of geom's $$internal_name(@level) function.

v1.14 (04/23/97)

Increased the number of parameters allowed in a geometry file command up to 10,128. This enables the translator to support polygons or paths with up to 5000 vertices.

v1.13 (04/07/97)

Fixed a geom file parsing error that would occur for strings of text that ended with the combination \".

v1.12 (03/25/97)

Added Support for Radial dimension
Added support for "dim_name" parameter in $$circle and $$arc functions
Added support for $$point_mode(@level) function

v1.11 (03/13/97)

Bug Fix: DXF Solid entity output corrupted memory; this version fixed the problem.

v1.10 (03/12/97)

Added command line option, -detail, to generate more detail log info.

When detail is set, the log file echo's the contents of the "bad" geometry file line that caused the error, thus making trouble shooting and debugging easier.

Added command line option, -top TOP command line option, and an interactive question sequence to allow user to select the BLOCK to be inserted in the DXF ENTITIES section.

Added support for area fill, ARE in the trace file. A closed zero width polyline is used.

Bug Fix: fixed an error that occured when the character "\" was the very last character of a string.

v1.09 (03/07/97)

- Layer mapping information was not sent to the DXF output completely; this version fixes it.

- ATTDEF output for ^$ref string is using "preset" flag, 8, in DXF (used to use "verify" flag, 4). This eliminates the need of a user to enter the attribute manually when inserting such a block.

v1.08 (03/07/97)

- Added an interactive user interface.
- Auto-mirror text inserted on bottom layer.
- Auto-insert the block defined by create_board to DXF ENTITIES section.
- Insert component and trace data to the block defined by create_board. If no create_board defined in geo. file, component and trace data are put in DXF ENTITIES section directly.
- Generates more detailed log.

v1.07 (03/05/97)

- Made zero-width dimension text visible.

v1.06 (03/05/97)

- Added -st command line option; it makes invisible text (zero-width) visible

v1.05 (02/28/97)

- The program automatically generates empty blocks for all the undefined blocks in geometry file.
- Data lines in component files that refer to undefined blocks are ignored.
- Duplicate blocks in geometry files are ignored.
- Drawing data not following any supported $$create function are ignored.
- If the program expects a numerate parameter, and a quoted string is found instead, the program will try to convert the string into numbers. This operation DOES NOT apply to location or coordinate parameters.

v1.04 (02/28/97)

- Increased geometry input buffer from 200 to 2048 characters long. (Component and Trace input buffer is still 512 characters long).
- Increased component item count from 16 to 64.
- Supports multi-line component statement (multi-line statement is joined by a '-' character at the end of the first line.)
- Supports create_panel, create_stackup functions.
- Added "support" of COMPONENT_BREAKOUT and BREAKOUT_VIA_DEFINITION attribute by a BLOCK INSERT (not 100% sure implemented correctly).
- When "font" name is expected, but no data nor default available, "std" font is used. (e.g. component file not supplying font name).
- Realize need to implement MILLING_PATH and MILLING_ARC attribute, but not enough data is available to do it.

v1.03 (02/26/97)

- ^$ref is recognized as an id place holder and generates ATTDEF in output.
- Component file reference name and reference text attribute are used to generate ATTRIB in output.
- Most $$attribute elements are generating drawings on the layers with the same name, except attribute POINTER which generates leader line drawings on the default layer.
- DRILL_DEFINITION and DRILL_DEFINITION_UNPLATED attributes are now drawn by a circle with a '+' symbol inside it.
- Fully support dimension: tolerance, text_position and dual parameters.
- Dimension drawings are drawn on the default layer; dimension blocks are inserted on layer 0.
- Recognize XRF statement in trace file as layer mapping; i.e. layer numbers in trace file will be mapped to named layer according to the XRF statments.
- Component file and trace file information are drawn to DXF ENTITIES section directly - no more special block.

v1.02 (02/21/97)

Only difference between v1.01 is the dxf filename is derived from Geometry file name only.

v1.01 (02/20/97)

Some features have not been implemented.

v1.00 (01/14/97)

Lots of features have not been implemented.

417 Ingalls St., Santa Cruz, CA 95060    Tel (831) 426-6163     Fax 426-2824    email:

Price Download MEN2DXF Index Artwork's Home