프로그램
캐드 분류

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

컨텐츠 정보

  • 151 조회
  • 1 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

캐드리습을 사용중인다. 지적도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님의 댓글

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

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

최근글


새댓글


알림 0