Author Topic: Please check my new program area calculation & suggestion me how to improve this  (Read 1821 times)

0 Members and 1 Guest are viewing this topic.

Sam

  • Bull Frog
  • Posts: 201
dear all
Please check my new program area calculation
& suggestion me how to improve this program
Quote
(defun c:aae (/ p1 p2 a1 a2 a2s b1 b2 b2s darea dareas rarea rareas barea bareas
                proarea proareas fsi fsis b-area b-areas exbarea exbareas bareap
                bareaps narea nareas tarea )

 (setvar "cmdecho" 0)
 (setq os (getvar "osmode"))
 (setvar "osmode" 524)
 (setq p1 (CAR (ENTSEL "\nSELECT OUTER PLINE INCLUDING BALCONY & STAIRCASE: ")))
 (redraw p1 3)
 (setq p2 (CAR (ENTSEL "\nSELECT OUTER PLINE EXCLUDING BALCONY: ")))
 (redraw p2 3)
 
 (deducts)
 (redraw p1 4)
 (redraw p2 4)
 (setvar "osmode" 0)
 
 (COMMAND "AREA" "E" P1)
 (SETQ A1 (GETVAR "AREA"))
 (SETQ A2 (/ A1 1000000))   ; total area 
 (setq A2s (rtos A2 2 2))   ; STRING
 (SETQ A2 (ATOF A2S))
 
 (COMMAND "AREA" "E" P2)
 (SETQ B1 (GETVAR "AREA"))
 (SETQ B2 (/ b1 1000000))  ; without balcony
 (SETQ B2s (RTOS B2 2 2))   ; area without balcony, string
 (SETQ B2 (ATOF B2S))
 
 (SETQ BAREAP   (- A2 B2))   ;BALCONY AREA PROVIDED
 (SETQ BAREAPS  (RTOS BAREAP 2 2 ))
 (setq NAREA    (- A2 DAREA))    ;NET AREA  AFTER DEDUCTION
 (SETQ nareas   (RTOS NAREA 2 2))
 (setq barea    (ATOF (RTOS (* NAREA 0.09090909) 2 2 )))
 (setq bareas   (rtos barea 2 2 ))  ;balcony area should be
 (setq proarea  (- NAREA bareap))
 (setq proareas (RTOS proarea 2 2)) ;prposed built up areaaa
 (setq rarea    (- NAREA barea))     ;built up area (ideal)
 (setq rareas   (rtos rarea 2 2))
 (setq dareas   (rtos darea 2 2))
 (setq fsi  proarea)
 (setq b-area   ( * proarea 0.1))
 (setq b-areas  (rtos b-area 2 2))
 (setq exbarea  (- bareap b-area))
 (if (minusp exbarea) (setq exbarea 00 ) (setq fsi (+ proarea exbarea)))
 (setq exbareas (rtos exbarea 2 2))
 (setq fsis     (rtos fsi 2 2))   

 (setq tarea   (strcat "A) AREA INCLUDING STAIR, LIFT & BALCONY     = " A2S " SQ.MT."))
 (setq darea   (strcat "B) TOTAL DEDUCTION                          =  " DAREAS " SQ.MT."))
 (SETQ narea   (STRCAT "C) AREA AFTER DEDUCTION  (A - B)            = " NAREAS " SQ.MT."))
 (setq farea   (strcat "   BUILT-UP AREA (F.S.I.) SHOULD BE         = " RAREAS " SQ.MT."))
 (setq barea   (strcat "   BALC. AREA PERMITTED (10% OF " RAREAs ")     =  " BAREAS " SQ.MT."))
 (setq proarea (strcat "D) PROPOSED BUILT-UP AREA  (C - F)          = " PROAREAS " SQ.MT."))   
 (setq b-area  (strcat "E) BALC. AREA PERMITTED                     =  " B-AREAS " SQ.MT."))
 (setq bareap  (strcat "F) BALCONY PROVIDED                         =  " BAREAPS " SQ.MT."))
 (setq exbarea (strcat "G) EXCESS BALCONY AREA TAKEN IN F.S.I.      =  " EXBAREAS " SQ.MT."))
 (setq fsi     (strcat "H) TOTAL F.S.I. CONSUMED / FLOOR            = " FSIS " SQ.MT."))
 (TEXTPAGE)
 (prompt (strcat "\n" tarea))
 (prompt (strcat "\n" darea))   
 (prompt (strcat "\n" narea))   
 (prompt (strcat "\n" Farea))   
 (prompt (strcat "\n" barea))
 (prompt (strcat "\n" proarea))
 (prompt (strcat "\n" b-area))
 (prompt (strcat "\n" bareap))
 (prompt (strcat "\n" exbarea))
 (prompt (strcat "\n" fsi))
 (prompt "\n\n\n\n\n")
 (prompt "\npress any key to continue.....")
 (grread)
 (graphscr)
 (setvar "orthomode" 1)
 (setq p5 (getpoint "\nFrom where to start text: "))
 (setq p6 (getpoint p5 "\nEndpoint : "))
 (setq ht (getdist p5 "\nHeight for text : "))
 (COMMAND "TEXT" "S" "RS"  "F" P5 p6 ht tarea)
 (COMMAND "TEXT" "" darea)
 (COMMAND "TEXT" "" narea)
 (COMMAND "TEXT" "" proarea)
 (COMMAND "TEXT" "" b-area) 
 (COMMAND "TEXT" "" bareap)
 (COMMAND "TEXT" "" exbarea)
 (COMMAND "TEXT" "" fsi)
 (setvar "cmdecho" 1)
 (setvar "osmode" os))

