캐드 분류
글자기준 정렬 리습 수정 도움 요청합니다~
컨텐츠 정보
- 321 조회
- 5 댓글
- 0 추천
- 0 비추천
- 목록
본문
안녕하세요? 캐드 리습을 알게된 실무자 입니다~ 어제 멜론님께 도움을 받고 또 염치 없이 도움을
청합니다~ 글자기준 정렬 리습입니다~ 글자를 이쁘게 정렬을 해야 하는데 여간 힘든게 아니라서
찾다가 글자 기준 정렬 리습을 찾게 되었습니다~ 명령어 jx.(x축이동) jy(y축 이동) 입력하고 정렬할 나머지
글자들을 드래그 하면 글자에 맞춰 정렬이 됩니다~너무 좋은 리습입니다만 글자수가 다르면 글자가 정렬기
준 문자 맨앞 글자로 정렬리 되어서요.. 정렬기준문자 기준점을 기준으로 정렬할 문자들이 정렬이 되었으면
해서 글을 올립니다. 정렬기준 문자 기준점 기준 왼쪽,오른쪽. 중심으로 정렬이 되었으면 합니다
리습을 접한지 얼마 되지 않아 아주 간단한 정도의 수정만 가능 하지만 저에겐 조금 벅차서요 도움 부탁드립니다~
(defun C:JY (/ S1 S2 XY YY) ; 기준객체의 삽입점(10) 기준 Y좌표 정렬
(prompt "n 기준이 되는 객체를 선택")
(setq S1 (entsel))
(prompt "n 옮길 객체를 선택")
(setq S2 (ssget)
n (sslength S2)
I 0
p1 (caddr (assoc 10 (entget (car S1)))) ; 처음 선택된 객체의 Y 좌표
)
(repeat n
(SETQ S3 (SSNAME S2 I))
(setq p2 (caddr (assoc 10 (entget S3)))) ; 두번째 선택된 객체의 Y 좌표
(setq Xy (car (assoc 10 (entget S3))))
(setq S1 (entsel))
(prompt "n 옮길 객체를 선택")
(setq S2 (ssget)
n (sslength S2)
I 0
p1 (caddr (assoc 10 (entget (car S1)))) ; 처음 선택된 객체의 Y 좌표
)
(repeat n
(SETQ S3 (SSNAME S2 I))
(setq p2 (caddr (assoc 10 (entget S3)))) ; 두번째 선택된 객체의 Y 좌표
(setq Xy (car (assoc 10 (entget S3))))
(setq yc (- p1 p2))
(setq c "@0,")
(setq d (rtos yc 2 0))
(setq scc (strcat c d))
(PRINC "n")
(PRINC scc)
(command "move" s3 "" xy scc "")
(setq i (1+ i))
)
)
(setq d (rtos yc 2 0))
(setq scc (strcat c d))
(PRINC "n")
(PRINC scc)
(command "move" s3 "" xy scc "")
(setq i (1+ i))
)
)
(defun C:JYC (/ S1 S2 XY YY) ;
(prompt "n 기준이 되는 객체를 선택")
(setq S1 (entsel))
(setq S1 (entsel))
(prompt "n 옮길 객체를 선택")
(setq S2 (ssget)
n (sslength S2)
I 0
p1 (caddr (assoc 11 (entget (car S1)))) ; 처음 선택된 객체의 Y 좌표
)
n (sslength S2)
I 0
p1 (caddr (assoc 11 (entget (car S1)))) ; 처음 선택된 객체의 Y 좌표
)
(repeat n
(SETQ OA1(ENTGET (SETQ SN1(SSNAME S2 i))))
(SETQ OK1(CDR (ASSOC 0 OA1)))
(SETQ TC1(ASSOC 1 OA1))
(SETQ TXT1(CDR TC1))
(setq p2 (caddr (assoc 11 (entget SN1)))) ; 두번째 선택된 객체의 Y 좌표
(setq Xy (car (assoc 11 (entget SN1))))
(setq Yc (- p1 p2))
(SETQ OA1(ENTGET (SETQ SN1(SSNAME S2 i))))
(SETQ OK1(CDR (ASSOC 0 OA1)))
(SETQ TC1(ASSOC 1 OA1))
(SETQ TXT1(CDR TC1))
(setq p2 (caddr (assoc 11 (entget SN1)))) ; 두번째 선택된 객체의 Y 좌표
(setq Xy (car (assoc 11 (entget SN1))))
(setq Yc (- p1 p2))
(setq c "@0,")
(setq d (rtos Yc 2 0))
(setq scc (strcat c d ))
(setq d (rtos Yc 2 0))
(setq scc (strcat c d ))
(command "CHPROP" SN1 "" "C" 1 "")
(command "move" s3 "" xy scc)
(setq i (1+ i))
) ; repeat end
(command "move" s3 "" xy scc)
(setq i (1+ i))
) ; repeat end
)
(defun C:JX (/ S1 S2 XY YY) ; 기준객체의 삽입점(10) 기준 X좌표 정렬
(prompt "n 기준이 되는 객체를 선택")
(setq S1 (entsel))
(prompt "n 옮길 객체를 선택")
(setq S2 (ssget)
n (sslength S2)
I 0
p1 (cadr (assoc 10 (entget (car S1)))) ; 처음 선택된 객체의 X 좌표
)
(repeat n
(setq S1 (entsel))
(prompt "n 옮길 객체를 선택")
(setq S2 (ssget)
n (sslength S2)
I 0
p1 (cadr (assoc 10 (entget (car S1)))) ; 처음 선택된 객체의 X 좌표
)
(repeat n
(setq S3 (SSNAME S2 I))
(setq p2 (cadr (assoc 10 (entget S3)))) ; 두번째 선택된 객체의 X 좌표
(setq Xy (car (assoc 10 (entget S3))))
(setq Xc (- p1 p2))
(setq C "@")
(setq E ",0″)
(setq d (rtos Xc 2 0))
(setq scc (strcat c d E))
(command "move" s3 "" xy scc "")
(setq i (1+ i))
(setq p2 (cadr (assoc 10 (entget S3)))) ; 두번째 선택된 객체의 X 좌표
(setq Xy (car (assoc 10 (entget S3))))
(setq Xc (- p1 p2))
(setq C "@")
(setq E ",0″)
(setq d (rtos Xc 2 0))
(setq scc (strcat c d E))
(command "move" s3 "" xy scc "")
(setq i (1+ i))
)
)
)
(defun C:JXC (/ S1 S2 XY YY) ;
(prompt "n 기준이 되는 객체를 선택")
(setq S1 (entsel))
(setq S1 (entsel))
(prompt "n 옮길 객체를 선택")
(setq S2 (ssget)
n (sslength S2)
I 0
p1 (cadr (assoc 11 (entget (car S1)))) ; 처음 선택된 객체의 X 좌표
)
n (sslength S2)
I 0
p1 (cadr (assoc 11 (entget (car S1)))) ; 처음 선택된 객체의 X 좌표
)
(repeat n
(SETQ OA1(ENTGET (SETQ SN1(SSNAME S2 i))))
(SETQ OK1(CDR (ASSOC 0 OA1)))
(SETQ TC1(ASSOC 1 OA1))
(SETQ TXT1(CDR TC1))
(setq p2 (cadr (assoc 11 (entget SN1)))) ; 두번째 선택된 객체의 X 좌표
(setq Xy (car (assoc 11 (entget SN1))))
(setq Xc (- p1 p2))
(setq C "@")
(setq E ",0″)
(setq d (rtos Xc 2 0))
(setq scc (strcat c d E))
(SETQ OA1(ENTGET (SETQ SN1(SSNAME S2 i))))
(SETQ OK1(CDR (ASSOC 0 OA1)))
(SETQ TC1(ASSOC 1 OA1))
(SETQ TXT1(CDR TC1))
(setq p2 (cadr (assoc 11 (entget SN1)))) ; 두번째 선택된 객체의 X 좌표
(setq Xy (car (assoc 11 (entget SN1))))
(setq Xc (- p1 p2))
(setq C "@")
(setq E ",0″)
(setq d (rtos Xc 2 0))
(setq scc (strcat c d E))
(command "CHPROP" SN1 "" "C" 1 "")
(command "move" SN1 "" xy scc)
(setq i (1+ i))
) ; repeat end
(command "move" SN1 "" xy scc)
(setq i (1+ i))
) ; repeat end
)
(DEFUN c:JTM() ; 글자기준. 가운데
; (setq ent (car (entsel)))
(SETQ GE1(ssget '((0 . "TEXT"))) n(sslength GE1) i 0)
(repeat n
(SETQ OA1(ENTGET (SETQ SN1(SSNAME GE1 i))))
(SETQ OK1(CDR (ASSOC 0 OA1)))
(SETQ TC1(ASSOC 1 OA1))
(SETQ TXT1(CDR TC1))
(command "Justifytext" SN1 "" "M")
(COMMAND "CHPROP" SN1 "" "C" 1 "")
(SETQ OA1(ENTGET (SETQ SN1(SSNAME GE1 i))))
(SETQ OK1(CDR (ASSOC 0 OA1)))
(SETQ TC1(ASSOC 1 OA1))
(SETQ TXT1(CDR TC1))
(command "Justifytext" SN1 "" "M")
(COMMAND "CHPROP" SN1 "" "C" 1 "")
(SETQ i (1+ i))
)
)
)
)
(DEFUN c:JTR() ; 글자기준. 오른쪽
; (setq ent (car (entsel)))
; (setq ent (car (entsel)))
(SETQ GE1(ssget '((0 . "TEXT"))) n(sslength GE1) i 0)
(repeat n
(SETQ OA1(ENTGET (SETQ SN1(SSNAME GE1 i))))
(SETQ OK1(CDR (ASSOC 0 OA1)))
(SETQ TC1(ASSOC 1 OA1))
(SETQ TXT1(CDR TC1))
(command "Justifytext" SN1 "" "R")
(COMMAND "CHPROP" SN1 "" "C" 2 "")
(SETQ i (1+ i))
)
)
(SETQ OA1(ENTGET (SETQ SN1(SSNAME GE1 i))))
(SETQ OK1(CDR (ASSOC 0 OA1)))
(SETQ TC1(ASSOC 1 OA1))
(SETQ TXT1(CDR TC1))
(command "Justifytext" SN1 "" "R")
(COMMAND "CHPROP" SN1 "" "C" 2 "")
(SETQ i (1+ i))
)
)
(DEFUN c:JTL() ; 글자기준. 왼쪽
; (setq ent (car (entsel)))
; (setq ent (car (entsel)))
(SETQ GE1(ssget '((0 . "TEXT"))) n(sslength GE1) i 0)
(repeat n
(SETQ OA1(ENTGET (SETQ SN1(SSNAME GE1 i))))
(SETQ OK1(CDR (ASSOC 0 OA1)))
(SETQ TC1(ASSOC 1 OA1))
(SETQ TXT1(CDR TC1))
(command "Justifytext" SN1 "" "L")
(COMMAND "CHPROP" SN1 "" "C" 3 "")
(SETQ OA1(ENTGET (SETQ SN1(SSNAME GE1 i))))
(SETQ OK1(CDR (ASSOC 0 OA1)))
(SETQ TC1(ASSOC 1 OA1))
(SETQ TXT1(CDR TC1))
(command "Justifytext" SN1 "" "L")
(COMMAND "CHPROP" SN1 "" "C" 3 "")
(SETQ i (1+ i))
)
)
)
)
(defun C:JCC (/ M S P1 P2 XN YN XL YL XI YI Q Z R ) ;Arrange of the lighting fixture
(SETVAR "CMDECHO" 0)
(prompt "n가운데로 위치시킴.. edit by.. KS")
(setq xyxy(ssget))
(setq zz(entget (ssname xyxy 0))) ; OA1 -> Z
;; (setq fff (entget (ssname a 0)))
(SETQ z0(CDR (ASSOC 0 zz))) ; 속성
(SETQ z0(CDR (ASSOC 0 zz))) ; 속성
(setq z1(assoc 10 zz)) ; 위치2
(setq z2(assoc 11 zz)) ; 위치1
(setq pp1(cdr z1))
(setq z2(assoc 11 zz)) ; 위치1
(setq pp1(cdr z1))
(if (= "TEXT" z0)
(progn ; yes
(prompt "n TEXT STYLE")
(setvar "osmode" 32)
(setq pt1 (getpoint "nFirst point : "))
(setq pt2 (getpoint pt1 "nSecond point : "))
(setq ptx (/ (- (car pt2) (car pt1)) 2))
(setq pty (/ (- (cadr pt2) (cadr pt1)) 2))
(setq pt3 (list (+ (car pt1) ptx) (+ (cadr pt1) pty) 0.0))
(setq ppp (subst (cons 72 4) (assoc 72 zz) zz))
(entmod ppp)
(setq qqq (subst (cons 11 pt3) (assoc 11 ppp) ppp))
(entmod qqq)
(setvar "osmode" 0)
) ; progn
(setq pt1 (getpoint "nFirst point : "))
(setq pt2 (getpoint pt1 "nSecond point : "))
(setq ptx (/ (- (car pt2) (car pt1)) 2))
(setq pty (/ (- (cadr pt2) (cadr pt1)) 2))
(setq pt3 (list (+ (car pt1) ptx) (+ (cadr pt1) pty) 0.0))
(setq ppp (subst (cons 72 4) (assoc 72 zz) zz))
(entmod ppp)
(setq qqq (subst (cons 11 pt3) (assoc 11 ppp) ppp))
(entmod qqq)
(setvar "osmode" 0)
) ; progn
(progn ; no
(prompt "n NOT TEXT STYLE")
(setvar "osmode" 32)
(setq P1(getpoint "First point "))
(setq P2(getcorner P1 "Second point "))
(setq P1(getpoint "First point "))
(setq P2(getcorner P1 "Second point "))
(setvar "osmode" 0)
(setq YN 1)(setq XN 1)
(setq XL(/ (- (car P2) (car P1)) XN))
(setq XI(/ XL 2))
(setq YL(/ (- (cadr P2) (cadr P1)) YN))
(setq YI(/ YL 2))
(setq q (list (+ (car P1) XI) (+ (cadr P1) YI)))
(setq XL(/ (- (car P2) (car P1)) XN))
(setq XI(/ XL 2))
(setq YL(/ (- (cadr P2) (cadr P1)) YN))
(setq YI(/ YL 2))
(setq q (list (+ (car P1) XI) (+ (cadr P1) YI)))
(COMMAND "move" xyxy "" pp1 q "")
(IF (AND (= XN 1) (= YN 1)) (PROMPT "ARRANGE ONLY ONE ")
(IF (AND (= XN 1) (= YN 1)) (PROMPT "ARRANGE ONLY ONE ")
(IF (AND (/= XN 1) (/= YN 1))
(COMMAND "ARRAY" xyxy "" "R" YN XN YL XL)
(IF (= XN 1)
(COMMAND "ARRAY" xyxy "" "R" YN XN YL)
(COMMAND "ARRAY" xyxy "" "R" YN XN XL)
)
)
)
(COMMAND "ARRAY" xyxy "" "R" YN XN YL XL)
(IF (= XN 1)
(COMMAND "ARRAY" xyxy "" "R" YN XN YL)
(COMMAND "ARRAY" xyxy "" "R" YN XN XL)
)
)
)
) ; prog end
) ; end if
(PRINC "nedit.. KS")
(princ)
)
관련자료
댓글 5
/ 1 페이지