Plugin AVC_Lay for AutoCAD and BricsCAD.
Lay 3D-solids to XY plane. Group and sort list of details, make FlatShot for CNC.

Using this plugin you can quickly lay out the details of a complex assembly in the XY plane. This is useful when you are designing products made from sheet materials (furniture, woodworking), and when you need to do detailing, arranges every detail drawings. The plugin allows you to put selected solids in the XY plane of the world coordinate system, regardless of how they were arranged in space.
In a single click the plugin can do copy and a few turns of solids. Moreover, you can immediately select all solids components in an assembly, rather than to lay out solid by solid. As a result you get a neat column of details sorted from highest to lowest with text title.In addition the plugin can:
  • Find parts inside assembly blocks, arrays, xrefs.
  • Filter only the parts you need by layers and manufacturing technology.
  • Write the header of each part with its size and any description.
  • Find identical parts and group them by writing the quantity in the title.
  • Make you own title format rather default.
  • Automatically find mirrored parts or use manual marking of mirrored parts.
  • Choose which side to put the part up depending on the manufacturing technology.
  • Mark texture on detail.
  • Do FlatShot*. Use it to make curves for CNC.  
  • Group parts and arrange them in several columns.
  • Sort parts by size or any properties.
  • Number the details, writing numbers into solid properties for further use in Smart Leaders.
  • Multiply the number of parts by the size of the batch produced.
  • On/Off its settings without dialog window directly from command line. Thus you can make you own buttons and macros to use different variants of -Lay command. 
  • Quickly switch between several sets of settings (styles).
  • Interact with plugin A>V>C> Properties Palette to get the names of solids, to measure the number of mirror parts and rotate solids market as Texture Across.
*BricsCAD version does not support now the creation of Flatshots with invisible lines and can not create Fields.
Original objects remain unchanged - laid out copies of it. Plugin can work with 3D-solids only. It not works with Meshes, Surfaces and Blocks.

Download the plugin in the AVC_Lay_nnnn_nn.7z archive
You can use the program for free, but from time to time the activation window will appear. If you donate at least $10, you can disable this window. Group 

Recensione video in italiano registrata da Paolo Coter.


Lay – Lay 3D-solids to XY plane.
-Lay – Lay command with full console control.
AVCNum – Give the names to solids as ordered numbers
SNN – Select object without name
AVCMessage - Auxiliary command for setting output messages about the progress of the program. In the demo mode it shows the activation window.

Command Lay

Select all the details in the assembly and call the Lay command. If before call selected nothing the program query to select. Selection may be saved after working command (see Common Options).
Next step select insertion point. The point query contains a setting option: 
  • SwitchStyle: Quickly switch between options-set by it number. 
  • TUNE: This option open dialog window or next query to select setting.
In the settings dialog you will find all the same options as in the options of -Lay command. And besides, in the dialog are available the  Common Options of all A>V>C> plug-ins. 

After inputting insertion point the program will process all solids. The program looks for the front of the solid (see Metric of solid) and believes that it should be in the plane XY, front down. You can change this behavior in the settings in the section "Lay the Front". Also revolves detail around Z so that the longest edge extends along the axis X (if Texture=Across then using Y axis). Program sort detail by size from big to little and lay details down axis Y. 
By default calculating the size of the solid need to turn it at right angle. If this is disabled, the benefit will have the longest line or arc.
The plugin is designed for use in the design of sheet material details. In these details there is always the main plane on which determines how to put the item. This algorithm does not work for spheres, tors and shaped details. Curved skins will not flatten out, but will be laid out with a flat end. The program can measure the simplest sweep bent parts, if they are marked as "sweep" in Metric of solid, but this only affects the part size numbers, not the layout.
If a group heading is configured, then the details of each group are laid out in a separate column. You can, for example, arrange parts from different assemblies into different groups. For this use the %block% substitution in the grouping.
Plugin works only with objects such as 3D-solid. If you enable the "inside assemblies" option, the program will pull the parts out of the assembly-blocks.
If program cannot lay out the detail then the plugin will display a warning window and problem details will be painted red. For remove red illumination start any other command.
If enabled “Manage Layers” function, MD_Annotation layer will be assigned to the title.

Follow the messages on the console. There may be program messages.

Options dialog

The command customization dialog can be invoked when selecting objects or entering the insertion point using the TUNE option. Or through the main AutoCAD settings dialog (_Options command). And in BricsCAD use the +Options command.

