프로그램
캐드 분류

캐드리습문의드립니다.<br>캐드리습문의드립니다.

컨텐츠 정보

본문

캐드리습을 사용중인다. 지적도shp파일을 dxf로 변환후 지번을 넣기위해 사용하는 리습인데요.

글자정렬이 왼쪽으로 되어 있는데 이것을 혹시 지적필지 않에 중간정렬로 할수 있는지 알고 싶습니다.
만약에 가능하다면 어떻게 해야하는지요. 리습명은 sv.lsp 입니다.
((vl-load-com)
(defun c:SV (/ kht-string->list
     idx selen name ent cd-3 nameObj pt1 pt2 cenpt mLst)
(defun kht-string->list (a b / app ex) 
  (setq app (list)) 
  (while (setq ex (vl-string-position (ascii a) b)) 
    (if (/= "" (substr b 1 ex)) 
      (setq app (append app (list (substr b 1 ex)))) 
    ) 
    (setq b (substr b (+ ex 2))) 
  ) 
  (cond 
    ((and app (/= b "")) (append app (list b))) 
    (app app) 
    (t (list b)) 
  )
);defun
  
  (setq idx -1
selen 0
)
  (and (setq se (ssget (list (cons 0 "*POLYLINE"))))
       (setq seLen (sslength se))
       )
  
  (repeat selen
    (setq name (ssname se (setq idx (1+ idx)))
  ent (entget name (list "ADE"))
  cd-3 (cadr (assoc -3 ent))
  nameObj (vlax-ename->vla-object name)
  )
    (vla-GetBoundingBox nameObj 'pt1 'pt2)
    (setq pt1 (vlax-safearray->list pt1)
  pt2 (vlax-safearray->list pt2)
  cenpt (list (/ (+ (car pt1)(car pt2)) 2)(/ (+ (cadr pt1)(cadr pt2)) 2))
  )
    (foreach m (cdr cd-3)
      (if (= (car m) 1000)
(progn
   (setq mLst (kht-string->list "=" (cdr m)))
   (entmake (list (cons 0 "text")(cons 1 (cadr mLst))(cons 8 (car mLst))(cons 10 cenpt)(cons 40 2)))
   )
)
      )
    )
  (princ)
  )
일전에 어떤분계서 올려주신대로 하니 지적선안에 중간정렬이 돼지안하서 ^^;; 지적선안에 중간정렬을 하는방법이 없을까요. 꾸벅. 

이 리습에 도형 간격띄우는것을 추가하고 싶습니다. 예를들면 책상배치 하는것처럼말이죠.
부탁드립니다. 어떻게해야하는건지 도무지 알 수 없어 문의드립니다.
(defun c:go()
 (setq pt1 (getpoint "n표의 좌측하단 시작점?")
       row_n (getint "n행의 갯수?")
       clm_n (getint "n열의 갯수?")
       row_d (getdist pt1 "n셀의 높이?")
       clm_d (getdist pt1 "n셀의 너비?")
       row_g (getreal "n줄개수?")
       clm_gn(getreal "n칸간격?")
       row_t_len (* row_n row_d) 
       clm_t_len (* clm_n clm_d)    
 )
 (setq x (car pt1)
       y (cadr pt1)
 )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   (setq n 0)
     (while (<= n row_n) 
               (setq pt1 (list x (+ y (* row_d n)))  
                     pt2 (list (+ x clm_t_len) (+ y (* row_d n)))  
                     n (+ n 1)  
               )
            (command "line" pt1 pt2 "")
     )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   (setq m 0)
     (while (<= m clm_n)
               (setq pt3 (list (+ x (* clm_d m)) y)
                     pt4 (list (+ x (* clm_d m)) (+ y row_t_len))
                     m (+ m 1)  
               )
            (command "line" pt3 pt4 "")
     )
  (setq x1 x1)
  (setq y1 (+ y1 g))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   (redraw)
)

관련자료

댓글 1 / 1 페이지

수야12님의 댓글

전에 올라왔던 질문인데 다시 올라왔네요??? 

그때 어떤분이 답글 다셨던거 같은데  삭제후 다시 올리셨네… 
전체 80 / 4 페이지
번호
제목
이름

최근글


새댓글


알림 0