2011년 11월 8일 화요일


;basic도면의 부재 싸이즈를 txt파일로



(defun c:ab( / stp1 edp1 stp10 edp10 stp2 edp2 v_len1 v_len2 v_len3 fd file_m)
;;;  stp~영역
;;;  edp~영역
;;;  v_len~선택영역교체용
;;;  fd 파일포인터
;;;  file_~파일이름
  (setq var_osmode(getvar "osmode"))
  (setvar "osmode" 33)

  (prompt"\n한줄의 영역을 지정해주세요.")
  (setq stp1(getpoint"\n시작점"))
  (setq edp1(getcorner stp1 "\n두번째점"))

  (prompt"\n문자열이 포함된 영역을 지정해주세요")
  (setq stp10(getpoint"\n시작점"))
  (setq edp10(getcorner stp10 "\n두번째점"))
 
  (setq file_m(file_name))
  (if (= file_m nil)
    (setq file_m file_i)
    (setq file_i file_m)
    )
 
;;;  파일입력시 이전 입력값 을 쓴다.
  (setvar "osmode" 0)
  (setq v_len1(abs(- (cadr stp1)(cadr edp1))))
  (setq v_len2(abs(- (cadr stp10)(cadr edp10))))
  (setq v_len3(atoi(rtos(/ v_len2 v_len1)2 0)))

  ;(while (<= (abs(cadr stp1))(abs(cadr edp10)))
  ;(while (/= rl nil)
   (repeat  v_len3
     (setq a1(ssget "w" stp1 edp1))
     (if(/= a1 nil)
        (progn
           (setq fd(open file_m "a"))
           (princ (basic_mark a1)fd)
           (princ "\n" fd)
           (close fd)
 )
       )
     ;;;선택영역에 텍스트가없으면 파일에 쓰지않음
     (setq stp2(polar stp1 (+ pi(/ pi 2)) v_len1))
     (setq edp2(polar edp1 (+ pi(/ pi 2)) v_len1))
     (setq stp1 stp2
  edp1 edp2)
     )
  (setvar "osmode" var_osmode)
  (princ)
  )
;;;text를 선택해서 파일로저장하는거

(defun basic_mark(a1 / num n a2 a3 a4 a5 b1 b2 b3 len_b1 len_b2 b6 b11 b22)
;;;a1~a5선택세트
;;;n 반복용
;;;len~ 길이를 이용한 정렬
;;;b~ 출력
                             
   ; (setq a1(ssget "w" stp1 edp1))
    (setq num(sslength a1))
    (setq n 0)

    (repeat  2
 
       (setq a2(ssname a1 n))
       (setq a3(entget a2))
       (setq a4(assoc 1 a3))
       (setq a5(cdr a4))

       (if (= n 0)
          (setq b1 a5)
          (setq b2 a5)
        )

       (setq n(+ n 1))
      )

     (setq len_b1(strlen b1))
     (setq len_b2(strlen b2))
       ;(setq b6 nil)

     (if (> len_b1 len_b2)
        (progn
           (setq b6 b1)
           (setq b1 b2)
           (setq b2 b6)
         )
      )
    (setq b11(strcat "\"" b1 "\""))
    (setq b22(strcat "\"" b2 "\""))
    (setq b3(list b11 b22))
   )
;;;선택세트에서 문자열을 정리해서 리턴

댓글 없음 :

댓글 쓰기