주말농부님 text arrange 관련 질문입니다.
컨텐츠 정보
- 995 조회
- 4 댓글
- 0 추천
- 0 비추천
-
목록
본문
;;===============================================================
; 문자 정렬하기(2006.11.주말농부)
; ->다중선택된 문자를 기준점을 정하여 좌우로 정렬하는 명령어
; ->문자의 시작점이나 끝점을 맞추어 정렬할 때 사용
; ->수정 보완(2007.1)
; ->상하정렬 추가(2009.2)
;;—— Text Arrange ——————————————-
(defun c:ta(/ os ss n k pt pt1 pt1x pt2 ptx pty pyxy kw k en ed tx a)
;->*error* start
(defun *error* (msg)(princ "error: ")(princ msg)
(setvar "osmode" os)(setvar "blipmode" bl)
(princ))
;-<*error* end
(setq os (getvar "osmode"))
(prompt " 문자 정렬하기…")
(setq ss (ssget '((0 . "text")))) (terpri)
(setq n (sslength ss))
(setq ptx (car (getpoint "n좌우정렬점 선택(상하)->")))(terpri)
(setvar "osmode" 0)
(if (= ptx nil)
(progn
(setq ss (@ta_lst ss))
(setq pt (dxf 10 (entget (ssname ss 0))))
(setq pty (cadr pt))
(setq k 1)
(repeat (- n 1)
(setq en (ssname ss k))
(setq ed (entget en))
(setq pt1 (dxf 10 ed))
(setq pt1x (car pt1))
(setq pt2 (list pt1x pty))
(vl-cmdf "move" en "" pt1 pt2)
(setq k (+ k 1)) )
)
(progn
(setq a "자리맞추기 선택[왼쪽(L)/중심(C)/중간(M)/오른쪽(R)] <왼쪽>: ")
(initget "Left Center Middle Right")
(setq kw (getkword a))
(if (= kw nil) (setq kw "Left"))
(if (= kw "Left") (setq sn 10) (setq sn 11))
(command "justifytext" ss "" kw) (terpri)
(setq k 0)
(while (<= 1 n)
(setq en (ssname ss k))
(setq ptxy (cdr (assoc 10 (entget en))) )
(setq pty (cadr ptxy))
(setq pt2 (list ptx pty))
(entmod (subst (cons sn pt2) (assoc sn (entget en))(entget en)))
(setq n (- n 1))
(setq k (+ k 1)) )
)
);if end
(setvar "osmode" os)
(princ))
;;================================================================
; 새로운 선택세트 만들기(2009.2.12 주말농부)
; ->x좌표가 작은순서로 선택세트을 재정렬하는 리습
;;—————————————————————-
(defun @ta_lst (ss / ssn n ss-x1 en en1y ss-x1 ss-x2 ss-x3 e1 e2)
(setq ssn (sslength ss))
(setq n 0)
(setq ss-x1 '())
(repeat ssn
(setq en (ssname ss n))
(setq en1x (list en (car (cdr (assoc 10 (entget en)) ) ) ))
(setq ss-x1 (cons en1x ss-x1))
(setq n (+ n 1))
)
(setq ss-x2 (vl-sort ss-x1 '(lambda (e1 e2) (< (cadr e1) (cadr e2)))) )
;;;새로운 선택세트 만들기
(setq n 0 ss-x3 (ssadd))
(repeat ssn
(setq ss-x3 (ssadd (car (nth n ss-x2)) ss-x3))
(setq n (+ n 1))
)
ss-x3)
주말농부님 리습을 다운받았는데요.
좌우정렬은 잘되는데 상하정렬은 안되서 질문드립니다.
상하정렬은 엔터로 하면된다고 말씀하셧는데요,
엔터로 하면 캐드에서
좌우정렬점 선택(상하)->
error: no function definition: DXF; error: An error has occurred inside the
*error* functionAutoCAD variable setting rejected: "blipmode" nil
이렇게 뜹니다.
왜그럴까요?! 도움 부탁드립니다!