2011년 11월 8일 화요일


;;;파일에서 읽어온문자를 도면의 글자와 대치해서 삽입

(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
 )

댓글 1개 :