TEXT가 사각형안에 있을 때 TEXT를 사각형 중심으로 정렬하는 리습을 작성 중입니다.
사각형의 중심 좌표를 구할 방법이 없어서 완전 무식하게 아래처럼
TEXT가 있는 사각형을 BOUNDARY로 선택하고 BOUNDARY를 다시
LINE으로 분해해서 분해된 두번째 세번째 LINE의 X,Y 좌표로
중심점을 구하도록 했습니다.
이렇게 하니 TEXT가 많을 경우 속도가 느려지고 가장 큰 문제는 BOUNDARY가
직사각형이 아닌 곳에 선택될 경우 ERROR가 발생하며
BOUNDARY 때문에 여러개의 선이 이중으로 생깁니다. ㅡㅜ
말이 길어졌는데 결론은
1. BOUNDARY의 중심좌표를 구하거나
2. BOUDARY의 경우 위치 좌표(DXF CODE로 10)가 직사각형일 경우
아래 처럼 4개 있는데 두번째, 세번째 10의 좌표를 구할 방법이 없을 까요??
부탁드리겠습니다.
두객체 선택: ((-1 . <도면요소 이름: 7ef71928>) (0 . “LWPOLYLINE”) (330 .
<도면요소 이름: 7ef6fcf8>) (5 . “3CD”) (100 . “AcDbEntity”) (67 . 0) (410 .
“Model”) (8 . “0”) (100 . “AcDbPolyline”) (90 . 4) (70 . 1) (43 . 0.0) (38 .
0.0) (39 . 0.0) (10 2297.81 387.43) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10
3195.37 387.43) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 3195.37 -362.737) (40 .
0.0) (41 . 0.0) (42 . 0.0) (10 2297.81 -362.737) (40 . 0.0) (41 . 0.0) (42 .
0.0) (210 0.0 0.0 1.0))
;테두리 작성
(command “-boundary” pt1 “” )
;테두리 분해
(setq ent1 (entlast))
(command “explode” ent1)
;line1 삭제
(setq ent1 (entlast))
(entdel ent1)
;line2 point 구함
;pt22에 format x좌표
;pt2에 사각형 중심 x좌표 저장
(setq ent1 (entlast))
(setq dxf (entget (entlast)))
(setq line1 (assoc 11 dxf))
(setq line2 (cdr line1))
(setq pt21 (car line2))
(setq line3 (assoc 10 dxf))
(setq line4 (cdr line3))
(setq pt22 (car line4))
(setq pm2 (/ (- pt21 pt22) 2))
(setq pt2 (+ pt22 pm2))
(entdel ent1)
;line3 point 구함
;pt32에 format y좌표
;pt3에 사각형 중심 y좌표 저장
(setq ent1 (entlast))
(setq dxf (entget (entlast)))
(setq line1 (assoc 10 dxf))
(setq line2 (cdr line1))
(setq pt31 (cadr line2))
(setq line3 (assoc 11 dxf))
(setq line4 (cdr line3))
(setq pt32 (cadr line4))
(setq pm3 (/ (- pt31 pt32) 2))
(setq pt3 (+ pt32 pm3))
(entdel ent1)
;line4 삭제
(setq ent1 (entlast))
(entdel ent1)