;;;파일에서 읽어온문자를 도면의 글자와 대치해서 삽입
(defun c:ae(/ a1 a2 a3 num n a4 po1 tang ipt a5 text1 file_m);
(setq val1(getvar "dimscale"))
(setq val2(getvar "cmdecho"))
(setq val3(/ val1 2))
(setvar "cmdecho" 0)
(setq file_m(file_name))
(if (= file_m nil)
(setq file_m file_i)
(setq file_i file_m)
)
(prompt"\n 글자를 선택해주세요")
(setq a1(ssget '((0 . "text"))))
(setq num(sslength a1))
(setq n 0)
(repeat num
(setq a2(ssname a1 n))
(setq a3(entget a2))
(setq a4(assoc 1 a3))
(setq a5(cdr a4))
(setq po1(cdr(assoc 10 a3)))
(setq tang(cdr(assoc 50 a3)))
(setq ipt(polar po1 (+ tang (+ pi(/ pi 2))) val1))
(setq tang_t(* 180(/ tang pi)))
;;;----text의 삽입점과 회전추출----
;(setq text10(car(aaa a5)))
;;; (setq text1(itoa(cadr(aaa a5))))
;;; (setq text2(itoa(caddr(aaa a5))))
(setq text1(car(edwg_mark a5 file_m)))
;(setq text2(aaa a5))
; (setq textval(strcat text1 "x" text2))
(command "-text" ipt val3 tang_t text1)
(setq n(+ n 1))
)
(princ)
)
(DEFUN edwg_mark(a5 file_m / fd r1 r2 r3 r4 i);
(setq i 0)
(setq fd(open file_m "r"))
(if(= fd nil)
(alert "\n존재하지 않는파일입니다.")
)
(while (= i 0)
(setq r1(read-line fd))
(if (= r1 nil)
(progn
(setq r4 (list "000"))
(setq i 1)
)
(progn
(setq r2(read r1))
(setq r3(car r2))
)
)
(if (= r3 a5)
(progn
(setq r4(cdr r2))
(setq i 1)
)
)
)
(close fd)
r4
)
문자열 분리해서 쓰기를 못하겠어.
답글삭제