TheSwamp
Code Red => AutoLISP (Vanilla / Visual) => Topic started by: GDF on June 12, 2017, 08:31:21 PM
-
I'm having a brain fart.
Need help reading a text file to the next line...
;; EN entity name of insert
;; TAG attribute tag
;; NEW new attribute value [string]
;;
;; Replaces current attribute value stored in
;; drawing with the NEW string value.
;;
(defun ARCH:ATTUPDATE (EN TAG NEW / EL)
(setq EN (entnext EN)
;;skip INSERT
EL (entget EN)
;;get ATTRIB
)
;; Search attribs for match of tag name
(while (and (= (cdr (assoc 0 EL)) "ATTRIB") (/= (cdr (assoc 2 EL)) TAG))
(setq EN (entnext EN)
;;next ATTRIB
EL (entget EN)))
(if (= (cdr (assoc 0 EL)) "ATTRIB")
(progn (entmod ;;modify entity data
(subst ;;substitute in list
(cons 1 NEW)
;;new data
(assoc 1 EL)
;;old data
EL
;;list
))
(entupd EN)
;;force regen of entity
)))
(defun C:test ()
;;(ARCH:LYR "A-SHTT-NAME")
(setq ARCH:INDX 0)
(setq readfile (open (strcat (getvar "dwgprefix") "SHT_ClnBlk.txt") "r"))
(setq line (read-line readfile))
[b];;need help here[/b]
(command
".insert"
(strcat "SHT_ClnBlk" "=" ARCH#CUSF
"Builders Plan Service/Syms/Arch_syms/" "SHT_ClnBlk")
"0,0"
""
""
""
"" "" "" "" "")
(setq en (cdr (assoc -1 (entget (entlast)))))
(ARCH:ATTUPDATE en "OWNER" line)
(ARCH:ATTUPDATE en "SUB" line)
(ARCH:ATTUPDATE en "LOTBLK" line)
(ARCH:ATTUPDATE en "ADDRESS" line)
(ARCH:ATTUPDATE en "CITY" line)
(close readfile)
(princ)
)
-
I just hacked this to work...bad lisp
(defun C:SHT_ClnBlk (/ en line1 line2 line3 ?line4 line5 readfile)
(ARCH:LYR "A-SHTT-NAME")
(setq readfile (open (strcat (getvar "dwgprefix") "SHT_ClnBlk.txt") "r"))
(setq line1 (read-line readfile))
(setq line2 (read-line readfile))
(setq line3 (read-line readfile))
(setq line4 (read-line readfile))
(setq line5 (read-line readfile))
(command
".insert"
(strcat "SHT_ClnBlk" "=" ARCH#CUSF
"Builders Plan Service/Syms/Arch_syms/" "SHT_ClnBlk")
"0,0"
""
""
""
"" "" "" "" "")
(setq en (cdr (assoc -1 (entget (entlast)))))
(ARCH:ATTUPDATE en "OWNER" line1)
(ARCH:ATTUPDATE en "SUB" line2)
(ARCH:ATTUPDATE en "LOTBLK" line3)
(ARCH:ATTUPDATE en "ADDRESS" line4)
(ARCH:ATTUPDATE en "CITY" line5)
(close readfile)
(princ)
)
;;;
(defun C:SHT_ClnBlkSite (/ en line1 line2 line3 ?line4 line5 readfile)
(ARCH:LYR "A-SHTT-NAME")
(setq readfile (open (strcat (getvar "dwgprefix") "SHT_ClnBlk.txt") "r"))
(setq line1 (read-line readfile))
(setq line2 (read-line readfile))
(setq line3 (read-line readfile))
(setq line4 (read-line readfile))
(setq line5 (read-line readfile))
(command
".insert"
(strcat "SHT_ClnBlkSite" "=" ARCH#CUSF
"Builders Plan Service/Syms/Arch_syms/" "SHT_ClnBlkSite")
"0,0"
""
""
""
"" "" "" "" "" "" "" "" "" "")
(setq en (cdr (assoc -1 (entget (entlast)))))
(ARCH:ATTUPDATE en "OWNER" line1)
(ARCH:ATTUPDATE en "OWNER2" line1)
(ARCH:ATTUPDATE en "SUB" line2)
(ARCH:ATTUPDATE en "SUB2" line2)
(ARCH:ATTUPDATE en "LOTBLK" line3)
(ARCH:ATTUPDATE en "LOTBLK2" line3)
(ARCH:ATTUPDATE en "ADDRESS" line4)
(ARCH:ATTUPDATE en "ADDRESS2" line4)
(ARCH:ATTUPDATE en "CITY" line5)
(ARCH:ATTUPDATE en "CITY2" line5)
(princ)
)
-
Maybe something like this?
(defun c:sht_clnblk
(/ en file
) (defun _readfile
(fn
/ line of out
) )
)
)
(arch:lyr "A-SHTT-NAME")
".insert"
(strcat "SHT_ClnBlk" "=" arch#cusf
"Builders Plan Service/Syms/Arch_syms/" "SHT_ClnBlk") "0,0"
""
""
""
""
""
""
""
""
)
(arch:attupdate en
"OWNER" (nth 0 file
)) (arch:attupdate en
"SUB" (nth 1 file
)) (arch:attupdate en
"LOTBLK" (nth 2 file
)) (arch:attupdate en
"ADDRESS" (nth 3 file
)) (arch:attupdate en
"CITY" (nth 4 file
)) )
)
)
-
Thanks Ron
-
Thanks Ron
You're welcome 😀