(defun C:multcopy ( / ent tdist pnt1 spt1 ang1 dist)
(set)
(setq ent T)
(while ent (setq tdist 0)
(setq Ent (SSget))
(if ent
(progn
(setq Pnt1 (getpoint “nBase point:”))
(setq spt1 (getpoint Pnt1 “nAngle point:”))
(setq ang1 (angle pnt1 spt1))
(while
(and (setq dist (mc_udist 1 “” “nDistance:” dist pnt1))(/= dist 0.0))
(setq tdist (+ tdist dist))
(setq spt1 (polar pnt1 ang1 tdist))
(command “Copy” Ent “” Pnt1 spt1)
)
)
(princ “nNext distance:”)
)
)
(reset)
)
(defun mc_udist (bit kwd msg def bpt / inp)
(if def (setq msg (strcat “n>> ” msg ” <” (rtos def) “>: “)bit (* 2 (fix (/ bit 2))))
(setq msg (strcat “n>> ” msg “: “)))
(initget bit kwd)(setq inp (if bpt (getdist msg bpt)
(getdist msg)))
(if inp inp def))
(princ)