;  FASTLAYR.LSP
 ;
 ;                         QUICK COMMAND Release 3.0
 ;                   FASTLAYR.LSP is a module of QUICK COMMAND
;                       Copyright 1989, 90, 92 Dan Jincks
 ;
 ;
;              This is SHAREWARE, it is NOT Public Domain software.
 ;
 ;              This code or any part of this code may not be reproduced
 ;              in any publication without prior written permission.
 ;
 ;              Printed copy of this code or any part of this code may not
 ;              be distributed without prior written permission.
 ;
 ;              Printed copy may only be made for reference purposes by
 ;              the end user.
 ;
 ;
 ;                               Dan Jincks
 ;                             Box 155A HCR 77
 ;                           Annapolis, MO 63620
 ;
 ;
 ;
 ;   You are granted a limited license to use FASTLAYR.LSP for a 30 day trial
 ;   period.  If you wish to continue using any or all of QUICK COMMAND after
 ;   the trial period, you must become a registered user.  As a registered
 ;   user, you may use QUICK COMMAND on 1 workstation or terminal.
 ;   Additional registrations must be bought for each additional workstation or
 ;   terminal.  To become a registered user, see QC3.DOC
 ;
 ;
 ;   You may send copies of QUICK COMMAND to friends and associates if you abide
 ;   by the following rules:
 ;
 ;   1. It may only be distributed in the original unmodified form.
 ;   2. All original files must be included.
 ;   3. No addition files may be added.
 ;   4. If other files will be on the same disk, QUICK COMMAND files must be in
 ;      a library format such as ".ARC" called "QUICKCMD", or else be put alone
 ;      in a subdirectory called "QUICKCMD".
 ;   5. You may not sell QUICK COMMAND or any part of it.
 ;   6. You are not allowed to charge more then $5 to cover the cost of copying
 ;      and distribution.
 ;   7. You may not distribute any hard copy of the contents of QUICK COMMAND.
 ;
 ;
 ;   These AutoLISP commands and functions are designed to save you time, and
 ;   saving time means saving money.  The registration fee is very modest
 ;   compared to the savings, and much less expensive then typical third party
 ;   AutoCAD software. Be sure to registar if you continue to use them.
 ;
 ;
 ;                                                               DAN
 ;
 ;
 ;
 ;
 ;        AutoCAD and AutoLISP are registered trade marks of Autodesk Inc.
 ;
 ;        ***************************************************************
 ;
 ;   Begin FASTLAYR.LSP
 ;

;  LHP function

(defun C:LHP (/ SCA SCB SCC)
   (setvar "cmdecho" 0)
   (setq SCA (car (entsel "Pick an object on the layer to be shown:")))(terpri)
   (if SCA (progn
     (setq SCA (entget SCA))
     (setq SCB (cdr (assoc 8 SCA)))(prompt "Layer name is   ")(prin1 SCB)(terpri)
     (setq SCC (ssget "X" (list (cons 8 SCB))))(prompt "Press ENTER")
     (command "select" SCC pause )
   ))
   (setvar "cmdecho" 1)(princ)
)

;  LHN function

(defun C:LHN (/ SCA SCB SCC SCD)
   (setvar "cmdecho" 0)(terpri)
   (prompt "Highlight layer by name.")(terpri)
   (setq SCA (strcase (getstring "Layer name:  "))
         SCB (strlen SCA)
         SCC (tblsearch "layer" SCA))(terpri)
   (if (/= SCB 0)(progn
      (if (/= SCC nil)(progn
         (graphscr)
         (setq SCD (ssget "X" (list (cons 8 SCA))))
         (prompt "Press ENTER")
         (command "SELECT" SCD pause)
         )
         (progn (prompt "Layer ")(princ SCA)(prompt " does not exist."))
      )
   ))(setvar "cmdecho" 1)(princ)
)

;  LFP function

(defun C:LFP (/ SCA SCB SCC SCD SCE)(terpri)
   (setvar "cmdecho" 0)
   (prompt "Freeze a layer by pick")(terpri)(prompt " ")(terpri)
   (setq SCE (car (entsel "Pick an entity on the layer to be frozen . . . ")))
   (terpri)
   (if SCE (progn
      (setq SCE (entget SCE)
            SCC (cdr (assoc 8 SCE)))
      (prompt "You picked layer  ")(princ SCC)
      (initget "Yes No")
      (setq SCB (getkword ".  Highlight? Y/N <N>  "))(terpri)
      (if (= SCB "Yes")(progn
         (setq SCD (ssget "X" (list (cons 8 SCC))))
         (command "select" SCD )
      ))
      (prompt "Freeze layer  ")(princ SCC)
      (initget "Yes No")
      (setq SCA (getkword "?  Y/N <Y>  "))
      (if (= SCB "Yes")(command ""))
      (if (/= SCA "No")(command "LAYER" "F" SCC ""))
      )
      (prompt "No entity picked!")
   )(setvar "cmdecho" 1)(princ)
)

