I think we may have had this discussion before, but a long time ago…
I was doing a demo and I wanted to automate the repeated placement of circles of the same diameter. Certainly one can set the options, place the first, then right click to repeat the command, the diameter/radius option along with the value is saved and one can just click a new point to set it. However this requires right-clicking every time to recall the command. So I thought a macro using *_Circle should be possible… However, it seems difficult if not impossible.
The main problem is making sure that the command setting starts off on Diameter (or Radius) as one wants. If that is not done in the macro, then it will take the last used setting - which one does not know.
Let’s even forget about *repeat for now - as it’s not really related to the problem - and just try a macro that ensures Radius or Diameter will be used for the numerical value. Assuming that the current setting is Radius, then the following macro works - once:
! _Circle _Pause _Diameter 10.0
Here is the command line feedback, you can see the Diameter entry in the macro is setting the Circle command from Radius to Diameter.
Command: _Circle
Center of circle ( Deformable Vertical 2Point 3Point Tangent AroundCurve FitPoints ): _Pause
Center of circle ( Deformable Vertical 2Point 3Point Tangent AroundCurve FitPoints )
Radius <8.839> ( Diameter Orientation Circumference Area ProjectOsnap=Yes ): _Diameter
Diameter <17.679> ( Radius Orientation Circumference Area ProjectOsnap=Yes ): 10.0
The correct 10 diameter circle is placed at the pick point.
After the first time, if you run the macro again, since the command is already set to Diameter by the previous run, you get this instead:
Command: _Circle
Center of circle ( Deformable Vertical 2Point 3Point Tangent AroundCurve FitPoints ): _Pause
Center of circle ( Deformable Vertical 2Point 3Point Tangent AroundCurve FitPoints )
Diameter <10.000> ( Radius Orientation Circumference Area ProjectOsnap=Yes ): _Diameter
Select point on curve for diameter measurement. Press Enter when done ( Units=Model_Units SelectCurve MarkDiameter=No ): 10.0
Unknown command: 10.0
Select point on curve for diameter measurement. Press Enter when done ( Units=Model_Units SelectCurve MarkDiameter=No )
The Diameter *option* actually calls the Diameter *command* and everything goes south...
I tested in the WIP and this is still a problem. So, is this going to be adressed?
Note, I am not looking for scripted solutions, those are three liners I can easily create myself. This is just a comment on a ‘shortcoming’ of the way Circle has been programmed.