In the header of the options dialog box you see the drop-down list for selecting the style (set of settings). The style number will be used to quickly switch during the operation of the command. Next to the list there is a button for adding a new style. A new style is created by copying the current one. You can create up to 9 styles. Any style can be deleted exclude first. By default, two styles are created - for normal layout and for exporting parts to DXF.

Style name

Layout style name. Not used anywhere. For convenience only.


The group title is set here. If you want the lay to be done in several columns, then in this field you must enter the substitutions of the properties used for grouping. Groups are always sorted alphabetically, in ascending order. If groups are not needed, leave the field blank and then all the parts will be laid out in one column. As soon as you place the cursor in this field, a substitution button will appear immediately. It calls the substitution selection dialog. The result will be inserted at the current cursor position in the field and can replace the selected text fragment.

Selected objects filter

Filtering is needed to discard drawing objects that accidentally fall into the selection frame. It is easier to select all the objects of the model in a row, and let the program select only the necessary ones from them. Finding parts inside assembly blocks is also in this section. You can read more about filtering on the Data Table page.

Lay options

  • Both sides - look for blind drilled parts at the bottom or with dadoes at the bottom and re-lay such parts on the other side. Only the first main view will have a title for the part, while the reverse view will only have the signature FRONT VIEW or REAR VIEW. The program does not take into account parts with inclined edges and three-dimensional processing, it only searches for flat surfaces facing straight down (in the main view). A separate %view% substitution has been created specifically to indicate the name of the view in the first (main) view. If you did not fill in the Title field, then the name of the view will be substituted automatically on a separate title line - just check the "Both sides" option. Make no mistake with the amount of detail - it's easy to confuse a reverse view with a single part. DXF Export comes with the second view of the part as a separate part - this view can be multiplied by the number of parts and saved in separate files.
  • Texture mark - Write the word <<TEXTURE>> in the center of the part, if the solid is marked as Texture = along or across.
  • Numbering - calling the Numbering program before displaying. All parts will be named as sequential numbers. Names (Numbers) are saved in drawing objects (in xData) and can be used in other commands A>V>C>. Numbering has several settings of its own - see here.
  • Merge the same parts - Lay out identical parts once. All properties used in grouping and title are taken into account to distinguish different details. The number of solids corresponding to the combined part can be shown using the %count% substitution
  • Appearance similarity - When combining parts, the program must consider not only the grouping and title, but also the color, layer, linetype, material of solids and their coatings.
  • Geometric similarity - Consider the geometry of the solids when combining parts. Geometrically different solids should be laid out separately. Geometry check ignores the position and rotation of objects in space.
  • Descending Size - Sort parts in descending order of size, from large to small. If you turn off the option, then first there will be small details, and then large ones.
  • Separate Mirrored - Lay out mirrored solids separately. Use the A>V>C> Palette to keep the specular mark "mirror" on the solids. If this option is disabled, then straight and mirror solids will fall into one part, only one solid will be laid out. In this case, you can use the %countright% (the number of parts such as laid out) and %countmirror% substitutions.
  • Multiplication Request - Query the number by which the number of objects will be multiplied. Use to calculate the number of parts in a batch. The multiplier is stored in the drawing properties. Even if it was not requested, the amount will still be multiplied by it.


Step lets you adjust how far down the Y-axis the next parts will move. If no step is specified, the program will take three text heights (TextSize) as the spacing.

Lay the Front

  • Down - Lay out the parts with the main (best, front) side down Z. Optimal for machining parts on CNC milling machines.
  • Up - Lay the parts with the main (best, front) side up on the Z. Optimal for processing parts on panel saw machines.
  • by Technology - Lay front up simple parts that are suitable for sawing. And all other details - the front down. A part with six or less flat faces without holes is considered simple.

Title options

  • Title - You can check the title options and then the program will create MText for each detail and for group titles.
  • Next is an input field for your own title text mask. The text can contain any MText string formatting characters (for example, \P is a line break). In addition, the text must contain any of the parameters of the detail: %layer%,%length%,%count%,%name%, etc. See the Substitutions page for a complete list. As soon as you place the cursor in this field, a substitution button will appear immediately. It calls the substitution selection dialog. Enter an empty string to return the standard title.
  • Style - the style of the title text. Leave blank to use the current TextStyle
  • Height - is the size of the text. Assign 0 to use the TextSize system variable. The indentation of the title from the detail depends on the height of the text.
  • Center - align the center of the title to the center of the parts. If the heading is inside the part, then vertical alignment will be performed as well.
  • Inside - Place text inside the part drawing. The program does not pay attention to parts with complex contours and places the text inside a conditional rectangle that limits the dimensions of the part. If you turn on the render mode with solid faces filled, then you will not see the titles, because the texts will be under the details.

