; TEXTIN.LSP - KETIV ; ; Copyright 1986, 1987, 1988, 1989 by KETIV Technologies, Inc. ; All rights reserved. ; KETIV Technologies, Inc. ; 6645 NE 78th Court #C-2 ; Portland, OR 97218 ; ; Layer Group: KTEXT ; ; Menu Location: Text I/O pull down ; ; Purpose: To import text strings from an ascii text file. ; ; Prompts: Filename ; [If file not found] ; ERROR: File not found ! ; Text justification (Left/Centered/Right) : ; Text height : ; Text angle <0.0>: ; Line spacing or RETURN for default: ; Text point: ; ; Assumptions/Limitations: ; Uses current text style ; ;====================================================================================================== ; Initialize memory and important system variables (defun c:textin (/ f fn p1 pr rtd rtr rtr1 text tht thtv tj ts) (setq fn nil) (setq hdrlst (list (cons "blipmode" (getvar "blipmode" )) (cons "highlight" (getvar "highlight")) (cons "angbase" (getvar "angbase" )) (cons "limcheck" (getvar "limcheck" )) (cons "osmode" (getvar "osmode" )) ) ) (setvar "cmdecho" 0) (setvar "highlight" 0) (setvar "angbase" 0) (setvar "limcheck" 0) (setvar "osmode" 0) (setq clayer (getvar "clayer")) ; (setlay "ktext") ;====================================================================================================== ;Input and check for file to input (while (or (= FN "") (= FN nil)) (setq FN (getfiled "Inport Text File" "" "txt" 4)) ) (setq F (open FN "r")) (if (null F) (prompt "\nERROR: File not found ! ") (progn ;====================================================================================================== ;Set text justification (initget "L C R") (setq TJ (getkword "\nText justification (Left/Centered/Right) : ")) (if (= TJ "") (setq TJ "L")) ;====================================================================================================== ;Select text starting point (initget 1) (setq P1 (getpoint "\nText starting point: ")) ;====================================================================================================== ; Define text size (setq THT (cdr (assoc 40 (tblsearch "style" (getvar "textstyle"))))) (if (= THT 0.0) (progn (setq PR (strcat "\nText height <" (rtos (getvar "textsize") (getvar "lunits") (getvar "luprec")) ">: " )) (initget 6) (setq THT (getdist PR P1)) (setq THT (if (= THT nil) (getvar "textsize") THT)) (setq THTV 0) ) (setq THTV 1) ) ;====================================================================================================== ;Set text angle, and line spacing (setq RTR (getangle "\nText angle <0.0>: " p1)) (if (= RTR nil) (setq RTR 0.0)) (initget 2) (setq TS (getdist "\nLine spacing or RETURN for default: " p1)) (if (null TS) (setq TS (* THT 1.66666))) ;====================================================================================================== ;Convert angle from radians to degrees (setq RTD (* (/ 180 PI) RTR)) (setq RTR1 (+ RTR (/ PI -2.0))) ;====================================================================================================== ;Read line check for line and input text (setvar "blipmode" 0) (setq TEXT (read-line F)) (while (not (null TEXT)) (while (and TEXT(eq (substr TEXT 1 1)"*")) (setq TEXT (read-line F)) ) (IF (OR (= TJ "C") (= TJ "R")) (progn (if (= THTV 0) (COMMAND "TEXT" TJ P1 THT RTD TEXT) (COMMAND "TEXT" TJ P1 RTD TEXT) ) (setq COL2 "") ) (progn (if (= THTV 0) (COMMAND "TEXT" P1 THT RTD TEXT) (COMMAND "TEXT" P1 RTD TEXT) ) ) ) (setq TEXT (read-line F)) (setq P1 (polar P1 RTR1 TS)) ) (close F) ) ) ;====================================================================================================== ; Reset system variables and AutoLISP memory (command "layer" "s" clayer "") (foreach cnt hdrlst (setvar (car cnt) (cdr cnt))) (setvar "highlight" 1) (princ) ) (princ)