42
104
69
后起之秀
;DDNUMB.LSP for release 15;Auto numbers text strings.;Written by: S. Restmeyer 3/01;;;;;;----------------------ERROR FUNCTION----------------------------;;;(DEFUN ERR (S) ;if an error (such as CTRL-C) ;occurs while this command is active... (if (not (member s '("console break" "Function cancelled"))) (princ (strcat "\nError: " s)) ) (command "_.UNDO" "_E") ;end any outstanding UNDO group (setvar "cmdecho" cmd) ;restore saved mode (setq *error* olderr) (princ));;;---------------------- MAIN PROGRAM ----------------------------;;;(defun C:DDNUMB (/ CMD dcl_id1 olderr) (setq olderr *error**error* err ) (SETQ CMD (GETVAR "CMDECHO")) (command "_.UNDO" "_G") (setvar "cmdecho" 0) (defun set_replace () (cond ((= (get_tile "do_replace") "0") (set_tile "sort_type" "0") (mode_tile "sort_type" 1) (set_tile "start_no" " ") (mode_tile "start_no" 1) (set_tile "txt_inc" " ") (mode_tile "txt_inc" 1) ) ) (cond ((= (get_tile "do_replace") "1") (mode_tile "sort_type" 0) (mode_tile "start_no" 0) (mode_tile "txt_inc" 0) (if sort_type (set_tile "sort_type" sort_type) (set_tile "sort_type" "0") ) (if txt_inc (set_tile "txt_inc" (rtos txt_inc 2 0)) (set_tile "txt_inc" "1") ) (if start_no (set_tile "start_no" (rtos start_no 2 0)) (set_tile "start_no" "1") ) ) ) ) (defun my_help () (setq file_name (findfile "autonumb.pdf")) (startapp "acrobat.exe" (strcat """ file_name """)) ) (defun get_data () (setq suffix (get_tile "suffix")) (setq prefix (get_tile "prefix")) (setq start_no (atoi (get_tile "start_no"))) (setq txt_inc (atoi (get_tile "txt_inc"))) (setq sort_type (get_tile "sort_type")) (setq do_replace (get_tile "do_replace")) );;;-------------------------------------------------------------------;;;-----------THIS SECTION RETRIEVES USER INPUT INFORMATION------------;;; (setq dcl_id1 (load_dialog "autonumb.dcl")) (if (not (new_dialog "ddstart" dcl_id1))(exit) ) (setq sort_list '("Selection" "Top-Bottom" "Left-Right" "Bottom-Top" "Right-Left")) (start_list "sort_type")(mapcar 'add_list sort_list) (end_list) (if sort_type (set_tile "sort_type" sort_type) (set_tile "sort_type" "0") ) (if prefix (set_tile "prefix" prefix) ) (if suffix (set_tile "suffix" suffix) ) (if start_no (set_tile "start_no" (rtos start_no 2 0)) (set_tile "start_no" "1") ) (if txt_inc (set_tile "txt_inc" (rtos txt_inc 2 0)) (set_tile "txt_inc" "1") ) (action_tile "do_replace" "(set_replace)") (action_tile "numb_hlp" "(my_help)") (action_tile "accept" "(setq start_ok T)(get_data)(done_dialog 1)") (action_tile "cancel" "(setq start_ok nil)(done_dialog 0)") (start_dialog) (unload_dialog dcl_id1);;;-------------------------------------------------------------------;;;---------------THIS SECTION MODIFIES SELECTED TEXT-----------------;;; (defun get_txt (/ sset sset1 sset2 sset3 test num llen temp old) (setq sset (ssget '((0 . "TEXT")))) (setq num 0) (if (= do_replace "1") (progn (cond ((= sort_type "0") (while (< num (sslength sset)) (setq temp (entget (ssname sset num))) (setq old (assoc 1 temp))