Convert number to string

When a program finds a substitution and replaces it with an object property, it needs to know how to format numbers, how many characters to write. It is possible to write the format into each substitution. But if you did not specify the format in the substitution, then these settings will be used.

Size format

This setting is used only for converting size numbers to a string. It does not apply to areas, volumes, prices and other figures. The format can always be overridden in the substitution itself. The format is ignored when substituting AutoCAD fields.
The format specifies how many decimal places to write and whether to write insignificant zeros. Use the characters 0 and # in the format. 0 is a digit or 0, # is a digit or nothing.
For example, the number 1.111111 formatted as 00.00 will be displayed as 01.11. And formatted 0.#### will be displayed as 1.1111. And the number 1.0034 formatted as 0.## will be displayed as 1.
There are special, AutoCAD-only, formats:
  • CU – how the units are configured in the current drawing (via the _units dialog)
  • AR – Architectural
  • EN – Engineering
  • FR – Fractional
After AR, EN, FR you can write precision (0-8) 
  • Decimal separator - Replace the decimal point with this character in all numbers and in all substitutions. 
  • Special Characters - Use special characters such as ¼ ¾ ½. And after the corners, prices, areas and volumes, units of measurement will be affixed. It is impossible to evaluate mathematical expressions with such symbols. And not all fonts contain these characters.
  • Use Fields - Use AutoCAD Fields instead of substituting property values. Fields only work in AutoCAD. The program is not yet able to create fields in BricsCAD tables due to errors in its API.


See the numbering settings here.

Command “–Lay”

This command has few console options inside “select point” query. I hope you know call options by first litter or by dropdown menu.

Options and settings

  • Step: allows you to adjust how far down the Y axis will shift the following details. 
  • Technology filterYou can limit the list of laid out parts according to manufacturing technology. List the technology you need through a semicolon without spaces. Technology names can be corrected in Common Options. Leave the list empty to lay out all the solid.
  • Mirror: Lay mirrored solid separate. Use this option jointly with "Group similar". Mark solid like "mirrored" using A>V>C> Properties Palette plug-in.
  • FlatShot: Yes|No calling FlatShot command after LAY. Flat geometry will have same layer and same color like solid. Invisible geometry will layer "Hidden". And if haven't Hidden layer in drawing then program just set color green. Not work in BricsCAD.
  • Title: input string for you own title text mask. In mask you can use any MText format symbols (like \P for new line) and you can use solid parameter replacement (substitutions). Input space string (or * or ?) for returning to default text mask. Program selects a default mask according to the sorting setting. The format of the output of digits (accuracy and fractional formats) can be set in the settings of the drawing units or in the A>V>C> settings in the Common Options section.
  • TExture: Write <<TEXTURE>> in a middle of a detail if solid marked like Texture = along or across.
  • NUmbering: Give the names to solids as ordered numbers. And save Mirror mark in solid.
  • MUltiplier: Ask for a number to multiply the number of parts.
  • STYle: the style of the title text. Leave blank or * to use the current text style.
  • Height: the size of the text. Assign 0 to use the system variable TextSize. Text height depends on offset header from detail.
  • CEnter:   align the Title center for the middle of detail. If the title is in the details, it will be made and a vertical align too.
  • Inside: to place the text inside detail drawing. The program does not pay attention to the details with complex contours and place the text inside the rectangle conditional restricted with dimensions of parts. If you turn on the rendering mode filled faces of solids, you will not see the headers, as texts will be below details.
After any options input program will query point again. And you can use other option.  Thus you can tune program at any call. It makes possible creating macros and buttons for different way using command LAY.

Program settings are saved in the Windows registry, in the section of the current user. Therefore, they will work equally in all drawings and in all versions of AutoCAD and BricsCad. Settings can be transferred to another computer only by exporting a registry key. To do this, in the plugin AVC_Kit there are buttons for exporting and importing settings.

AVCMessage command

Auxiliary command for setting output messages about the progress of the program. In the demo mode it shows the activation window.


Next 2021.2
    Fixed: The number of parts was always multiplied by 1, if the multiplier was not configured to save in drawing.

    Fixed: length format settings were not saved in the Common Options dialog and in all styles.
    Substitutions: Corrected formatting of all non-dimensional data: accuracy is limited to 6-8 decimal digits in accordance with Common Options.
    The substitution of end slope angles (%slopes%) now puts a degree symbol after the corners, despite the prohibition of special characters.

