What is Adjust Objects; Retain Positions?
Adjust Objects; Retain Positions (AORP) is a macro that allows one of a number of adjustments to be applied to objects in the active selection range. The adjustment can be carried out individually on each object within the range, while retaining the specified position of each object. Some adjustments can be carried out on the range of shapes “as a whole”, treating the entire selection as if it were a single object.
Possible Adjustments include:
See AORP in use:
Demo 01 - demonstrating some of the basic capabilities:
Demo 02 - reworking a figure: I have stretched the figure asymmetrically to change the aspect ratio. In addition to changing typeface, font size, and the size of data markers, I want to get rid of the asymmetric stretch on the text and the data markers - without losing the positions of those elements.
Using the macro.
With the desired adjustment settings visible in the upper panel, and with one or more objects selected, clicking on one of the nine buttons in the lower Apply changes; Retain Positions panel does two things:
That is a description of only the most basic operation of AORP. There is a lot more to it than that!
Instead of reproducing some subset of that information here, I refer you to the written documentation. This PDF is included in the .ZIP file linked later in this post, but a direct link to the documentation is also provided here:
Written documentation for AORP (PDF)
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:
AORP was put together in a CorelDRAW X7 environment, and should work in versions X7-2020.
OK, where's the macro?
JQ_Adjust_Objects_Retain_Positions_Current.zip (most recently updated 2021-07-07).
That includes the .GMS file, a PDF file describing operation and use of the macro, and a simple icon that can be used on a CorelDRAW Toolbar.
Please note that, starting with the version released on 2020-04-20, 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_AORP_Registry_Entries sub, which will set the macro back to its default values.
Thank you for the kind words!
My wish for some of these capabilities is what first got me interested in writing VBA macros for CorelDRAW.
This macro is still one of my favorites, and a tool that I personally use often.
Wow, this is a beast!
X7 is the oldest version of CorelDRAW that I have.
hello sir can you please provide its x6 version.
I have seen (and participated in) some discussions here on the Community forum related to reverting symbols to objects. I don't have much personal experience with nested symbols.
I imagine that a macro might be written to do what you want, but right now, I am going to offer a suggestion that uses regular CorelDRAW workspace customization.
Are you familiar with doing workspace customization using the Alt key to drag a Command, and Ctrl while dragging to make it a copy operation?