;subs

(defun s00 ()

(command "layer" "t" "0" "")

(command "layer" "s" "0" ""))

(defun ans ()

(setq a1 (/ pi 2.0))

(setq a2 (* a1 1.5))

(setq a3 (* a1 3))

(setq a4 (/ a1 2.0))

(setq a5 (* a1 2.0))

(setq a6 (* a4 7.0))

(setq a7 (* a4 5.0)))

 

(defun cc ()

(setvar "osmode" 4)(setq pt1 (getpoint "pt1: "))

(setvar "osmode" 4)(setq pt2 (getpoint "pt2: " pt1))

(setvar "osmode" 0))

 

(defun cen () (setvar "osmode" 4))

 

(defun ci ()(cen)(setq pt1 (getpoint "pt1: "))

(int)(setq pt2 (getpoint "pt2: " pt1))(none))

 

(defun cm ()(cen)(setq pt1 (getpoint "pt1: "))

(mid)(setq pt2 (getpoint "pt2: " pt1))(none))

 

(defun cp ()(cen)(setq pt1 (getpoint "pt1: "))

(perp)(setq pt2 (getpoint "pt2: " pt1))(none))

 

(defun dc()(setvar "lunits" 2))

(defun ah()(setvar "lunits" 4))

 

(defun e ()

(setq e1 (car (entsel)))

(setq ed (entget e1))

(setq p1 (dxf 10 ed))

(setq p2 (dxf 11 ed))

(setq p3 (osnap p1 "mid")))

 

(defun ee ()

(setvar "osmode" 1)(setq pt1 (getpoint "pt1: "))

(setvar "osmode" 1)(setq pt2 (getpoint "pt2: " pt1))

(setvar "osmode" 0))

 

(defun el () (entget (entlast)))

 

(defun end () (setvar "osmode" 1))

 

(defun ep ()

(setvar "osmode" 1)(setq pt1 (getpoint "pt1: "))

(setvar "osmode" 128)(setq pt2 (getpoint "pt2: " pt1))

(setvar "osmode" 0))

 

(defun es ()(setq e1 (entget (car (entsel "e1:"))))

(setq p1 (cdr (assoc 10 e1)))

(setq p2 (cdr (assoc 11 e1)))

(setq e2 (entget (car (entsel "e2:"))))

(setq p3 (cdr (assoc 10 e2)))

(setq p4 (cdr (assoc 11 e2))))

 

(defun ftm () (setq x (getdist "\nFeet= "))

(setq d (* x 0.3048)))

;meters to feet

(defun mtf () (setq x (getdist "\nMeters= "))

(setq d x)(setq d (* x 3.2808 12))

(rtos (* x 3.2808 12) 4 4))

;meters to inches

(defun mti () (setq x (getdist "\nMeters= "))

(* x 3.2808 12))

 

(defun gens (/ ss1) (setq i 0)

(while (< i n)(setq en (ssname ss1 i))

(setq enlist (append enlist (list en)))

(setq i (1+ i))))

 

(defun geps ()

(foreach en enlist

(while

(setq ep10 (dxf 10 (entget en)))

(setq epl10 (append epl10 (list ep10)))

(setq ep11 (dxf 11 (entget en)))

(setq epl11 (append epl11 (list ep11))))))

 

(defun dr ()(setq a (* pi a))(setq a (/ a 180)))

;(defun r()(command "'redraw"))

(defun rd ()(setq a (/ (* a 180) pi)));defun

(defun um()(command "undo" "m"))

(defun ub()(command "undo" "b"))

(defun h0 () (setvar "highlight" 0))

(defun h1 () (ser)(setvar "highlight" 1))

(defun c0 () (setvar "cmdecho" 0))

(defun c1 () (setvar "cmdecho" 1))

 

(defun ii ()

(setvar "osmode" 32)(setq pt1 (getpoint "pt1: "))

(setvar "osmode" 32)(setq pt2 (getpoint "pt2: " pt1))

(setvar "osmode" 0))

 

;(defun ins () (setvar "osmode" 64))

(defun inn () (setvar "osmode" 64))

 

(defun int () (setvar "osmode" 32))

 

(defun m () (near)(setq m0 (getpoint))

(setq m1 (osnap m0 "mid"))(none))

 

(defun m0 () (setvar "mirrtext" 0))

 

(defun m1 () (setvar "mirrtext" 1))

 

(defun midline ()

(setq d1 (distance p1 p2))

(setq n1 (angle p1 p2))

(setq hd1 (/ d1 2.0))

(setq mp (polar p1 n1 hd1)))

(defun mi ()

(command "osnap" "mid"))

(defun mid ()

(xz)

(setq n1 (angle p1 p2))

(setq mp (polar p1 n1 hd1)))

 

(defun ml ()

(setq e1 (car (entsel)))

(command "copy" e1 "" "0,0" "0,0")

(entdel e1)(setq e2 (entlast))(redraw e2 1))

 

(defun mll()

(command "layer" "m" lay "")

(command "layer" "t" lay "" "")

(command "layer" "on" lay "" ""))

 

(defun mp ()

(setvar "osmode" 2)(setq pt1 (getpoint "pt1: "))

(setvar "osmode" 128)(setq pt2 (getpoint "pt2: " pt1))

(setvar "osmode" 0))

(defun mt ()(prompt "Make two..")

(setq e1 (car (entsel)))

(command "copy" e1 "" "0,0" "0,0"))

 

(defun near ()

;(setvar "osmode" 512))

(c0)

(command "osnap" "qui,nea")

(c1))

 

(defun nl ()(setq p1 nil)(setq p2 nil)(setq p3 nil)(setq p4 nil)

(setq p5 nil)(setq p6 nil))

 

(defun node () (setvar "osmode" 8))

 

(defun none ()

(setvar "osmode" 0))

(defun quad () (command "osnap" "quad"))

(defun perp () (command "osnap" "qui,perp"))

 

 

(defun np ()

(c0)

;(setvar "osmode" 512)

(command "osnap" "qui,near")

(setq pt1 (getpoint "pt1: "))

(command "osnap" "qui,perp")

;(setvar "osmode" 128)

(setq pt2 (getpoint "pt2: " pt1))

(setvar "osmode" 0)(c1))

 

(defun o0 () (setvar "orthomode" 0))

 

(defun o1 () (setvar "orthomode" 1))

 

(defun perp () (setvar "osmode" 128))

 