(defun deducts ()
 (setq fact 1000000)
 (prompt "\nSelect plines for DEDUCTIONS: ")
 (setq ded (ssget))
 (setq dedl (sslength ded))
 (setq tded 0)
 (setq entno dedl)
 (repeat dedl
   (progn
      (command "area" "e" (ssname ded (1- entno) ))
      (redraw (ssname ded (1- entno) ) 3)
      (setq are (/ (getvar "area") fact))
      (setq are (rtos are 2 2))
    ;  (setq arefile (open "c:/acad/areastat.sta" "w"))
    ;  (initget "Staircase Lift Duct Type")
    ;  (setq arnm (getkword "\nHighlighted pline is <Stair/Lift/Lift-Lobby/Duct>: "))
    ;  (setq arnm (strcase (strcat arnm " = " are " sq.ft.")))
    ;  (write_line arnm arefile)
    ;  (close arefile)
      (setq are (atof are))
      (setq tded (+ tded are))
      (redraw (ssname ded (1- entno) ) 1)
      (setq entno (1- entno))
   )
 )
 (SETq DAREA TDED)
 (setq tded (rtos tded 2 2))
 ;(prompt (strcat  "\nToal deduction = " tded " SQ.MT."))
 )
Every time we waste electricity, we put our planet's future in the dark. Let's turn around our attiude and start saving power and our planet, before it's too late
http://www.theswamp.org/donate.html

CAB

  • Global Moderator
  • Seagull
  • Posts: 10401
I don't have time today to help out but there are a lot of places you can improve.
Hope someone else has time to guide you.  8-)
I've reached the age where the happy hour is a nap. (°¿°)
Windows 10 core i7 4790k 4Ghz 32GB GTX 970
Please support this web site.

Tharwat

  • Swamp Rat
  • Posts: 710
  • Hypersensitive
I guess it is better to concentrate on your problem than brinig all these codes which need hours to study and to answer ..

I am ready to help as much as I can ...

Regards

Tharwat

Sam

  • Bull Frog
  • Posts: 201
I don't have time today to help out but there are a lot of places you can improve.
Hope someone else has time to guide you.  8-)


dear sir
cab & Tharwat
thx for reply
wating for improve
Every time we waste electricity, we put our planet's future in the dark. Let's turn around our attiude and start saving power and our planet, before it's too late
http://www.theswamp.org/donate.html

Tharwat

  • Swamp Rat
  • Posts: 710
  • Hypersensitive
I guess the following command are not working, I mean they are not completed,
Code: [Select]
COMMAND "TEXT" "S" "RS"  "F" P5 p6 ht tarea)
 (COMMAND "TEXT" "" darea)
 (COMMAND "TEXT" "" narea)
 (COMMAND "TEXT" "" proarea)
 (COMMAND "TEXT" "" b-area) 
 (COMMAND "TEXT" "" bareap)
 (COMMAND "TEXT" "" exbarea)
 (COMMAND "TEXT" "" fsi)
the complete one is as the following.
Code: [Select]
(command "_.-text" <insert point> <height of text> <angle> <data to be inserted>)
This is up to now...

Tharwat

Lee Mac

  • Seagull
  • Posts: 12914
  • London, England
Use entmake over command calls.