; ; This program will plot HP Laser plots in batch using a script file. ; The user specifies the DWG filename search string (wildcards OK). ; ; AUTHOR: Henry C. Francis ; 425 N. Ashe St. ; Southern Pines, NC 28387 ; ; All rights reserved without prejudice. ; ; Copyright: 7-20-94 ; Edited: 8-19-94 ; (defun C:PLOTS ( / fp1 fp2 fp3 fp4 item item1 str01 str1 str2 str3 fltrl pltfs fstr dostr goplt sdplt tmplt tpltd tmplx hdln) (if c:plbl nil (load"plbl")) (setvar "cmdecho" 0) (setvar "expert" 1) (setvar "filedia" 0) (setq osmod (getvar"osmode")) (setvar "osmode" 0) (setq dwgp (getvar"dwgprefix")) (setq plen (1+ (strlen dwgp))) (setq cdwg (getvar"dwgname")) (setq cdwgl (strlen cdwg)) (if (getenv "LGN") (setq lognm (getenv "LGN")) (setq lognm "NN") );if (cond ((eq(substr cdwg 2 1)":") (setq slen (+(strlen dwgp)1)) ) ((eq cdwgl 1) (setq slen 1) ) ((eq(substr cdwg(- cdwgl 1)1)"\\") (setq slen cdwgl) ) ((eq cdwgl 2) (setq slen 1) ) ((eq(substr cdwg(- cdwgl 2)1)"\\") (setq slen (- cdwgl 1)) ) ((eq cdwgl 3) (setq slen 1) ) ((eq(substr cdwg(- cdwgl 3)1)"\\") (setq slen (- cdwgl 2)) ) ((eq cdwgl 4) (setq slen 1) ) ((eq(substr cdwg(- cdwgl 4)1)"\\") (setq slen (- cdwgl 3)) ) ((eq cdwgl 5) (setq slen 1) ) ((eq(substr cdwg(- cdwgl 5)1)"\\") (setq slen (- cdwgl 4)) ) ((eq cdwgl 6) (setq slen 1) ) ((eq(substr cdwg(- cdwgl 6)1)"\\") (setq slen (- cdwgl 5)) ) ((eq cdwgl 7) (setq slen 1) ) ((eq(substr cdwg(- cdwgl 7)1)"\\") (setq slen (- cdwgl 6)) ) ((eq cdwgl 8) (setq slen 1) ) ((eq(substr cdwg(- cdwgl 8)1)"\\") (setq slen (- cdwgl 7)) ) ((eq(substr cdwg(- cdwgl 9)1)"\\") (setq slen (- cdwgl 8)) ) ((eq(substr cdwg(- cdwgl 10)1)"\\") (setq slen (- cdwgl 9)) ) ((eq(substr cdwg(- cdwgl 11)1)"\\") (setq slen (- cdwgl 10)) ) ((eq slen nil) (setq slen 1) ) );cond (setq cdwg (strcat (getvar"dwgprefix")(substr cdwg slen))) (setq dfltr (ustr 1 "\nFile Selection String (*,? wildcards OK, no extension) " (if dfltr dfltr cdwg) nil)) (setq whplt (ukword 1 "Extents Limits" "Plot Extents or Limits? " (if whplt whplt "Limits"))) (setq hdln (ukword 1 "N Y" "Remove Hidden Lines? " (if hdln hdln "Y"))) (setq fltrl (strlen dfltr)) (cond ((> fltrl 3) (if (eq (substr dfltr (- fltrl 3) 1) ".") (setq dfltr (substr dfltr 1 (- fltrl 4))) );if ) ((> fltrl 2) (if (eq (substr dfltr (- fltrl 2) 1) ".") (setq dfltr (substr dfltr 1 (- fltrl 3))) );if ) ((> fltrl 1) (if (eq (substr dfltr (- fltrl 1) 1) ".") (setq dfltr (substr dfltr 1 (- fltrl 2))) );if ) );cond (if (eq ":" (substr dfltr 2 1)) nil (setq dfltr (strcat (getvar"dwgprefix")dfltr)) );if (setq fstr (strcat dfltr ".DWG")) (if (= cdwg dfltr) (progn (setq tpltd (strcat dwgp lognm "PLOTD.LST")) (setq tmplt (open tpltd "w")) (setq dwgstr (strcat cdwg ".DWG")) (write-line dwgstr tmplt) (close tmplt) (prompt dwgstr) (setq goplt (ukword 1 "Yes No Edit" "Plot this file or Edit list to plot? (Yes, No or Edit)" "Yes")) );progn (progn (setq tfile (open (strcat dwgp lognm "PLOTD.LST") "w")) (close tfile) (setq ofile (findfile (strcat dwgp lognm "PLOTD.LST"))) (setq indx 2) (while (< indx (strlen ofile)) (cond ((eq "\\" (substr ofile indx 1)) (setq ofile (strcat(substr ofile 1 (1- indx))"\134"(substr ofile (+ indx 1)))) ) ) (setq indx (1+ indx)) ) (setq dostr (strcat "dir /b /o /s *.dwg > " ofile)) ;use |sort/+nnn to specify char to start sort on ;;; (setq dostr (strcat "ls -1 >" dwgp lognm "PLOTD.LST")) ;use |sort/+nnn to specify char to start sort on (textscr) (command ".sh" dostr) (command ".sh" "" (strcat "type " ofile "|more")) ;;; (command ".sh" (strcat "cat " dwgp lognm "PLOTD.LST")) (setq goplt (ukword 1 "Yes No Edit" "Plot these files or Edit list to plot? (Yes, No or Edit)" "Yes")) );progn );if (if (eq goplt "Edit") (progn (setq goplt "Y") (setq efile (findfile ofile)) (command ".sh" (strcat "ne " efile)) ;;; (command ".sh" (strcat "vi " dwgp lognm "PLOTD.LST")) ; (setq pltin (open (strcat dwgp lognm "PLOTD.LST") "r")) ; (setq dpout (open (strcat dwgp lognm "PLOTF.BAT") "w")) ; (while ; (setq nxln (read-line pltin)) ; (setq nxll (strlen nxln)) ; (if nxln ; (progn ; (setq delst (strcat "del " (substr nxln 1 (- nxll 3)) "plt")) ; (write-line delst dpout) ; );progn ; );if ; );while ; (close pltin) ; (close dpout) );progn );if (if (eq (substr goplt 1 1) "Y") (progn ; (setq svqt (ukword 1 "Yes No" "Do you want to save changes to this drawing? (Yes or No)" (if svqt svqt "No"))) ; (setq qtdn (ukword 1 "Yes No" "Quit when done plotting? (Yes or No)" (if qtdn qtdn "No"))) (setq ftscl (ukword 1 "Fit Halfscale Fullscale" "FIt, Halfscale, FUllscale (FI, H, or FU)" (if ftscl ftscl "Fit"))) ; (setq pltin (open (strcat dwgp lognm "PLOTD.LST") "r")) ; (setq dpout (open (strcat dwgp lognm "PLOTF.BAT") "w")) ; (while ; (setq nxln (read-line pltin)) ; (setq nxll (strlen nxln)) ; (if nxln ; (progn ; (setq delst (strcat "del " (substr nxln 1 (- nxll 3)) "plt")) ; (write-line delst dpout) ; );progn ; );if ; );while ; (close pltin) ; (close dpout) ; (if (eq (substr svqt 1 1) "Y") ; (command (c:save)) ; );if (setq fp1 (open (strcat dwgp lognm "PLOTD.LST") "r")) (setq fp2 (open (strcat dwgp lognm "PLOTH.SCR") "w")) ; (setq fp4 (open (strcat dwgp lognm "PLOTH.BAT") "w")) ; (write-line "@echo off" fp4) (write-line (strcat ".sh " dwgp lognm "PLOTF.BAT") fp2) (while (setq item (read-line fp1)) ; (setq iteml (-(strlen item)4)) (if (eq sdplt "") (setq item1 (strcat(getvar"dwgprefix")(substr item 1 (-(strlen item)4)))) (setq item1 (substr item 1 (- (strlen item)4))) );if (setq str0 "OPEN") (setq str01 "Y") (if (eq "L" (substr whplt 1 1)) (progn (setq str1 (strcat "(setq ftscl \"" ftscl "\" hdln \"" hdln "\")(load\"plbl\")(c:plbl) Plot W")) ; (setq str1 "PLOT W") (if (eq ftscl "Halfscale") (setq str2 "(polar (getvar\"limmin\")0(*(getvar\"dimscale\")0.49))") (setq str2 "(getvar\"limmin\")") ) ; (setq str2 "PLOT W") (if (eq ftscl "Halfscale") (setq str3 "(polar (getvar\"limmax\")pi(*(getvar\"dimscale\")0.24))") (setq str3 "(getvar\"limmax\")") ) ; (setq str3 "(getvar\"limmin\") (getvar\"limmax\")") );progn (progn (setq str1 (strcat "(setq ftscl \"" ftscl "\" hdln \"" hdln "\")(load\"plbl\")(c:plbl) ZOOM E")) ; (setq str1 "ZOOM E") (setq str2 "PLOT") (setq str3 "E") );progn );if (if goplt (if (eq item1 cdwg) nil (progn ; (if (or(= lognm "HCF")(= lognm "DAF")(= lognm "JWP")(= lognm "MRK")(= lognm "PD")) ; (write-line "(xunload\"amo\")" fp2) ; nil ; );if (write-line str0 fp2) (if (eq (getvar"dbmod") 0) nil (write-line str01 fp2) );if (write-line item1 fp2) );progn );if (progn ; (if (or(= lognm "HCF")(= lognm "DAF")(= lognm "JWP")(= lognm "MRK")(= lognm "PD")) ; (write-line "(xunload\"amo\")" fp2) ; nil ; );if (write-line str0 fp2) (write-line str01 fp2) (write-line item1 fp2) );progn );if (write-line str1 fp2) (write-line str2 fp2) (write-line str3 fp2) (if (or goplt (= ftscl "Halfscale")) (progn (write-line "Y" fp2) (write-line "Y 1" fp2) (if (eq (substr whplt 1 1) "L") (progn (write-line "W" fp2) (write-line str2 fp2) (write-line str3 fp2) );progn (write-line "E" fp2) );if (cond ((= ftscl "Fit") (write-line (strcat "Y N 30 N N Y I 0,0 16.01,10.51 0 N " hdln " FIT") fp2)) ((= ftscl "Halfscale") (write-line (strcat "Y N 30 N N Y I 0,0 16.01,10.51 0 N " hdln " (/ 0.5(getvar\"dimscale\"))") fp2)) ((= ftscl "Fullscale") (write-line (strcat "Y N 30 N N Y I 0,0 16.01,10.51 0 N " hdln " (/ 1.0(getvar\"dimscale\"))") fp2)) );cond );progn (write-line "N" fp2) );if (write-line item1 fp2) (setq goplt nil) (setq pltfs (strcat item1 ".PLT")) ; (write-line "c:" fp4) ; (write-line "cd\\ustn\\plotting\\hpglutil" fp4) ; (write-line (substr dwgp 1 2) fp4) ; (if (= ftscl "Fit") ; (write-line (strcat "c:printgl /FI/A0.58,0/Dlpt1/MF0.92/IWN/L11.3,17,0.0,0.0/CRYGCBMRY/S00004004/W14344212/P" pltfs) fp4) ; (write-line (strcat "c:printgl /FI/A0.58,0/Dlpt1/MF0.92/IWN/L11.3,17,0.0,0.0/CRYGCBMRY/S00004004/W14344212/P" pltfs) fp4) ; );if (setq ilast item1) (write-line "(load\"plbat\")(plbat)" fp2) );while (command) ; (write-line (strcat ".sh " dwgp lognm "ploth.bat") fp2) (if (eq (substr qtdn 1 1) "Y") (write-line "QUIT Y" fp2) (if (eq ilast cdwg) ; (progn (write-line "(graphscr)" fp2) ; (if (or(= lognm "HCF")(= lognm "DAF")(= lognm "JWP")(= lognm "MRK")(= lognm "PD")) ; (write-line "(if amorl nil (load\"amorl\"))(amorl)" fp2) ; nil ; );if ; (write-line "(setq ftscl nil)" fp2) ; (write-line ".ERASE" fp2) ; (write-line "(C:SSX)" fp2) ; (write-line "B" fp2) ; (write-line "PLTSTAMP" fp2) ; (write-line " " fp2) ; );progn ; (progn (write-line (strcat "OPEN Y " cdwg) fp2) ; (if (or(= lognm "HCF")(= lognm "DAF")(= lognm "JWP")(= lognm "MRK")(= lognm "PD")) ; (write-line "(if amorl nil (load\"amorl\"))(amorl)" fp2) ; nil ; );if ; );progn );if );if );progn (graphscr) );if (if fp1 (close fp1)) (if fp2 (close fp2)) (if fp3 (close fp3)) ; (if fp4 (close fp4)) (command ".script" (strcat dwgp lognm "ploth")) (setvar "expert" 0) (setvar "filedia" 1) (setvar "osmode" osmod) (graphscr) );defun ;;;******************************************************************** (defun *error* ( msg /) (if (/= msg "Function cancelled") (if (= msg "quit / exit abort") (progn (if fp1 (close fp1)) (if fp2 (close fp2)) (if fp3 (close fp3)) (princ) ) (progn (if fp1 (close fp1)) (if fp2 (close fp2)) (if fp3 (close fp3)) (princ (strcat "\nError: " msg)) (princ) ) ) (progn (if fp1 (close fp1)) (if fp2 (close fp2)) (if fp3 (close fp3)) (princ) ) ) ) (princ)