(defun c:QPLOT ( / dwg layout parts sheet rev filename filepath basepath cadfolder drawingspath subfolder pdfroot pdfpath datepath date pos tmp result ) ;; Prompt user (works everywhere) (initget "Yes No") (setq result (getkword "\nProceed with plotting? [Yes/No] : ")) ;; If No → cancel (if (= result "No") (progn (princ "\nPlot cancelled.") (exit) ) ) ;; Get DWG name (no extension) (setq dwg (vl-filename-base (getvar "DWGNAME"))) ;; Get layout (setq layout (getvar "CTAB")) ;; Get date from DWG name (setq date (substr dwg 1 8)) ;; Split layout name (setq parts '()) (setq tmp layout) (while (setq pos (vl-string-search "_" tmp)) (setq parts (cons (substr tmp 1 pos) parts)) (setq tmp (substr tmp (+ pos 2))) ) (setq parts (reverse (cons tmp parts))) ;; Extract sheet + revision (setq sheet (nth 0 parts)) (setq rev (nth (- (length parts) 1) parts)) ;; Build filename (setq filename (strcat dwg "_" sheet "_" rev ".pdf")) ;; Paths (setq basepath (vl-string-right-trim "\\" (getvar "DWGPREFIX"))) (setq cadfolder basepath) (setq subfolder (vl-filename-base cadfolder)) (setq cadfolder (vl-filename-directory cadfolder)) (setq drawingspath (vl-filename-directory cadfolder)) ;; Create folders (setq pdfroot (strcat drawingspath "\\PDFs\\")) (if (not (vl-file-directory-p pdfroot)) (vl-mkdir pdfroot)) (setq pdfpath (strcat pdfroot subfolder "\\")) (if (not (vl-file-directory-p pdfpath)) (vl-mkdir pdfpath)) (setq datepath (strcat pdfpath date "\\")) (if (not (vl-file-directory-p datepath)) (vl-mkdir datepath)) ;; Final file path (setq filepath (strcat datepath filename)) ;; Plot using Page Setup (command "-plot" "No" layout "" "" filepath "No" "Yes" ) ;; Open PDF (startapp filepath) (princ) )