;|============ defines "save_it" routine saves drawing with updated rev number =====================================================================|; (defun save_it () (setvar "filedia" 1) (setq FILEPRE (getvar "dwgprefix")) (setq FILESVNM (strcat FILEPRE new-filename)) (command "saveas" "" FILESVNM) (princ) ) ;|========== defines "ask_which" routine prompts users to use next consecutive or make new branch =====================================================================|; (defun ask_which () ;;;determine how to rev the filename (while (= NORB nil) (initget 2 "N B ?") (setq NORB (getkword "\nSaveAs Next or new Branch? N/B?: ")) ) ; end while ;;change the case of the response to caps (if (/= NORB nil) (setq NORB (strcase NORB)) ) ;end if ;;;;which was selected? (if (= NORB "N") (progn (setq NORB "NEXT") (save_next_rev) ) ;end "progn" ) ; end if ;;;;end 1st section ;;;start 2nd section (if (= NORB "B") (progn (setq NORB "SPEC") (save_spec_rev) ) ;end "progn" ) ;end if ) ;end "ask_which" function ;|====================== Defines "save_nex_rev" function ups the rev one number ====================================================================|; (defun save_next_rev () ;;get the drawing name (setq filename (getvar "dwgname")) (setq crev-loc-end (vl-string-search ".dwg" filename 0)) (setq crev-loc-start (vl-string-search "-" filename 8)) (setq crev (substr filename crev-loc-start (- crev-loc-end crev-loc-start) ) ) (setq branch-loc-start (vl-string-search "." crev)) (setq branch-loc-start2 (+ branch-loc-start 2)) (setq num-rev (substr crev branch-loc-start2)) (setq new-rev (+ (atoi num-rev) 1)) (setq new-filename (strcat (substr filename 1 crev-loc-start) "-" (substr crev 1 branch-loc-start) "." (itoa new-rev) ) ) ) ;|====================== Defines "save_spec_rev" function Prompts users for new rev/branch number ====================================================================|; (defun save_spec_rev () (while (= SP_branchlet nil) (initget 1 "?") (setq SP_branchlet (getstring "\nEnter new branch letter (B/C/D) or [?]: ") ) ; end setq (if (= "?" SP_branchlet) (progn (Alert " Enter the new (1) character branch letter. \n(EX: 1234-A.6 becomes 1234-B.0)" ) (setq SP_branchlet nil) (princ) ) ; end progn ) ; end if ) ; end while (setq SP_B_LN (strlen SP_branchlet)) (setq filename (getvar "dwgname")) (setq crev-loc-start (vl-string-search "-" filename 8)) (setq fname-base (substr filename 1 crev-loc-start)) (setq new-filename (strcat fname-base "-" SP_branchlet ".0")) );;end defun ;|REVSAVE.LSP -- Saves current drawing with new revision number. Last (2) digits of drawing name are replace with either A) the next consecutive number or B) with a number the users chooses. In Theory the chosen number would represent a new version "branch". Created 1/23/01 Paul Kirill, KDCAD - Kirill Design-PC & CAD Consulting www.kdcad.com info@kdcad.com|; (defun c:REVSAVE (/ filepre filesvnm filename norb flen fnum sp_num sp_num_ln renm test check check1 ) ;;;should the new rev be up a number; i.e. A.1 to A.2 or up a branch; i.e. A.5 To B.0? (ask_which) (save_it) (princ) )