(defun c:Mu (/ ts tl pt1 pt2 an1 an2 di1 m1 m2 m3 m4 g1 g2 g3 g4 di2)
(setq ts (getvar "osmode"))
(setvar "osmode" ts)
(setq tl (getvar "clayer"))
(setvar "clayer" tl)
(setvar "osmode" 1)
(setq pt1 (getpoint "\nPick First Side point: "))
(if pt1
(progn
(setq pt2 (getpoint pt1 "\nPick Second Side point: "))
(if pt2
(setq pt3 (getpoint pt2 "\nPick Opposite side of wall: "))
)
(if (and pt1 pt2 pt3)
(progn
(setvar "osmode" 0)
(setq an1 (angle pt1 pt2))
(setq an2 (angle pt2 pt3))
(setq di1 (distance pt2 pt3))
(setq pt4 (polar pt1 an2 di1))
(setq m1 (polar pt1 an1 2))
(setq m2 (polar pt2 (+ an1 (dtr 180)) 2))
(setq m3 (polar m2 an2 di1))
(setq m4 (polar m1 an2 di1))
(setq di2 (- (/ di1 2)0.5))
(setq g1 (polar m1 an2 di2))
(setq g2 (polar m2 an2 di2))
(setq g3 (polar g2 an2 1))
(setq g4 (polar g1 an2 1))
(if (tblsearch "layer" "win")(setvar "clayer" "win"))
(command "pline" pt1 m1 m4 pt4 "c")
(command "pline" pt2 pt3 m3 m2 "c")
(command "pline" g1 g2 g3 g4 "c")
(command "line" m1 m2 "")
(command "line" m3 m4 "")
)
)
)
)
(setvar "osmode" ts)
(setvar "clayer" tl)
(if pt1 (c:mu))
(princ)
)
"OhioCad" <nos...@address.withheld> wrote in message
news:13981018.108749406...@jiveforum2.autodesk.com...
If you need more help, I can make a standalone version over the weekend.
The routine I have is from a larger program...will take time to seperate
out just the storefront-curtain routine from my arch program.
Gary
;;;some variables to set:
(setq elheight 144)
(if (not fwidth) (setq fwidth 2.0))
(if (not fdepth) (setq fdepth 4.5))
(if (not levels)
(setq levels 1)
)
;;;points to be set:
(setq
a (getpoint
"\n* Pick Starting point of Curtain Wall <Left Point> *"
)
)
(setq c
(getpoint a
"\n* Pick End point of Curtain Wall <Right Point> --> *"
)
)
(command ".snap" "r" a c)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
;;;;;;;;;;;;;;;;;;;;;;;;; Storefront Elevation Function
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
(defun draw_swall ()
;;(cond ((= ARCH#CLAY "Off")(ARCH:LYR "A-GLAZ-MULL")))
(princ "\n* Drawing Storefront Wall in Elevation *")
(setvar "osmode" 0)
(setq num_jambs (+ divisions 1)
total_panel_size
(- clength (* num_jambs fwidth))
actual_panel_size
(/ total_panel_size divisions)
)
(setq start a)
(setq b (polar a (angle a b) elheight))
(setq d (polar b (angle a c) clength))
(setq aa (list (car a) (- (cadr a) fwidth)))
(setq cc (list (car c) (- (cadr c) fwidth)))
(setq bb (list (car b) (+ (cadr b) fwidth)))
(setq dd (list (car d) (+ (cadr d) fwidth)))
(setq ss (ssadd))
(command "line" a c "")
(setq ss (ssadd (entlast) ss))
(command "line" b d "")
(setq ss (ssadd (entlast) ss))
(setq j1 start)
(setq j4 (polar j1 (angle start b) fwidth))
(setq jj4 (list (car j1) (+ (cadr j4) fwidth)))
(command "line" j4 jj4 "")
(setq ss (ssadd (entlast) ss))
(setq jj5 (list (car j1) (- (cadr j1) elheight)))
(setq jj6 (list (car j1) (+ (cadr jj5) fwidth)))
(command "line" jj5 jj6 "")
(setq ss (ssadd (entlast) ss))
(repeat divisions
(setq j1 start)
(setq j2 (polar j1 (angle a c) fwidth))
(setq j3 (polar j2 (angle a b) elheight))
(setq j4 (polar j3 (angle c a) fwidth))
(setq m1 (list (car j1) (+ (cadr j4) ght1)))
(setq m2 (list (car j2) (+ (cadr j3) ght1)))
(setq j5 (polar m2 (angle start c) actual_panel_size))
(setq m11 (list (car j1) (+ (cadr j4) ght2)))
(setq m22 (list (car j2) (+ (cadr j3) ght2)))
(setq j55 (polar m22 (angle start c) actual_panel_size))
(setq j1 (list (car j1) (- (cadr j1) fwidth)))
(setq j2 (list (car j2) (- (cadr j2) fwidth)))
(setq j3 (list (car j3) (+ (cadr j3) fwidth)))
(setq j4 (list (car j4) (+ (cadr j4) fwidth)))
(command "line" j1 j4 "")
(setq ss (ssadd (entlast) ss))
(command "line" j2 j3 "")
(setq ss (ssadd (entlast) ss))
(setq jj1 (list (+ (car j1) fwidth) (cadr j1)))
(setq jj2 (polar j1 (angle start c) (+ actual_panel_size fwidth)))
(setq jj4 (polar j4 (angle start c) (+ actual_panel_size fwidth)))
(command "line" jj1 jj2 "")
(setq ss (ssadd (entlast) ss))
(command "line" j3 jj4 "")
(setq ss (ssadd (entlast) ss))
(setq x2 (list (car j3) (+ (cadr j3) (- ght1 fwidth))))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(setq ss (ssadd (entlast) ss))
(setq x2 (list (car x2) (- (cadr x2) fwidth)))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(setq ss (ssadd (entlast) ss))
(cond
((/= ght2 0)
(progn
(setq x2 (list (car j3) (+ (cadr j3) (- ght2 fwidth))))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(setq ss (ssadd (entlast) ss))
(setq x2 (list (car x2) (- (cadr x2) fwidth)))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(setq ss (ssadd (entlast) ss))
)
)
)
(setq
start (polar start (angle a c) (+ actual_panel_size fwidth))
)
)
(setq j1 (polar j2 (angle a c) actual_panel_size))
(setq j1 start)
(setq j2 (polar j1 (angle a c) fwidth))
(setq j3 (polar j2 (angle a b) elheight))
(setq j4 (polar j3 (angle c a) fwidth))
(setq j1 (list (car j1) (- (cadr j1) fwidth)))
(setq j2 (list (car j2) (- (cadr j2) fwidth)))
(setq j3 (list (car j3) (+ (cadr j3) fwidth)))
(setq j4 (list (car j4) (+ (cadr j4) fwidth)))
(command "line" j1 j4 "")
(setq ss (ssadd (entlast) ss))
(command "line" j2 j3 "")
(setq ss (ssadd (entlast) ss))
(setq x2 (list (car j2) (+ (- (cadr j2) elheight) fwidth)))
(setq x3 (list (car j3) (cadr j3)))
(command "line" x2 x3 "")
(setq ss (ssadd (entlast) ss))
(setq x2 (list (car j2) (+ (cadr j2) fwidth)))
(setq x3 (list (car j3) (- (+ (cadr j3) elheight) (* fwidth 2))))
(command "line" x2 x3 "")
(setq ss (ssadd (entlast) ss))
(createblock-elev ss a)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
;;;;;;;;;;;;;;;;;;;;;;;; Curtainwall Elevation Function
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
(defun draw_cwall ()
;;(cond ((= ARCH#CLAY "Off")(ARCH:LYR "A-GLAZ-MULL")))
(princ "\n* Drawing Curtainwall in Elevation *")
(setq elheight (atoi (rtos (+ (* (- levels 1) flrheight) ght2) 2 0)))
(setvar "osmode" 0)
(setq num_jambs (+ divisions 1)
total_panel_size
(- clength (* num_jambs fwidth))
actual_panel_size
(/ total_panel_size divisions)
)
(setq start a)
(setq b (polar a (angle a b) elheight))
(setq d (polar b (angle a c) clength))
(setq aa (list (car a) (- (cadr a) fwidth)))
(setq cc (list (car c) (- (cadr c) fwidth)))
(setq bb (list (car b) (+ (cadr b) fwidth)))
(setq dd (list (car d) (+ (cadr d) fwidth)))
(setq ss (ssadd))
(command "line" a c "")
(setq ss (ssadd (entlast) ss))
(command "line" b d "")
(setq ss (ssadd (entlast) ss))
(setq j1 start)
(setq j4 (polar j1 (angle start b) fwidth))
(setq jj1 (list (car j1) (- (cadr j1) elheight)))
(setq jj4 (list (car j1) (+ (cadr j4) fwidth)))
(command "line" j4 jj4 "")
(setq ss (ssadd (entlast) ss))
(setq jj5 (list (car j1) (- (cadr j1) elheight)))
(setq jj6 (list (car j1) (+ (cadr jj5) fwidth)))
(command "line" jj5 jj6 "")
(setq ss (ssadd (entlast) ss))
(repeat divisions
(setq j1 start)
(setq j2 (polar j1 (angle a c) fwidth))
(setq j3 (polar j2 (angle a b) elheight))
(setq j4 (polar j3 (angle c a) fwidth))
(setq m1 (list (car j1) (+ (cadr j4) ght1)))
(setq m2 (list (car j2) (+ (cadr j3) ght1)))
(setq j5 (polar m2 (angle start c) actual_panel_size))
(setq m11 (list (car j1) (+ (cadr j4) ght2)))
(setq m22 (list (car j2) (+ (cadr j3) ght2)))
(setq j55 (polar m22 (angle start c) actual_panel_size))
(setq j1 (list (car j1) (- (cadr j1) fwidth)))
(setq j2 (list (car j2) (- (cadr j2) fwidth)))
(setq j3 (list (car j3) (+ (cadr j3) fwidth)))
(setq j4 (list (car j4) (+ (cadr j4) fwidth)))
(command "line" j1 j4 "")
(setq ss (ssadd (entlast) ss))
(command "line" j2 j3 "")
(setq ss (ssadd (entlast) ss))
(setq jj1 (list (+ (car j1) fwidth) (cadr j1)))
(setq jj2 (polar j1 (angle start c) (+ actual_panel_size fwidth)))
(setq jj4 (polar j4 (angle start c) (+ actual_panel_size fwidth)))
(command "line" jj1 jj2 "")
(setq ss (ssadd (entlast) ss))
(command "line" j3 jj4 "")
(setq ss (ssadd (entlast) ss))
(cond
((= levels 2)
(progn
(setq x2 (list (car j3) (+ (cadr j3) flrheight)))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(setq x2 (list (car x2) (- (cadr x2) fwidth)))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(setq x2 (list (car j3) (+ (cadr j3) (- ght1 fwidth))))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(command "array"
(entlast)
""
"r"
(rtos levels 2 0)
"1"
flrheight
)
(setq x2 (list (car x2) (- (cadr x2) fwidth)))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(command "array"
(entlast)
""
"r"
(rtos levels 2 0)
"1"
flrheight
)
(setq x2 (list (car j3) (+ (cadr j3) (- ght2 fwidth))))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(setq x2 (list (car x2) (- (cadr x2) fwidth)))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
)
)
((> levels 2)
(progn
(setq x2 (list (car j3) (+ (cadr j3) flrheight)))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(command "array"
(entlast)
""
"r"
(rtos (- levels 1) 2 0)
"1"
flrheight
)
(setq x2 (list (car x2) (- (cadr x2) fwidth)))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(command "array"
(entlast)
""
"r"
(rtos (- levels 1) 2 0)
"1"
flrheight
)
(setq x2 (list (car j3) (+ (cadr j3) (- ght1 fwidth))))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(command "array"
(entlast)
""
"r"
(rtos levels 2 0)
"1"
flrheight
)
(setq x2 (list (car x2) (- (cadr x2) fwidth)))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(command "array"
(entlast)
""
"r"
(rtos levels 2 0)
"1"
flrheight
)
(setq x2 (list (car j3) (+ (cadr j3) (- ght2 fwidth))))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(command "array"
(entlast)
""
"r"
(rtos (- levels 1) 2 0)
"1"
flrheight
)
(setq x2 (list (car x2) (- (cadr x2) fwidth)))
(setq x3 (polar x2 (angle start c) actual_panel_size))
(command "line" x2 x3 "")
(command "array"
(entlast)
""
"r"
(rtos (- levels 1) 2 0)
"1"
flrheight
)
)
)
)
(setq
start (polar start (angle a c) (+ actual_panel_size fwidth))
)
)
(setq j1 (polar j2 (angle a c) actual_panel_size))
(setq j1 start)
(setq j2 (polar j1 (angle a c) fwidth))
(setq j3 (polar j2 (angle a b) elheight))
(setq j4 (polar j3 (angle c a) fwidth))
(setq j1 (list (car j1) (- (cadr j1) fwidth)))
(setq j2 (list (car j2) (- (cadr j2) fwidth)))
(setq j3 (list (car j3) (+ (cadr j3) fwidth)))
(setq j4 (list (car j4) (+ (cadr j4) fwidth)))
(command "line" j1 j4 "")
(setq ss (ssadd (entlast) ss))
(command "line" j2 j3 "")
(setq ss (ssadd (entlast) ss))
(setq j2 (list (car j2) (+ (cadr j2) fwidth)))
(setq j3 (list (car j3) (- (cadr j3) fwidth)))
(command "line" j2 j3 "")
(setq ss (ssadd (entlast) ss))
(createblock-elev ss a)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Create Block Function
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
(defun createblock-elev (sset pt /)
;;(cond ((= ARCH#CLAY "Off")(ARCH:LYR "A-GLAZ-MULL")))
(entmake
(list '(0 . "BLOCK")
'(2 . "*anon")
'(70 . 1)
(cons '10 pt)
)
)
(setq aa 0)
(repeat (sslength sset)
(progn
(entmake (entget (setq ent (ssname sset aa))))
(if (assoc 66 (entget ent))
(progn
(setq subent (entnext ent))
(while (/= (cdr (assoc 0 (entget subent))) "SEQEND")
(entmake (entget subent))
(setq subent (entnext subent))
)
(entmake (entget subent))
)
)
(entdel ent)
)
(setq aa (1+ aa))
)
;;write block end sub-entity
;;(cond ((= ARCH#CLAY "Off")(ARCH:LYR "A-GLAZ-MULL")))
(setq name (entmake '((0 . "endblk"))))
(entmake
(list '(0 . "INSERT")
(cons '2 name)
(cons '10 pt)
)
)
(setq sset nil)
(princ)
)
;;;
(defun createblock-plan (sset pt /)
;;(cond ((= ARCH#CLAY "Off")(ARCH:LYR "A-GLAZ-MULL")))
(entmake
(list '(0 . "BLOCK")
'(2 . "*anon")
'(70 . 1)
(cons '10 pt)
)
)
(setq aa 0)
(repeat (sslength sset)
(progn
(entmake (entget (setq ent (ssname sset aa))))
(if (assoc 66 (entget ent))
(progn
(setq subent (entnext ent))
(while (/= (cdr (assoc 0 (entget subent))) "SEQEND")
(entmake (entget subent))
(setq subent (entnext subent))
)
(entmake (entget subent))
)
)
(entdel ent)
)
(setq aa (1+ aa))
)
;;write block end sub-entity
;;(cond ((= ARCH#CLAY "Off")(ARCH:LYR "A-GLAZ")))
(setq name (entmake '((0 . "endblk"))))
(entmake
(list '(0 . "INSERT")
(cons '2 name)
(cons '10 pt)
)
)
(setq sset nil)
(princ)
)
;;;
(defun mid (xx yy)
(list (/ (+ (car xx) (car yy)) 2)
(/ (+ (cadr xx) (cadr yy)) 2)
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
(princ)
"OhioCad" <nos...@address.withheld> wrote in message
news:21303483.1087498959365.JavaMail.jive@jiveforum2...
"OhioCad" <nos...@address.withheld> wrote in message
news:21303483.1087498959365.JavaMail.jive@jiveforum2...
thanks,
daniel
"GaryDF" <fow...@architettura-inc.com> wrote in message
news:40d1f0a8_1@newsprd01...
I will have it by Monday
Gary
"Daniel" <cad12m at yahoo dot com> wrote in message news:40d31641_2@newsprd01...
daniel
"GaryDF" <fow...@architettura-inc.com> wrote in message
news:40d331a6_3@newsprd01...
> This is what it will do for a storefront in elevation.
>
>
>
> You can program the storefront with input to the dialog box.
>
>
>
> Frame width = 2"
>
> Number of panels = 4
>
> Panel width = 2'-9 ½"
>
>
>
>
>
> overall height = 12'-0"
>
> height of top intermediate mullion = 9'-0"
>
> height of bottom intermediate mullion = 2'-6"
>
>
>
>
>
>
>
>
>
>
>
> "GaryDF" <fow...@architettura-inc.com> wrote in message
> news:40d32f46_2@newsprd01...
Daniel
"GaryDF" <fow...@architettura-inc.com> wrote in message
news:40d6d780_1@newsprd01...
> Here is the curtainwall-storefront routine.
>
> Gary
>
>
> "Daniel" <cad12m at yahoo dot com> wrote in message
> news:40d362cd$1_3@newsprd01...
Also the dialog box will rember the last screen position, whenever the
exit button is entered.
Gary
"Daniel" <cad12m at yahoo dot com> wrote in message news:40d6ec87_1@newsprd01...