What is Duplicator?
Duplicator is a macro that can duplicate one or more selected objects, and arrange the duplicate content in specified ways relative to the original objects.
The Step & Repeat capability positions the first duplicate relative to the original - and each subsequent duplicate relative to the previous duplicate - according to the settings on the Step & Repeat page. The relative positioning can be horizontal and/or vertical. Each of those types of positioning can be done using either a specified Offset, or an offset calculated by the macro to produce a specified Space Between the duplicates. The horizontal and vertical methods of positioning are independent of each other.
The Array capability positions the duplicates in a rectangular array according to the settings on the Array page. An array can be Horizontal only, Vertical only, or Horizontal & Vertical. Positioning can be done using either a specified Offset, or an offset calculated by the macro to produce a specified Space Between the duplicates. The horizontal and vertical methods of positioning are independent of each other.
When Use True Size of Objects is checked, the macro uses the "true size" of objects (including outline width, corner styles, line caps, etc.) rather than "wireframe" size when calculating the offset required to produce a specified Space Between duplicates.
See Duplicator in use:
Using the macro.
Use of the macro involves selecting one or more objects, then clicking one of the Apply buttons.
The settings on the page of the userform determine how the operation is carried out.
The Prefs page has a checkbox for Use "StepAndRepeat" method to create duplicate content. When that box is checked, the macro uses the ShapeRange.StepAndRepeat method in the CorelDRAW API to duplicate the selection and arrange the duplicates.
There are some circumstances in which that method may produce unexpected results. One example would be using Step and Repeat on content that has a dimension attached to it, but where the dimension has not been selected to be part of the Step and Repeat operation. The unexpected results from that can include some non-selected content being duplicated, but not moved. The unwanted duplicates are stacked up on top of the original, so it may not be immediately apparent that anything has gone amiss. This is not limited to macros; it works the same way using the Step and Repeat docker in the regular CorelDRAW UI.
When Use "StepAndRepeat" method to create duplicate content is not checked, then the macro uses other methods to duplicate and arrange the content.
Of the two different approaches, the one that uses StepAndRepeat takes less time to run. If an Undo operation is later performed, it takes less time to undo. So, in general, it is recommended to leave that box checked. Uncheck it if you are working with content where the StepAndRepeat method causes problems.
Using the Comboboxes.
The boxes for numeric entry are comboboxes. The drop-down list for a combobox can contain values stored for convenient access. If a combobox is not locked, then when a value in thatcombobox is used by the macro, that value is added to the top of the list. If an existing value is used from the list, then that value is moved to the top of the list. Values can also be manually added to the list.
Ctrl+clicking on a combobox sets that combobox to its default value.
Right-clicking on a combobox brings up a menu of options for managing it.
These options may include:
Units of Distance.
For a combobox that represent a distance, values are applied by the macro in whatever units (inches, millimeters, etc.) are shown beside the combobox. Those units can be specified by the user through the right-click context menu.
If “Follow Horizontal Ruler Units” is chosen, then the units for the combobox are the same units that are in use in the document for the horizontal ruler. If those units are changed in the document, then the macro automatically changes the units in the combobox to match.
Although this documentation makes references to “the list” for the combobox, there is not necessarily only one list. The combobox maintains a separate list for any unit that is used in it. When units for the combobox are changed, then the list associated with those units is loaded. The number of decimal places, and also whether a list is locked or not, are things that are handled independently for each list.
A Video Describing and Demonstrating the Special Features of My ComboBoxes:
Duplicator subs in the Macro Manager.
Duplicator was put together in a CorelDRAW X7 environment, and should work in versions X7-2020.
OK, where's the macro?
JQ_Duplicator_Current.zip (most recently updated 2021-07-17).
That includes the .GMS file and a simple icon that can be used on a CorelDRAW Toolbar.
Please note that, starting with the version released on 2020-05-03, this macro uses a different scheme for storing combobox value lists and some preferences in the Registry. If you have been using an older version of this macro, those "old" value lists and preferences will not be there when you use the newer version. If you want to "clean out" those old entries that are not used by the newer version of the macro, the best way to do so is to run the Remove_Duplicator_Registry_Entries sub, which will set the macro back to its default values.
Nice! Tx John.