본문 바로가기
autocad

임의의 시트를 출력하기 위한 도각 선택 모듈

by kmlab 2025. 1. 23.

;; 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