;  LMP function

(defun C:LMP (/ SCA SCB SCC SCD SCE)(terpri)
   (setvar "cmdecho" 0)
   (prompt "Move entities to a different layer")(terpri)(prompt " ")(terpri)
   (setq SCE (car (entsel "Pick an object on the target layer ")))(terpri)
   (if SCE (progn
      (setq SCE (entget SCE)
            SCC (cdr (assoc 8 SCE)))
      (prompt "You picked layer  ")(princ SCC)
      (initget "Yes No")
      (setq SCB (getkword ".  Highlight? Y/N <N>  "))(terpri)
      (if (= SCB "Yes")(progn
         (setq SCD (ssget "X" (list (cons 8 SCC))))
         (command "select" SCD )
      ))
      (prompt "Select entities to be put on layer ")(prin1 SCC)(terpri)
      (setq SCA (ssget))
      (if (= SCB "Yes")(command ""))
      (if (/= SCA nil)(command "CHANGE" SCA "" "PROP" "LAYER" SCC ""))(terpri)
      (if (and (= SCB "Yes")(/= SCA nil))(progn
         (prompt "New layer  ")(prin1 SCC )(prompt "  is shown.  press ENTER")
         (setq SCD (ssget "X" (list (cons 8 SCC))))
         (command "select" SCD pause )
      ))
   )
   (prompt "No entity picked!")
  )(setvar "cmdecho" 1)(princ)
)

;  LN function

(defun C:LN ()
   (setvar "cmdecho" 0)
   (command "layer" "?" "" "")
   (setvar "cmdecho" 1)(princ)
)

;  LSN function

(defun C:LSN(/ SCA SCB SCC)
   (setvar "cmdecho" 0)(terpri)
   (prompt "Set current layer by name.")(terpri)
   (setq SCA (strcase (getstring "Layer name:  "))
         SCB (strlen SCA)
         SCC (tblsearch "layer" SCA))(terpri)
   (if (/= SCB 0)(progn
      (if (/= SCC nil)
         (progn (command "LAYER" "Set" SCA "")(graphscr))
         (progn (prompt "Layer ")(princ SCA)(prompt " does not exist."))
      )
   ))(setvar "cmdecho" 1)(princ)
)

;  LTN function

(defun C:LTN(/ SCA SCB SCC)
   (setvar "cmdecho" 0)(terpri)
   (prompt "Thaw layer by name.")(terpri)
   (setq SCA (strcase (getstring "Layer name:  "))
         SCB (strlen SCA)
         SCC (tblsearch "layer" SCA))(terpri)
   (if (/= SCB 0)(progn
      (if (/= SCC nil)
         (progn (command "LAYER" "Thaw" SCA "")(graphscr))
         (progn (prompt "Layer ")(princ SCA)(prompt " does not exist."))
      )
   ))(setvar "cmdecho" 1)(princ)
)

;  LFN function

(defun C:LFN(/ SCA SCB SCC)
   (setvar "cmdecho" 0)(terpri)
   (prompt "Freeze layer by name.")(terpri)
   (setq SCA (strcase (getstring "Layer name:  "))
         SCB (strlen SCA)
         SCC (tblsearch "layer" SCA))(terpri)
   (if (/= SCB 0)(progn
      (if (/= SCC nil)
         (progn (command "LAYER" "Freeze" SCA "")(graphscr))
         (progn (prompt "Layer ")(princ SCA)(prompt " does not exist."))
      )
   ))(setvar "cmdecho" 1)(princ)
)

;  LTA function

(defun C:LTA()(setvar "cmdecho" 0)(command "LAYER" "Thaw" "*" "")
   (setvar "cmdecho" 1)(princ))

;  LFA function

(defun C:LFA()(setvar "cmdecho" 0)(command "LAYER" "Freeze" "*" "")
   (setvar "cmdecho" 1)(princ))
 ;
 ;   End FASTLAYR.LSP
