;; zoom extend로 화면을 확장하고 도각이 가장 바깥에 배치되었다는 조건으로 실행
;; 줌명령 후 도각의 하단 중앙부를 선택하기 위한 모듈임. 자동 출력을 위함.
;; 2025/01/23
;; 앞서 개발한 자동PDF 출력 리습은 레빗에서 추출된 도면을 대상으로 개발했었음.
;; 이런 경우 시트의 블록명이나 레이어 등이 표준화 되어 있어 선택필터로 활용했음.
;; 그러나, 일부 도면 작성자들은 도각을 임의로 만들어 배치하는 경우가 있어 선택이 안됐음.
(defun KM:get_titleblock ( / p0 p1 p2)
(setq sel_arrng 800)
(command "zoom" "e") ; 전제조건은 도각 밖으로 개체가 나가 있으면 안됨. 'z e' 를 하는 이유임.
(setq p0 (getvar "VIEWCTR")) ; 화면 중앙 좌표
(setq h_2 (/ (getvar "VIEWSIZE") 2.0)) ; 화면 높이
(setq p1 (polar p0 (/ pi -2) h_2)) ; p1: 도각 하단 중앙부 좌표: p0에서 ( pi/2 : 90 degree)
(setq p2 (polar p1 (/ pi 2) sel_arrng)) ; p2: 중앙부 좌표에서 위로 sel_arrng(800) 위로 좌표
(command "line" "non" p1 "non" p2 "")
(setq sb (ssget "C" p1 p2 '((0 . "INSERT")))) ; ssget p1, p2 crossing 으로 선택
(foreach x (entget (ssname sb 0))
(print x))
)
'autocad' 카테고리의 다른 글
| Create Boundary (2) | 2025.05.08 |
|---|---|
| location acad.cui (0) | 2025.03.11 |
| get screen coordinates (0) | 2025.01.23 |
| print dxf (0) | 2025.01.21 |
| get a string from the text (0) | 2025.01.21 |