CLARIFICATION: Use of ^DPrompt: to select entities
DaltonSpence
Mapmaker
Some macro commands start with a selection of entities followed by some data on what to do with them. For example:
SCLCPY selectEntities;rScaleFactor[Prior];xyOrigin[Prior]
If I can put the following data into variables can I use a ^D prompt to select *all* the entities I need?SCLCPY ^DSelect the entities to copy:
vScaleFactor;xyOrigin
Comments
SELBY1
I could scale-copy one entity at a time in a loop until the select failed (right click). Is there a way to build a multiple selection in advance so I can useSELBYP
to run the command? (I want to use this for a macro drawing tool.)DESELECT SELBY1 :StartSel GE p ^DSelect an Entity: ONTEST IFZ ison EndOfSel STORE vEntity pon SELECT vEntity GOTO StartSel :EndOfSel SELBYP
Note theONTEST
macro is used to stop the loop when the click is not on an entity's edge.You'll need to reset the p variable for each loop iteration though, GE won't update p unless you click on an actual entity, just leaving it at the previous value, making the ontest retest the previous point (which passed the test then, so should again), creating an infinite loop.
ONTEST
’s use in the macro file and there is always anIFERR
between it and theGE
. Here is my corrected code.DESELECT SELBY1 :StartSel GE p ^DSelect an Entity: IFERR EndOfSel ONTEST IFZ ison EndOfSel STORE vEntity pon SELECT vEntity GOTO StartSel :EndOfSel SELBYP
Would this work? Do I even need theONTEST
?DESELECT SELBY1 :StartSel GE p ^DSelect an Entity: IFERR EndOfSel STORE vEntity p SELECT vEntity GOTO StartSel :EndOfSel SELBYP
The description of theSTORE
command is “Stores a reference to an entity in a variable, so it can later be selected by Select Entity.” Is this a different data type than that stored by theGE
command?