(defun pp ()

(setq pt1 (getpoint "Pick 1st point of crossing window:"))

(setq pt2 (getpoint "Pick 2nd point of crossing window:")))

 

(defun tan () (setvar "osmode" 256))

 

(defun pt ()(setq p1 (getpoint "Enter point: ")))

(defun sdp()(xz)(setq d (distance p1 p2)))

;selection set

(defun ssw () (pp)(setq i 0)

(setq ss1 (ssget "w" pt1 pt2))

(setq n (sslength ss1)));defun

(defun brd ()(setq b (/ (* b 180) pi)));defun

 

(defun ssc1 () (pp)(setq i 0)

(setq ss1 (ssget "c" pt1 pt2))

(setq dis (distance pt1 pt2))

(setq d9 (distance pt1 pt2))

(setq tn (angle pt1 pt2))

(setq tp (polar pt1 tn 0.1))

(setq d92 (/ d9 2.0))

(setq tm (polar pt1 tn d92))

(setq n (sslength ss1))

);defun

 

(defun ssins ()

(ssget "x")

(setq ss1 (ssget "x" '((0 . "INSERT"))))

(setq n (sslength ss1)));defun

(defun gg4()

(cond ((= gr "1")

(setq fno 1.0)))

(cond ((= gr "2")

(setq fno 2.0)))

(cond ((= gr "3")

(setq fno 3.0)))

(cond ((= gr "4")

(setq fno 4.0)))

(cond ((= gr "5")

(setq fno 5.0)))

(cond ((= gr "6")

(setq fno 6.0)))

(cond ((= gr "7")

(setq fno 7.0)))

(cond ((= gr "8")

(setq fno 8.0)))

(cond ((= gr "9")

(setq fno 9.0)))

(cond ((= gr "0")

(setq fno 10.0)))

(cond ((= gr "q")

(setq fno 11.0)))

(cond ((= gr "w")

(setq fno 12.0)))

(cond ((= gr "e")

(setq fno 13.0)))

(cond ((= gr "r")

(setq fno 14.0)))

(cond ((= gr "t")

(setq fno 15.0)))

(cond ((= gr "y")

(setq fno 16.0)))

(cond ((= gr "u")

(setq fno 17.0)))

(cond ((= gr "i")

(setq fno 18.0)))

(cond ((= gr "o")

(setq fno 19.0)))

(cond ((= gr "p")

(setq fno 20.0)))

(cond ((= gr "a")

(setq fno 21.0)))

(cond ((= gr "s")

(setq fno 22.0)))

(cond ((= gr "d")

(setq fno 23.0)))

(cond ((= gr "f")

(setq fno 24.0)))

(cond ((= gr "g")

(setq fno 25.0)))

(cond ((= gr "h")

(setq fno 26.0)))

(cond ((= gr "j")

(setq fno 27.0)))

(cond ((= gr "k")

(setq fno 28.0)))

(cond ((= gr "l")

(setq fno 29.0)))

(cond ((= gr ";")

(setq fno 30.0)))

(cond ((= gr "z")

(setq fno 31.0)))

(cond ((= gr "x")

(setq fno 32.0)))

(cond ((= gr "c")

(setq fno 33.0)))

(cond ((= gr "v")

(setq fno 34.0)))

(cond ((= gr "b")

(setq fno 35.0)))

(cond ((= gr "n")

(setq fno 36.0)))

(cond ((= gr "m")

(setq fno 37.0)))

(cond ((= gr ",")

(setq fno 38.0)))

(cond ((= gr "\.")

(setq fno 39.0)))

(cond ((= gr "/")

(setq fno 40.0))))

 

(defun gsstxt (/ ss1)

(ssget "x")

(setq ss1 (ssget "x" '((0 . "TEXT"))))

(setq n (sslength ss1)));defun

(defun sstxt ()

(setq ss1 (ssget "x" '((0 . "TEXT"))))

(setq n (sslength ss1)));defun

 

 

(defun sx()(command "script"))

(defun uw()(command "ucs" ""))

 

;(defun s0 ()(setvar "snapang" 0))

(defun s0 ()(command "snapang" 0))

;(if (= c:xh nil) (load "xh"))

 

(defun dtr (angg)(* pi (/ angg 180.0)))

 

;SET CROSSHAIRS

(defun xh () (o1)

(um)(h0)(c0)

(ans)

(near)

(setq t1 (getpoint "Point: "))

(none)

(setq t2 (osnap t1 "end"))

;(setq t3 (osnap t1 "mid"))

(setq n1 (angle t1 t2))

(setvar "snapang" n1)

(o1)

(h1)(c1)

(setq sva a)

(setq a n1)

(rd)

(setq an a)

(setq a sva)

(print n1)

(print an))

 

(defun xz()

(setq e1 (car (entsel)))

(setq ed (entget e1))

(setq p1 (dxf 10 ed))

(setq p2 (dxf 11 ed))

(setq n1 (angle p1 p2))

(setq d1 (distance p1 p2))

(setq hd1 (/ d1 2.0)))

(defun xzl()

(setq e1 (entlast))

(setq ed (entget e1))

(setq p1 (dxf 10 ed))

(setq p2 (dxf 11 ed))

(setq n1 (angle p1 p2))

(setq d1 (distance p1 p2))

(setq hd1 (/ d1 2.0)))

(defun xzp()

(setq e1 (car (entsel)))

(setq ed (entget e1))

(setq p1 (dxf 10 ed))

(setq p2 (dxf 11 ed))

(setq n1 (angle p1 p2))

(setq d1 (distance p1 p2))

(setq hd1 (/ d1 2.0)))

(defun ze()(command "zoom" "e"))

(defun zx()(setq e2 (car (entsel)))

(setq ee (entget e2))

(setq p3 (dxf 10 ee))

(setq p4 (dxf 11 ee)))

(defun had()(setq had (/ d 2.0))(setq r had)(setq c had))

;single pick x-ing, cx.lsp

(defun cx()

(setq pt1 (getpoint "1st pt:"))

(setq ca 2.35619)

(setq pt2 (polar pt1 ca c)))

 

(defun pts()

(setq pt (getpoint "Enter point: "))

(setq pt1 (polar pt a1 1000))

(setq pt2 (polar pt a3 1000))

(setq pt3 (polar pt 0 1000))

(setq pt4 (polar pt a5 1000))

(setq i 0))

 

(defun hls(/ ss1)

(setq ss1 (ssget "c" pt1 pt2))

(setq s1 (ssname ss1 i))

(setq j (+ i 1))

(setq s2 (ssname ss1 j))

(setq ed1 (entget s1))

(setq ed2 (entget s2))

(setq p1 (dxf 10 ed1))

(setq p2 (dxf 11 ed1))

(setq p3 (dxf 10 ed2))

(setq p4 (dxf 11 ed2))

(setq d1 (distance p1 p2))

(setq d2 (distance p3 p4))

(setq n1 (angle p1 p2))

(setq n2 (angle p3 p4))

(setq tp1 (polar p1 n1 0.1))

(setq tp2 (polar p3 n2 0.1))

(setq m1 (osnap tp1 "mid"))

(setq m2 (osnap tp2 "mid"))

(grdraw m1 p2 5)

(grdraw m2 p4 5))

(setq n1 1)

 

(defun mp1()(near)(h0)(c0)

(setq p3 (getpoint "Pick line:"))

(setq pt (polar p3 0 0.1))

(setq ss1 (ssget "c" p3 pt))(1l)

(setq p4 (osnap p3 "end"))

(setq d2 (distance p1 p3))

(setq d3 (distance p2 p3))

(setq d4 (distance p3 p4))

(cond ((= d2 d4)

(entdel s1)

(command "line" p1 p2 "")

(command "chprop" "l" "" "la" cl "")

(setq e1 (entlast))

(none)(h1)(c1)))

(cond ((= d3 d4)

(setq ed (entget s1))

(setq p2 (dxf 10 ed))

(setq p1 (dxf 11 ed))

(entdel s1)

(command "line" p1 p2 "")

(command "chprop" "l" "" "la" cl "")

(setq e1 (entlast))

(none)(h1)(c1))))

 

(defun de()(entdel e1))

 

(defun mps()

(setq d1 (distance p1 p2))

(setq d2 (distance p3 p4))

(setq n1 (angle p1 p2))

(setq n2 (angle p3 p4))

(setq tp1 (polar p1 n1 0.1))

(setq tp2 (polar p3 n2 0.1))

(setq m1 (osnap tp1 "mid"))

(setq m2 (osnap tp2 "mid")))

 

(defun n1()

(setq n1 (angle p1 p2)))

 

(defun d1()

(setq d1 (distance p1 p2)))

 

(defun dis()

(setq d1 (distance p1 p2))

(setq d2 (distance p3 p4)))

 

(defun an()

(setq n1 (angle p1 p2))

(setq n2 (angle p3 p4)))

 

(defun 2l()(ans)

(setq s1 (ssname ss1 0))

(setq ed1 (entget s1))

(setq p1 (dxf 10 ed1))

(setq p2 (dxf 11 ed1))

(setq s2 (ssname ss1 1))

(setq ed2 (entget s2))

(setq p3 (dxf 10 ed2))

(setq p4 (dxf 11 ed2))

(setq i1 (inters p1 p2 p3 p4 nil))

(setq n1 (angle p1 p2))

(setq n19 (+ a1 n1))

(setq n2 (angle p3 p4))

(setq tp1 (polar p1 n1 0.1))

(setq tp2 (polar p3 n2 0.1))

(setq m1 (osnap tp1 "mid"))

(setq m2 (osnap tp2 "mid")))

 

(defun tni()(setq txt nil)(setq d nil)(setq d1 0)

(setq n 0)(setq ds nil)(setq s 0)(setq fa 0)(setq tj nil)

(setq p1 nil)

(setq p2 nil)

(setq p3 nil)

(setq p4 nil))

(defun lp0()(setvar "luprec" 0))

(defun lp4()(setvar "luprec" 4))

 

(defun 1l()(ans)

(setq s1 (ssname ss1 0))

(setq ed1 (entget s1))

(setq cl (dxf 8 ed1))

(setq p1 (dxf 10 ed1))

(setq p2 (dxf 11 ed1))

(setq d1 (distance p1 p2))

(setq n1 (angle p1 p2))

(setq n19 (+ n1 a1)))

 

(defun sd ()

(setq d (udist 0 "" "\nEnter distance" d nil)))

 

(defun mlc ()(ssc)

(setq ss1 (ssget "c" pt1 pt2))

(setq n (sslength ss1))

(setq i 0)

(while (< i n)(setq s1 (ssname ss1 i))

(command "copy" s1 "" "0,0" "0,0")(entdel s1)

(setq e1 (entlast))

(redraw e1 1)

(setq i (+ i 1))))

(defun sdt ()

(setq th (getvar "TEXTSIZE"))

(setq td (* th 1.61905))(princ))

 

(defun pl ()

(setq mx (getvar "limmax"))(setq mn (getvar "limmin"))

(setq x1 (rtos (car mn)))(setq y1 (rtos (cadr mn)))

(setq x2 (rtos (car mx)))(setq y2 (rtos (cadr mx)))

(setq pl1 (strcat "(" x1 ", "  y1 ")"))

(setq pl2 (strcat "(" x2 ", "  y2 ")"))

(prompt (strcat "Current drawing limits: " pl1 " to " pl2))(princ))

(defun rf()(sdt)(ans)(setq n (+ n 1))

(graphscr)

(setq p1 (getpoint "Enter point: "))

(setq fln (ustr 0 "\nFile name" fln nil))

(setq f (open fln "r"))

  (setq e 1)

  (while e

    (setq s (read-line f))

    (if (= s nil) (setq e nil))

  (command "text" p1 "" s)

  (setq p1 (polar p1 a3 td))))

(defun sz()(setq as (getvar "dimasz")))

(defun os0 ()

(setvar "osmode" 0))

(defun os3 ()

(command "osnap" "mid,end,ins,cen"))

(defun os4 ()

(command "osnap" "mid,end,ins,cen,int"))

 

(defun os()

(setq op (ustr 0 "\nEnter oper" op nil))

(cond ((= op "e")

(setq bx "end")))

(cond ((= op "m")

(setq bx "mid")))

(cond ((= op "i")

(setq bx "int")))

(cond ((= op "c")

(setq bx "cen")))

(cond ((= op "q")

(setq bx "quad")))

(cond ((= op "p")

(setq bx "perp")))

(cond ((= op "n")

(setq bx "near")))

(prompt (strcat "First osnap is:" bx))

(setq op (ustr 0 "\nEnter oper" op nil))

(cond ((= op "e")

(setq dx "end")))

(cond ((= op "m")

(setq dx "mid")))

(cond ((= op "i")

(setq dx "int")))

(cond ((= op "c")

(setq dx "cen")))

(cond ((= op "q")

(setq dx "quad")))

(cond ((= op "p")

(setq dx "perp")))

(cond ((= op "n")

(setq dx "near")))

(prompt (strcat "Second osnap is:" dx)))

(defun xt1()

(setq e1 (car (entsel)))

(setq ed1 (entget e1))

(setq p1 (dxf 10 ed1))

(setq tx1 (dxf 1 ed1)))

(defun xt2()

(setq e2 (car (entsel)))

(setq ed2 (entget e2))

(setq p2 (dxf 10 ed2))

(setq tx2 (dxf 1 ed2)))

(defun zt1()

(setq e1 (car (entsel)))

(setq ed1 (entget e1))

(setq p1 (dxf 10 ed1))

(setq tx1 (dxf 1 ed1)))

(defun zt2()

(setq e2 (entlast))

(setq ed2 (entget e2))

(setq p2 (dxf 10 ed2))

(setq tx2 (dxf 1 ed2)))

 

(defun las ()

(setq e1 (entlast))

(setq ed (entget e1))

(setq p1 (dxf 10 ed))

(setq p2 (dxf 11 ed)))

 

(defun lp()

(setvar "luprec" 4))(lp)

(defun ifarc()

(setq en (dxf 0 ed))

(cond ((= en "ARC")

(entdel s1))))

(defun ifv()

(ans)

(cond ((= n1 a1)

(entdel s1)))

(cond ((= n1 a3)

(entdel s1))))

 

(defun na()

(setvar "snapang" n1))

(defun n0()

(setvar "snapang" 0))

(defun sam()(ssc)

(setq ss1 (ssget "c" pt1 pt2))

(setq n (sslength ss1))

(setq i 0)

(while (< i n)

(setq s1 (ssname ss1 i))

(setq ed (entget s1))

(setq en (dxf 0 ed))

(ifarc)

(cond ((= en "LINE")

(setq p1 (dxf 10 ed))

(setq p2 (dxf 11 ed))

(setq n1 (angle p1 p2))

(setq d1 (distance p1 p2))

(setq hd1 (/ d1 2.0))

(setq m1 (polar p1 n1 hd1))

(command "scale" s1 "" m1 0.9)))

(setq i (+ i 1))))

 

;text justification

(defun tj ()(ans)

(setq txt (ustr 0 "Enter new justification" txt nil))

(mlc)

(setq ss1 (ssget "c" pt1 pt2))

(setq n (sslength ss1))

(setq s0 (ssname ss1 0))

(setq p1 (dxf 10 (entget s0)))

(setq i 0)

(while (< i n)(setq s1 (ssname ss1 i))

(setq ed (entget s1))

(setq en (dxf 0 ed))

(cond ((= en "TEXT")

(setq s (dxf 1 ed))

(entdel s1)

(command "text" "j" txt p1 "" s)

(setq p1 (polar p1 a3 td))))

(setq i (+ i 1))))

(defun p0()(setq p0 (list 0.0 0.0 0.0)))

(defun in()

(setq p1 (getpoint "Point: "))

(command "line" p1 pause "")

(setq e1 (entlast))

(setq ed (entget e1))

(setq p2 (dxf 11 ed))

(setq d (distance p1 p2))

(entdel e1))

(defun p()(xz)(setq d d1))

(defun as()

(setq e1 (car (entsel)))

(setq ed (entget e1))

(setq p1 (dxf 10 ed))

(setq p2 (dxf 11 ed))

(setq p3 (dxf 12 ed))

(setq d1 (distance p1 p2))

(setq hd1 (/ d1 2.0))

(setq n1 (angle p1 p2))

(setq p4 (polar p1 n1 hd1))

(setq as (distance p3 p4)))

 

(setq n 0)

 

(defun mp1c()(h0)(c0)

(ssc)

(entdel te)

(while (< i n)

(setq s1 (ssname ss1 i))

(setq ed1 (entget s1))

(setq p1 (dxf 10 ed1))

(setq p2 (dxf 11 ed1))

(setq p3 (inters p1 p2 pt1 pt2 nil))

(entdel te)

(setq p4 (osnap p3 "end"))

(setq d2 (distance p1 p3))

(setq d3 (distance p2 p3))

(setq d4 (distance p3 p4))

(cond ((= d3 d4)

(setq ed (entget s1))

(setq p2 (dxf 10 ed))

(setq p1 (dxf 11 ed))

(entdel s1)

(command "line" p1 p2 "")))

(entdel te)

(setq i (+ i 1)))

(entdel te)

(h1)(c1))

 

(defun htt ()

(menucmd "S=HT")

;(setq th (udist 0 "" "\nEnter new height" th nil))

(setq th (getvar "textsize"))

;(setvar "textsize" th)

(command "style" "" "" th "" "" "" "" "")(sdt)

(menucmd "S="))

(defun ht ()

(setq th (udist 0 "" "\nEnter new height" th nil))

(setvar "textsize" th))

(defun mp2c()(h0)(c0)

(ssc)

(entdel te)

(while (< i n)

(setq s1 (ssname ss1 i))

(setq ed1 (entget s1))

(setq p1 (dxf 10 ed1))

(setq p2 (dxf 11 ed1))

(setq p3 (inters p1 p2 pt1 pt2 nil))

(entdel te)

(setq p4 (osnap p3 "end"))

(setq d2 (distance p1 p3))

(setq d3 (distance p2 p3))

(setq d4 (distance p3 p4))

(cond ((= d2 d4)

(setq ed (entget s1))

(setq p2 (dxf 10 ed))

(setq p1 (dxf 11 ed))

(entdel s1)

(command "line" p1 p2 "")))

(entdel te)

(setq i (+ i 1)))

(entdel te)

(h1)(c1))

(defun gens (/ en enlist) (setq i 0)

(while (< i n)(setq en (ssname ss1 i))

(setq enlist (append enlist (list en)))

(setq i (1+ i))))

 

(defun orr()

(ans)

(ssc)

(setq j 0)

(setq m n)

(while (< j m)

(setq y1 0)

(setq i 0)

(while (< i n)

(setq s1 (ssname ss1 i))

(setq ed (entget s1))

(setq p1 (dxf 10 ed))

(setq y2 (cadr p1))

(cond ((> y2 y1)

(setq y1 y2)

(setq den s1)))

(setq i (+ i 1)))

(command "copy" den "" "0,0" "0,0")

(redraw den 1)

(entdel den)

(ssdel den ss1)

(setq n (- n 1))

(setq j (+ j 1))))

 

(defun gl()(setq p1 (getpoint "First corner: "))

(setq p3 (getpoint "Other corner: "))

(setq p2 (list (car p1) (cadr p3) 0))

(setq p4 (list (car p3) (cadr p1) 0))

(command "pline" p1 p2 p3 p4 p1 ""))

(defun orh()

(ans)

(ssc)

(setq j 0)

(setq m n)

(while (< j m)

(setq x1 0)

(setq i 0)

(while (< i n)

(setq s1 (ssname ss1 i))

(setq ed (entget s1))

(setq p1 (dxf 10 ed))

(setq x2 (car p1))

(cond ((> x2 x1)

(setq x1 x2)

(setq den s1)))

(setq i (+ i 1)))

(command "copy" den "" "0,0" "0,0")

(setq e1 (entlast))

(entdel den)

(redraw e1 1)

(ssdel den ss1)

(setq n (- n 1))

(setq j (+ j 1))))

(setq c 0.5)

 

(defun qf()

(command "qtext" "off"))

(defun qn()

(command "qtext" "on"))

(defun re()

(command "regen"))

(defun r0()(setvar "REGENMODE" 0))

(defun r1()

(setvar "REGENMODE" 1))

(defun oe()

(setq olderr *error* *error* err))

(defun ser()

(setq *error* olderr))

(defun oee (se)

(if (/= se "Function cancelled")

(princ (strcat "\nError: " se)))

(close f)

(setq *error* olderr)

(princ))

;inches, 1/16ths

(defun cv()

(setq e 1)

(if (= d1 nil) (setq d1 0))

(setq lu (getvar "lunits"))(setvar "lunits" 2)

(setq lp (getvar "luprec"))(setvar "luprec" 0)

(while e

(setq d2 (udist 0 "" "\nEnter inches" d2 nil))

(if (= d2 12)(setq e nil))

(if (= d2 12)(setq d3 0))

(if (= d2 -12)(setq e nil))

(if (= d2 -12)(setq d3 0))

(while e

(setq d3 (udist 0 "" "\nEnter 1/16ths" d3 nil))

(if (minusp d2)(setq d3 (- d3 (* 2 d3))))

(setq e nil)))

(setvar "lunits" lu)

(setvar "luprec" lp)

(setq d4 (* d3 0.0625))

(setq d (+ d2 d4))

(setq dd (rtos d))

(setq ddis (rtos d 4 4))

(prompt (strcat dd " inches" "\tdist: " ddis))(princ))

(defun vs()

(ans)

(setq v1 (getvar "vsmin"))

(setq v3 (getvar "vsmax"))

(setq vz (getvar "viewsize"))

(setq v2 (polar v1 a1 vz))

(setq v4 (polar v3 a3 vz))

(command "pline" v1 v2 v3 v4 "c" "")

(setq vrec (entlast)))

(defun yr()

(setq f1 (entlast))

(entdel f1)

(setq f2 (entlast))

(entdel f2)

(setq f3 (entlast))

(entdel f3)

(setq f4 (entlast))

(entdel f1)

(entdel f2)

(entdel f3)

(command "pedit" f1 "" "j" f2 f3 f4 "" ""))

;type text again

(defun tam ()

(prompt "Type text again..")

(ssc)(ans)

(setq ss1 (ssget "c" pt1 pt2))

(setq n (sslength ss1))

(setq i 0)

(while (< i n)(setq s1 (ssname ss1 i))

(setq ed (entget s1))

(setq en (dxf 0 ed))

(cond ((= en "TEXT")

(setq p1 (dxf 11 ed))

(setq s (dxf 1 ed))

(setq a (dxf 50 ed))(rd)

(setq ad a)

(entdel s1)

(command "text" p1 ad s)))

(setq i (+ i 1))))

(defun 3xz ()(setq e1 (car (entsel)))

(setq p1 (dxf 10 (entget e1)))

(setq p1x (rtos (car p1)))(setq p1y (rtos (cadr p1)))(setq p1z (rtos (caddr p1)))

(setq p1 (list (atof p1x) (atof p1y) (atof p1z)))

(setq p2 (dxf 11 (entget e1)))

(setq p2x (rtos (car p2)))(setq p2y (rtos (cadr p2)))(setq p2z (rtos (caddr p2)))

(setq p2 (list (atof p2x) (atof p2y) (atof p2z)))

(setq be (bangle p1 p2)))

;* ZAXIS calculates a 1-unit extrusion vector from two 3D points.

(defun zaxis (pt1 pt2 / delta sqrpt sum unitm unitv)

  (setq delta (mapcar '- pt2 pt1)            ;take difference of points

        sqrpt (mapcar '* delta delta)        ;square them

        sum (apply '+ sqrpt)                 ;add them together

        unitm (sqrt sum)                     ;get unit length

        unitv (mapcar '/ delta               ;divide by unit magnitude

                (list unitm unitm unitm)

              )

  );setq

);defun ZAXIS

;*

;* 3DPOLAR calculates a point in 3D space given rotation from X axis in XY plane,

;* rotation from XY plane toward Z, base point, and offset distance.

(defun 3dpolar (pt alpha beta dist / dx dy dz)

    (setq dx (* dist (cos alpha) (cos beta)) ;shortened by X and Z projection

          dy (* dist (sin alpha) (cos beta)) ;shortened by Y and Z projection

          dz (* dist (sin beta))             ;only Z projection causes shortening

    );setq

    (mapcar '+ (list dx dy dz) pt)           ;adds delta values to base point

);defun 3DPOLAR                     

;*

 

;* 3DP is a friendlier interface for Release 10 for the above 3DPOLAR.

;* To use transparently, enter (3dp) in menu macros or commands.

(defun 3dp ( / bpt)

  (3dpolar

    (setq bpt (getvar "LASTPOINT"))

    (uangle 1 "" "Angle from X axis in XY plane" nil bpt)

    (uangle 1 "" "Angle from XY plane toward Z" nil bpt)

    (udist 1 "" "Distance" nil nil)

  )

);defun 3DP

;*

;* BANGLE calculates the inclined angle from the XY plane between two points.

(defun bangle (pt1 pt2 / dist)

  (setq dist                                 ;projected dist in xy plane

        (distance (list (car pt1) (cadr pt1) 0) (list (car pt2) (cadr pt2) 0))

  )

  (if (zerop dist)                           ;if dist is 0, angle is 90 or all Z

    1.57079633                               ;half of pi, 90 degrees

    (atan (/ (- (caddr pt2) (caddr pt1))     ;divides the rise - delta Zs

             dist                            ;by the run - length in XY plane

    )     );atan&/

  );if

);defun BANGLE

;*

(defun newecs (zaxis ename / ed bpt)

  (setq ed (entget ename)                             ;get entity data

        bpt (trans (dxf 10 ed) ename zaxis)

        ed (subst (cons 10 bpt) (assoc 10 ed) ed)     ;substitute new 10 point

        ed (subst (cons 210 zaxis) (assoc 210 ed) ed) ;update alternate zaxis

  );setq

  (entmod ed)                                         ;update the entity data

);defun newecs

 

(defun spr()

(setq lt (dxf 6 (entget s1)))

(setq la (dxf 8 (entget s1)))

(setq clr (dxf 62 (entget s1))))

(defun sprs2()

(setq lt (dxf 6 (entget s2)))

(setq la (dxf 8 (entget s2)))

(setq clr (dxf 62 (entget s2))))

(defun spre1()

(setq lt (dxf 6 ed))

(setq la (dxf 8 ed))

(setq clr (dxf 62 ed)))

(defun rps()

(command "chprop" s1 "" "lt" lt "")

(command "chprop" s1 "" "la" la "")

(command "chprop" s1 "" "c" clr ""))

(defun rpr()

(command "chprop" "l" "" "lt" lt "")

(command "chprop" "l" "" "la" la "")

(command "chprop" "l" "" "c" clr ""))

(defun gent()

(setq t2 (polar t1 0 0.1))

(setq sss (ssget "c" t1 t2))

(setq z1 (ssname sss 0))

(setq ed (entget z1))

(setq en (dxf 0 ed)))

(defun vc ()

(setq v2 (getvar "viewctr")))

 

(defun err ()

;(defun err (sss)

(if (not (member sss '("console break" "Function cancelled")))

(princ (strcat "\nError: " sss)))

;alert "Error, check file name, file must be set up with descriptions and command code as in c:\\fc\\ge.lsp")

;(prompt "..WORKING!!!..")

;(none)(r1)(h1)(c1)(o1)(s0)

(command "ATTREQ" "1")

(r1)(h1)(c1)

(close f)(close f1)(close f2)

(setq *error* olderr)

(princ))

 

(defun err ()

(if (not (member sss '("console break" "Function cancelled")))

(princ (strcat "\nError: " sss)))

(setq *error* olderr)

(princ))

 

(defun err (s)

(if (/= s "Function cancelled")(princ (strcat "\nError: " s)))

(setq *error* olderr)(princ))

 

(defun la()

(command "layer" "s" la ""))

(defun ul()(command "ucs" "r" "left"))

(defun ur()(command "ucs" "r" "r"))

(defun ut()(command "ucs" "r" "top"))

(defun uf()(command "ucs" "r" "front"))

(defun uw()(command "ucs" ""))

(defun pe1()

(setq e1 (entlast))  ;entlast is pline

(setq ed (entget e1))

(command "explode" e1)

(setq ss1 (ssadd))

(while (entnext e1) (ssadd (setq e1 (entnext e1)) ss1))

(setq n (sslength ss1))

(setq i 0))

(defun 9o()

(setq e1 (entlast))

(setq v1 (getvar "vsmin"))

(setq v3 (getvar "vsmax"))

(command "pedit" e1 "" "j" "add" "c" v1 v3 "" ""))

(defun ol()

(setq e1 (entlast))

(setq ed (entget e1))

(setq p1 (dxf 10 ed))

(setq p2 (dxf 11 ed))

(setq ent (list e1 p1))

(command "offset" d ent pause ""))

(defun xpl()

(cond ((= ent "POLYLINE")

(command "explode" s2)

(setq ss1 nil)

(setq ss1 (ssadd))

(while (entnext s2) (ssadd (setq s2 (entnext s2)) ss1))))

(setq n (sslength ss1))

(setq i 0))

(defun gu()

(command "ucs" "s" "temp" "y"))

(defun ru()

(command "ucs" "r" "temp"))

;user functions, user.lsp

;(defun c:user()

(defun uangle (bit kwd msg def bpt / inp)

  (if def

    (setq msg (strcat "\n" msg " <" (angtos def) ">: ")

                bit (* 2 (fix (/ bit 2))))

                (setq msg (strcat "\n" msg ": ")))

                (initget bit kwd)

                (setq inp

                (if bpt

                (getangle msg bpt)

                (getangle msg)))

   (if inp inp def))

 

(defun udist (bit kwd msg def bpt / inp)

  (if def                                              ;test for a default

    (setq msg (strcat "\n" msg " <" (rtos def) ">: ")  ;string'em  with default

                  bit (* 2 (fix (/ bit 2))) ;a default and no null bit code conflict so

    );setq                          ;this reduces bit by 1 if odd, to allow null

    (setq msg (strcat "\n" msg ": "))                  ;without default

  );if

  (initget bit kwd)

  (setq inp

    (if bpt                  ;check for a base point

      (getdist msg bpt)      ;and use it in the GET commands

      (getdist msg)

  ) );setq&if

  (if inp inp def)           ;compare the results, return appropriate value

);defun

;*

(defun ukword (bit kwd msg def / inp)

  (if (and def (/= def ""))                     ;test for both nil and null string

    (setq msg (strcat "\n" msg " <" def ">: ")  ;string'em  with default

                  bit (* 2 (fix (/ bit 2))) ;a default and no null bit code conflict so

    );setq                          ;this reduces bit by 1 if odd, to allow null

    (setq msg (strcat "\n" msg ": "))           ;without default

  );if

  (initget bit kwd)                             ;initialize the key words

  (setq inp (getkword msg))                      ;and use the GET command

  (if inp inp def)               ;compare the results, return appropriate value

);defun

 

(defun ustr (bit msg def spflag / inp nval)

 

  (if (and def (/= def ""))                    ;test for both nil and null string

    (setq msg (strcat "\n" msg " <" def ">: ") ;then include the default string

                  inp (getstring msg spflag)           ;get input, ignore no null bit

                  inp (if (= inp "") def inp)          ;if null input, return default

    );setq

    (progn

      (setq msg (strcat "\n" msg ": "))        ;make string without the default

      (if (= bit 1)                            ;if no null bit set to 1

                  (while (= "" (setq inp (getstring msg spflag)))) ;then get input, no ""

                  (setq inp (getstring msg spflag))    ;else get input, "" ok

    ) );progn&if

  );if

  inp

);defun

;*

(defun ustr1 (bit msg def spflag / inp nval)

 

  (if (and def (/= def ""))                    ;test for both nil and null string

    (setq msg (strcat "\n" msg " <" def ">: ") ;then include the default string

                  inp (getstring msg t)            ;get input, ignore no null bit

                  inp (if (= inp "") def inp)          ;if null input, return default

    );setq

    (progn

      (setq msg (strcat "\n" msg ": "))        ;make string without the default

      (if (= bit 1)                            ;if no null bit set to 1

                  (while (= "" (setq inp (getstring msg t)))) ;then get input, no ""

                  (setq inp (getstring msg t))                 ;else get input, "" ok

    ) );progn&if

  );if

  inp

);defun

;*

(defun uint (bit kwd msg def / inp)

  (if def                                                 ;test for a default

    (setq msg (strcat "\n" msg " <" (itoa def) ">: ")     ;string'em with default

                 bit (* 2 (fix (/ bit 2)))  ;a default and no null bit code conflict so

    )                               ;this reduces bit by 1 if odd, to allow null

    (setq msg (strcat "\n" msg ": "))                     ;without default

  );if

  (initget bit kwd)

  (setq inp (getint msg))       ;use the GETINT function

  (if inp inp def)              ;compare the results, return appropriate value

);defun

;*

 

 

(defun ureal (bit kwd msg def / inp)

  (if def                                                  ;test for a default

    (setq msg (strcat "\n" msg " <" (rtos def 2) ">: ")    ;string'em with default

                  bit (* 2 (fix (/ bit 2)))  ;a default & no null bit code conflict so

    )                                ;this reduces bit by 1 if odd, to allow null

    (setq msg (strcat "\n" msg ": "))                      ;without default

  );if

  (initget bit kwd)

  (setq inp (getreal msg))           ;the GETREAL function

  (if inp inp def)                   ;compare the results, return appropriate value

);defun

;*

;);sub

(defun dxf (code elist)

(cdr (assoc code elist)))

(defun lb ()(setq e99 (entlast))(entdel e99)

(entdel (entlast))(entdel e99))

(defun rm()

(command "style" "romans" "romans" th "" "" "" "" "")

(sdt))

 

(defun m12()

(setq d1 (distance p1 p2))

(setq d2 (/ d1 2))

(setq pm12 (polar p1 n1 d2)))

 

(defun jll()

(setq ed (entget s1))

(setq j1 (dxf 10 ed))

(setq alc (assoc 72 ed))

(setq al (cons 72 4))

(setq ed (subst al alc ed))

(entmod ed)

(setq ed (entget s1))

(setq j2 (dxf 10 ed))

(command "move" s1 "" j2 j1))

 

;just right sim (jll) for mid just

(defun jrr ()

;(um)(h0)(c0)

(ssc)

(setq i 0)

(setq n (sslength ss1))

(while (< i n)

(setq s1 (ssname ss1 i))

(setq ed (entget s1))

(setq en (dxf 0 ed))

(cond ((= en "TEXT")

(setq p1 (dxf 10 ed))

(setq alc (assoc 72 ed))

(setq al (cons 72 2))

(setq ed (subst al alc ed))

(entmod ed)

(setq ed (entget s1))

(setq p2 (dxf 10 ed))

(command "move" s1 "" p2 p1)))

(setq i (+ i 1))))

 

(defun ssx1()

(setq ss1 (ssget "x"))

(setq ln1 (sslength ss1)))

 

(defun ssx2()

(setq ss1 (ssget "x"))

(setq ln2 (sslength ss1)))

 

;leader line

(defun lli()

(ans)

(setq e1 (entlast))

(setq ed (entget e1))

(setq t1 (dxf 10 ed))

(setq p1 (dxf 11 ed))

(setq x1 (car t1))

(setq x2 (car p1))

(setq ds (getvar "DIMSCALE"))

(setq d1 (* 0.125 ds))

(cond ((> x2 x1)

(setq p2 (polar p1 0 d1))

(command "line" p1 p2 "")))

(cond ((> x1 x2)

(setq p2 (polar p1 a5 d1))

(command "line" p1 p2 ""))))

 

(defun ggd()

(xzl)(ans)

(setq p1 (trans p1 0 1))

(setq p2 (trans p2 0 1))

(setq a (angle p1 p2))

(setq n1 (+ a a1))

(setq n2 (- a a1))

(setq c (/ d 2.0))

(setq p3 (polar p1 n1 c))

(setq p4 (polar p2 n1 c))

(setq p5 (polar p1 n2 c))

(setq p6 (polar p2 n2 c))

(entdel e1)

(command "line" p3 p4 "")

(command "line" p5 p6 ""))

 

(defun ht0 ()

(command "style" "" "" "0" "" "" "" "" ""))

(defun s2o ()

(command "dimse2" "1"))

(defun s2f ()

(command "dimse2" "0"))

(defun s1o ()

(command "dimse1" "1"))

(defun s1f ()

(command "dimse1" "0"))

(defun fb ()

(command "dimse2" "1")

(command "dimse1" "1"))

(defun bo ()

(command "dimse2" "0")

(command "dimse1" "0"))

(defun al1 ()

(prompt "..arc length..")

(setq ed (entget s1))

(setq n1 (dxf 50 ed))

(setq n2 (dxf 51 ed))

(cond ((> n2 n1)

(setq ar (- n2 n1))))

(cond ((> n1 n2)

(setq ar (- n1 n2))

(setq 2pi (* pi 2))

(setq ar (- 2pi ar))))

(setq r (dxf 40 ed))

(setq al (* r ar))

(setq d1 al))

(defun z5 ()

(command "zoom" "0.999x")

(command "undo"))

(defun sg ()

(setq s2 (entlast))

(setq sy (getvar "DIMSTYLE"))

(setq ed (entget s2))

(setq ssy (dxf 3 ed))

(command "dimstyle" "" ssy)

(setq p0 (dxf 10 ed))

(setq p1 (dxf 11 ed))

(setq p3 (dxf 13 ed))

(setq p4 (dxf 14 ed))

(setq n1 (angle p4 p0))

(setq d1 (* 0.25 ds))

(setq p2 (polar p3 n1 d1))

(setq p5 (polar p4 n1 d1))

(grdraw p3 p2 1)

(grdraw p4 p5 2))

 

(defun angtoc (ang)

  (setq ang

    (rtos (atof (angtos ang 0 8)) 2 6)

  )

  (strcat "<<" ang)

);defun

(defun gpl ()

(command "explode" s2)

(setq ss1 (ssadd))

(while (entnext s2) (ssadd (setq s2 (entnext s2)) ss1))

(setq n (sslength ss1))

(setq i 0))

 

(defun h7 ()

(setq thd (/ 1.0 8.0))

(setq thd (* thd 0.75))

(setq th (* thd ds))

(setvar "textsize" th)

(command "style" "" "" th "" "" "" "" ""))

 

(defun h8 ()

(setq thd (/ 1.0 8.0))

(setq th (* thd ds))

(setvar "textsize" th)

(command "style" "" "" th "" "" "" "" ""))

 

(defun mk1 ()

(command "layer" "m" 1 "")

(command "layer" "c" "1" "" ""))

 

(defun [0 ()

(oe)(um)(c0)

(ans)

(setq f (open "kla" "r"))

(setq s (read-line f))

(command "layer" "on" s "")

(command "layer" "s" s "")

(setq i 1)

;(setq n 10)

(setq e 1)

(command "layer" "off" "*" "" "")

(while (= e 1)

(setq s (read-line f))

(if (= s nil) (setq e nil))

(command "layer" "on" s "")

(command "layer" "s" s ""))

(close f)

(h1)(c1))

 

(defun bnn ()

(setq e1 (entlast))

(command "undo" "m")

(setq ed (entget e1))

(setq p1 (dxf 10 ed))

(setq p1 (trans p1 0 1))

(setq p2 (dxf 11 ed))

(setq p2 (trans p2 0 1))

(setq d1 (distance p1 p2))

(setq a (bangle p1 p2))

(setq b (bangle p1 p2))

(setq bn (bangle p1 p2))

(rd)

(print a)

(setq a (angle p1 p2))(rd)

(print a))

 

(defun sw ()

(setq e2 (entlast))

(entdel e2)

(setq e3 (entlast))

(command "copy" e3 "" "0,0" "0,0")

(setq e1 (entlast))

(entdel e2)

(entdel e3))

 

(defun sww ()

(setq e2 (entlast))

(entdel e2)

(setq e3 (entlast))

(command "copy" e3 "" "0,0" "0,0")

;(setq e1 (entlast))

(entdel e2)

(entdel e3))

 

(defun ng ()

(setq d (- d (* d 2))))

 

(defun ng1 ()

(setq d1 (- d1 (* d1 2))))

 

;make and block chain link

(defun kln ()

(command "undo" "m")

(ans)

(os0)

(uw)

(command "circle" "0,0,0" "d" d)

(ul)

(setq e1 (entlast))

(command "rotate" e1 "" "0,0,0" "90")

(uf)

(setq d2 (* d 2))

(command "extrude" e1 "" d2 "")

(setq e1 (entlast))

(setq e3 (entlast))

(uw)

(setq p0 (list 0 0 0))

(setq p1 (polar p0 0 d))

(setq p2 (polar p1 0 d))

(setq p3 (polar p1 a1 d))

(command "copy" e1 "" p0 p2)

(setq e4 (entlast))

(uf)

(command "circle" "0,0,0" "d" d)

(setq e1 (entlast))

(uw)

(command "arc" p2 p3 p0)

(setq e2 (entlast))

(command "extrude" e1 "" "p" e2)

(setq e5 (entlast))

(setq e1 (entlast))

;(setq d22 (/ d 2.0))

(setq p4 (polar p0 a3 d))

(setq p5 (polar p4 0 1))

(command "mirror" e1 "" p4 p5 "n" "")

(setq e6 (entlast))

(command "union" e3 e4 e5 e6 "")

;(setq e1 (entlast))

(command "move" e3 "" p1 p0)

(ul)

(command "rotate" e3 "" p0 "90")

(entdel e2)

(uw)

(command "block" "0" "y" "0,0" e3 "" bname))

;(princ "..sub..")

 

;subs

;end subs

 

(defun ssc ()

(setq ss1 (ssget))

(setq i 0)

(setq n (sslength ss1)))

 

;set vars

(setq ds (getvar "DIMSCALE"))

(setq d 1)

(setq a 0)

(setq b 1)

(setq mf 0.0)

(setq of 0.375)

(setq ty "HIDDEN")

(setq col 1)

(setq ov 0.5)

(setq so 0.45)

(setq o9 0.0625)

(setq kf 1.5)

(setq dtd 0.1)

(setq csf 1.2)

(setq kkf 0.1)

(setq asf 1.5)

(setq pcc 0)

(setq ch 0.0625)

(setq tk 0.03)

(setq pw 0.015)

(setq wd 0.01)

(setq pc 4)

(setq ud (* ds 0.04))

(setq dv1 0.4)

(setq dv2 0.25)

(setq dv3 0.4)

(setq dno 48.0)

(setq d99 0.18)

(setq dex 0)

(setq dey 8)

(setq zv 10)

(setq zd 72)

(setq ld 0.4)

(setq nd 0.03125)

(setq fa 0.8)

(setq tla "TEXT")

(setq ltf 0.5)

(setq lly "DIM")

(setq bfac 0.05)

(setq cfac 0.3)

(setq esa 3.0)

(setq tnd 0.0625)

(setq zfac 4)

(setvar "filedia" 1)

(setvar "dispsilh" 1)

(setq ds (getvar "DIMSCALE"))

(setq th (getvar "TEXTSIZE"))

(setq td (* th 1.61905))(princ)

(setq sf ds)

(setq sf1 ds)

(setq pc 4)

(setq lu 4)

(setq lw 0.005)

(setq col 1)

(setq g 0)

(setq k 0)

(setq lay "0")

(setq vsf 24)

(setq aa 1.0)

(setq fr 1.0)

(setq cd 0.75)

(setq bname "0")

;end set vars

(princ "...subs...")