Here ya go, Rico.....
Code:
;;;by Jeff Mishler Jun 13, 2006
(defun c:flatbox ( / coords d270 d90 doc hgt l lay1 lay2 len p1
p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p2 p20
p21 p22 p23 p24 p25 p26 p27 p28 p29 p3 p30 p31
p32 p33 p34 p35 p36 p37 p38 p39 p4 p40 p41 p5
p6 p7 p8 p9 pline space stpt wid x)
(vl-load-com)
(if (and (setq len (getdist "\nBox length: "))
(setq wid (getdist "\nBox width: "))
(setq hgt (getdist "\nBox height: "))
(setq stpt (getpoint "\nLower left corner of box: "))
)
(progn
(setq d90 (* pi 0.5)
d270 (* pi 1.5)
doc (vla-get-activedocument (vlax-get-acad-object))
lay1 (vla-add (vla-get-layers doc) "1")
lay2 (vla-add (vla-get-layers doc) "2")
)
(vl-catch-all-apply '(lambda ()
(vla-load (vla-get-linetypes doc) "DASHED" "acad.lin")
))
(vla-put-color lay1 6)
(vla-put-color lay2 3)
(setq p1 (polar stpt 0 len)
p2 (polar p1 d90 (+ (/ wid 2.0) 0.125))
p34 (polar p2 0 0.125)
p3 (polar p2 0 0.25)
p4 (polar p3 d270 (+ (/ wid 2.0) 0.125))
p5 (polar p4 0 (- wid 0.0625))
p6 (polar p5 d90 (+ (/ wid 2.0) 0.125))
p35 (polar p6 0 0.125)
p7 (polar p6 0 0.25)
p8 (polar p7 d270 (+ (/ wid 2.0) 0.125))
p9 (polar p8 0 (- len 0.0625))
p10 (polar p9 d90 (+ (/ wid 2.0) 0.125))
p36 (polar p10 0 0.125)
p11 (polar p10 0 0.25)
p12 (polar p11 d270 (+ (/ wid 2.0) 0.125))
p13 (polar p12 0 (- wid 0.125))
p14 (polar p13 d90 (+ (/ wid 2.0) 0.125))
p37 (polar p14 0 0.125)
p15 (polar p37 (angtof "15.0" 0) 1.8117)
p38 (polar p37 d90 (+ hgt 0.375))
p17 (polar p38 pi 0.125)
p16 (polar p38 (angtof "345.0" 0) 1.8117)
p20 (polar p11 d90 (+ hgt 0.375))
p21 (polar p10 d90 (+ hgt 0.375))
p24 (polar p7 d90 (+ hgt 0.375))
p25 (polar p6 d90 (+ hgt 0.375))
p28 (polar p3 d90 (+ hgt 0.375))
p29 (polar p2 d90 (+ hgt 0.375))
p33 (polar stpt d90 (+ (/ wid 2.0) 0.125))
p32 (polar p33 d90 (+ hgt 0.375))
p31 (polar p32 d90 (+ (/ wid 2.0) 0.125))
p30 (polar p29 d90 (+ (/ wid 2.0) 0.125))
p27 (polar p28 d90 (+ (/ wid 2.0) 0.125))
p26 (polar p25 d90 (+ (/ wid 2.0) 0.125))
p23 (polar p24 d90 (+ (/ wid 2.0) 0.125))
p22 (polar p21 d90 (+ (/ wid 2.0) 0.125))
p19 (polar p20 d90 (+ (/ wid 2.0) 0.125))
p18 (polar p17 d90 (+ (/ wid 2.0) 0.125))
p39 (polar p36 d90 (+ hgt 0.375))
p40 (polar p35 d90 (+ hgt 0.375))
p41 (polar p34 d90 (+ hgt 0.375))
)
(setq coords (apply 'append (mapcar '(lambda (x)
(list (car x) (cadr x))
)
(list stpt p1 p2 p3 p4 p5 p6 p7 p8 p9
p10 p11 p12 p13 p14 p37 p15 p16
p38 p17 p18 p19 p20 p21 p22 p23 p24 p25
p26 p27 p28 p29 p30 p31 p32 p33 stpt)
)))
(setq space (if (eq (getvar "cvport") 1)
(vla-get-paperspace doc)
(vla-get-modelspace doc)
))
(setq pline (vlax-invoke space 'addlightweightpolyline coords))
(vla-put-layer pline "1")
(vla-explode pline)
(vla-delete pline)
(mapcar '(lambda (x / l)
(setq l (vlax-invoke space 'addline (car x) (cadr x)))
(vla-put-layer l "2")
(vla-put-linetype l "DASHED")
)
(list (list p33 p2)
(list p3 p6)
(list p7 p10)
(list p11 p14)
(list p37 p38)
(list p17 p20)
(list p21 p24)
(list p25 p28)
(list p29 p32)
(list p34 p41)
(list p35 p40)
(list p36 p39)
))
)
)
(princ)
)
Jeff