Fixed: eInvalidInput in drawing with system variable TextSize = 0
Fixed: Erroneous hiding of several options when disabling numbering.
Removed options NotAnnotations and ContinuousOnly
%view% Select substitution dialog
%view% in default title for Export style
Can lay parts on both side: FRONT and REAR views
Optimized gaps between parts and groups
New substitution %view%
Fixed error: NullReferenceException
• Now use the DataTable to compile parts lists.
• New conditions for filtering objects
• New sorting principles
• Separate numbering settings for each style
• Separate length formatting settings for each style
• Working with solids inside assembly blocks, arrays, extRef
• Customizable grouping of parts
• Layout in separate columns in groups
• Insert group header
New dialog for Substitution insertion and new button "Substitution" in DXF, CNC, SAW, LAY, MARK, Smart Leader dialogs
Substitutions renamed: %depth% -> %thickness%, %d% -> %t%, %width% -> %length%, %w% -> %len%, %height% -> %width%, %h% -> %w%, %dmm% -> %tmm%, %wmm% -> %lmm%, %hmm% -> %wmm%, %tr% -> %texture2%
New substitution %texture*%
Fixed error comparing array elements
Auto create indexes of materials
New substitution system
A new option for selecting technology is to use the saw only for rectangular parts.
Second default style "Export" for DXFExport
Filtering solids by technology.
Front color marking
Upside priority
Front rotation options
Fixed: Fast style switching from the command line while selecting the insertion point does not work.
New substitutions for detail - %assemlycount% and %perassembly%
Numbering: You can number them not only in numbers, but also in Latin letters alphabetically from A to Z, then AA - ZZ and so on.
Numbering: The starting number can be set arbitrarily through the settings window.
Numbering: The final number is stored in the property Number_of_details of the drawing and on the next call the numbering will automatically continue.
Updated dialog window localisation
New substitution for drawing properties.
New customization option - disable title.
AutoCAD 2020 compatibility
New Activation method
New feature: Text Frame
Fixed: Error selecting the best face
Automatic delete excess plugins
Compatible with BricsCAD Pro 18
New substitutions %area% and %perimeter%
Compatible with AutoCAD 2019
Auto evaluate fields
Integrated Numbering plugin: AVCNum and SNN commands
9 sets of settings with the ability to quickly switch
Multiplier query for multiplying the number of parts
A list of substitutions for easy editing of the detail title
Counting the number of direct and mirror details with the option "Mirrored separately" turned off
New substitution "%c+m%" = "Direct + Mirror"
Compatible with AutoCAD 2018
Updated Tecnology property for Solid
Decreased accuracy of asymmetry of solid
New version numbering
Fixed: solids were sometimes mistakenly considered different
New thickness substitution writing - %thickness%
New activation window
Fix fatal error in solid measurement procedure (It really absolutely new procedure)
Solid measurement – priority of faces with 3D right angle
LAY Title in detail center - corrected
Measure solids without flat faces
New replace chars - %asymv% and %tech%
Italian localization
German Autocad localization compatibility
Setting dialog window
Changed layer names: Annotation -> MD_Annotation, Hidden -> MD_Hidden
Break selection after end of command (by default)
Added “-Lay” command variant
Mark <<TEXTURE>>
New algorithm of solid measurement. Right angle priority
Identification of mirrored details.
NAMES new version compatibility
Compatibility with last Names version (Kind property)
Auxiliary command for setting output messages about the progress of the program. In the demo mode it shows the activation window.
Added header text settings: text style, text height
Added header position settings: inside part, part center
Removed Text Offset setting. Now the offset is always equal to the height of the text.
Completely re-written algorithm of detail measurement
Excluded mistakes of solid comparisons
Lay spline-based solid accelerated to 9 times
Optimized algorithm of search detail main plane
Fix – Options Liter conflict (ColumnList and Color)
Fix – Solid comparer error
Material like solid property
Fractional length formats
AutoCAD 2017 compatibility
Demo version
Output Texture property
Rotate solids market as Texture Across
Sorting by solid names
Separate lay mirrored solids (like option)
Support Texture solid property (from Names 2.0 plugin)
Correct algorithm of sorting and summing
*VARIES* value if layer or name of solid in one table line differs
Fixed typos
Added compatibility with plug-in AVC_Names:
Detail Name form solid property
Measurement sweeps
Counting mirrored details
Added the ability to customize display messages from the program (command AVCMessage).
Fixed typos
Full upgrade. Too many new function like sorting, grouping, flatshots.
Add many options