; ; 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 dfltr fltrl pltfs fstr dostr cdwg goplt svqt qtdn sdplt whplt ftscl 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) " cdwg nil)) (setq whplt (ukword 1 "Extents Limits" "Plot Extents or Limits? " "Limits")) (setq hdln (ukword 1 "N Y" "Remove Hidden Lines? " "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 dostr (strcat "dir /b /o /s " fstr ">" dwgp lognm "PLOTD.LST")) ;use |sort/+nnn to specify char to start sort on (textscr) (command ".sh" dostr) (command ".sh" (strcat "type " dwgp lognm "PLOTD.LST|more")) (setq goplt (ukword 1 "Yes No Edit" "Plot these files or Edit list to plot? (Yes, No or Edit)" "Yes")) );progn );if (if (eq (substr goplt 1 1) "E") (progn (setq goplt "Y") (command ".sh" (strcat "ne " 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)" "No")) (setq qtdn (ukword 1 "Yes No" "Quit when done plotting? (Yes or No)" "No")) (setq ftscl (ukword 1 "Fit Halfscale Fullscale" "FIt, Halfscale, FUllscale (FI, H, or FU)" "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") (setq str2 "(getvar\"limmin\")") ; (setq str2 "PLOT W") (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.1,10.375 0 N " hdln " FIT") fp2)) ((= ftscl "Halfscale") (write-line (strcat "Y N 30 N N Y I 0,0 16.1,10.375 0 N " hdln " (/ 0.5(getvar\"dimscale\"))") fp2)) ((= ftscl "Fullscale") (write-line (strcat "Y N 30 N N Y I 0,0 16.1,10.375 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) );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