;; This is used to draw a square, can type coordinates or look at display for size. ;; uses either lines or plines..your choice ;;;***************************************** ;;; Superior Designs - Custom programming available ;;; Copyright (C) 1994-1997 ;;; Written by Craig Carr - 1994 ;;; http://www.surfersnet.com/sdi/acad.htm ;;; e-mail superior@surfersnet.com ;;;***************************************** ;;;;*************** (defun c:sq() (setq SQerr *error*) (Defun *error* (msg)(setq *error* SQerr)(command "ucs" "w")(COMMAND "UCS" "O" OLDORG)(setvar "cmdecho" 1)(princ)) (SETVAR "CMDECHO" 0) (IF (= SQTXT nil)(SETQ SQTXT "Pline")) (INITGET 1 "P L") (WHILE (/= (TYPE (setq SQPT1(getpoint (STRCAT "Line/Pline/<" SQTXT "> "))) ) 'LIST) (IF (= (STRCASE SQPT1) "P")(PROGN(SETQ SQTXT "Pline")(INITGET 1 "P L"))) (IF (= (STRCASE SQPT1) "L")(PROGN(SETQ SQTXT "Line") (INITGET 1 "P L"))) ) (SETQ OLDORG(GETVAR "UCSORG")) (if (/= (car (getvar "ucsxdir")) 1.0) (setq SQPT2(getCORNER SQPT1 "\npick 2nd corner: ")) (progn (SETVAR "LASTPOINT" SQPT1) (COMMAND "UCS" "O" SQPT1) (setq SQPT2(getCORNER '(0 0) "\npick 2nd corner: ")) (setq SQPT2(list(+(car SQPT2)(car SQPT1))(+(cadr SQPT2)(cadr SQPT1)))) (COMMAND "UCS" "W")(COMMAND "UCS" "O" OLDORG) ) ) ;end prog end if (COMMAND SQTXT SQPT1 (LIST (CAR SQPT2) (CADR SQPT1)) SQPT2 (LIST (CAR SQPT1)(CADR SQPT2)) "C") (setq *error* SQerr) (SETVAR "CMDECHO" 1)(PRIN1)) ;;;;;;;;********************