Code:
;-------------------------------------------------------------------------------
; l:Progress% - Move the Progress Bar
; Arguments: 1
; percent$ = 0-100 percentage of progress
;-------------------------------------------------------------------------------
(defun Progress% (percent$ / )
(setq *Inc# (1- percent$))
(Progress)
)
;-------------------------------------------------------------------------------
; l:Progress-Of - Move the Progress Bar
; Arguments: 2
; count$ = cycles counter
; total$ = total number of cycles.
;Example:
;(setq ssl (sslength ss))
;(setq i 0)
;(while (< i ssl)
; (Progress-Of i ssl)
; (setq i (1+ i))
;)
;-------------------------------------------------------------------------------
(defun Progress-Of (count$ total$ / )
(setq *Inc# (abs (fix (/ (* count$ 100.0) total$))))
(Progress)
)
;-------------------------------------------------------------------------------
Code:
(defun l:Progress (/ Complete$)
(setq *Inc# (1+ *Inc#))
(setq *Xpt# (fix (/ (* 12.3 100 *Inc#) *X#)))
(setq *Xpt# (fix (/ *Xpt# 7)))
(setq *Xpt# (* *Xpt# 7))
(if (< *Xpt# 7) (setq *Xpt# 7))
;;; (if (= (rem *Inc# 2) 1)
;;; (setq *Xpt# (+ *Xpt# 7))
;;; );if
(start_image "ProgressBar")
(if (> *Inc# 100)
(progn
(setq *Inc# 0 *Xpt# -4)
(start_image "ProgressBar")
(fill_image 3 3 (- *X# 5) (- *Y# 5) -15)
);progn
(progn
(vector_image *Xpt# 3 (+ *Xpt# 4) 3 120)
(vector_image *Xpt# 4 (+ *Xpt# 4) 4 7)
(vector_image *Xpt# 5 (+ *Xpt# 4) 5 121)
(vector_image *Xpt# 6 (+ *Xpt# 4) 6 110)
(vector_image *Xpt# 7 (+ *Xpt# 4) 7 100)
(vector_image *Xpt# 8 (+ *Xpt# 4) 8 90)
(vector_image *Xpt# 9 (+ *Xpt# 4) 9 90)
(vector_image *Xpt# 10 (+ *Xpt# 4) 10 92)
(vector_image *Xpt# 11 (+ *Xpt# 4) 11 92)
(vector_image *Xpt# 12 (+ *Xpt# 4) 12 94)
(vector_image *Xpt# 13 (+ *Xpt# 4) 13 94)
(vector_image *Xpt# 14 (+ *Xpt# 4) 14 96)
(vector_image *Xpt# 15 (+ *Xpt# 4) 15 96)
(vector_image *Xpt# 16 (+ *Xpt# 4) 16 94)
);progn
);if
(end_image)
(setq Complete$ (strcat (itoa (fix (+ *Inc# 0.5))) "% Complete..."))
(set_tile "Complete" Complete$)
(pgr-delay *Delay~)
(action_tile "cancel" "(done_dialog)(exit)")
(if (= *Inc# 100)(pgr-delay 10));Delay to show complete
(princ)
);defun Progress