Hi Dong Weng,
There are several factors to consider here -
1) The macro that you wish to use (^C^C_break _mid \@) is not applicable - in progeCAD it isn't possible, in the _break command, to run an esnap mode;
2) To run multiple times the same progeCAD command (this works the same way for any of the progeCAD commands) you must use the MULTIPLE
command (for details see the on-line progeCAD help), which enables the auto-repeat. Unfortunately, the MULTIPLE function does not perform a complex menu macro but allows only the repetition of a single command without parameters being specified
The only solution that can allow you to obtain the required behavior is to write a Lisp script or a VBA procedure that would do that. For example, here is a small Lisp script (which you can insert inside a button) that allows the breaking of N consecutive lines in their midpoint:
(while t (setvar "OSMODE" 2)(setq pt (getpoint "\nSelect Line"))(command "_break" pt pt) )
Warning: to get a perfect behavior it will be necessary to extend this script, the way it is reported here reset the esnap mode each time it runs.