(defun C:BC (/ blkfolder space nextLL rowht rowL blkLL blkUR objwid objht)
(vl-load-com)
(setvar ‘osmode 0)
(setq
blkfolder (getfiled “Find folder” “Double-click any file in desired folder: ” “dwg” 0)
blkfolder (substr blkfolder 1 (1+ (vl-string-position 92 blkfolder 1 T))); path without dwg name
space 1 ; between blocks and min. from limits <—— set as desired
nextLL (mapcar ‘+ (getvar ‘limmin) (list space space 0)); lower left of next block
rowht 0 ; height of tallest block in row
rowL nextLL; left end of baseline of row
); end setq
(foreach blk (vl-directory-files blkfolder “*.dwg” 1)
(command “_.insert” (strcat blkfolder blk) (getvar ‘viewctr) “” “” “”)
(vla-getboundingbox (vlax-ename->vla-object (entlast)) ‘minpt ‘maxpt)
(setq
blkLL (vlax-safearray->list minpt)
blkUR (vlax-safearray->list maxpt)
objwid (- (car blkUR) (car blkLL))
objht (- (cadr blkUR) (cadr blkLL))
)
(if (> (+ (car nextLL) objwid space) (car (getvar ‘limmax)))
(setq ; then – start new row above previous row
nextLL (polar rowL (/ pi 2) (+ rowht space))
rowL nextLL
rowht 0
); end setq
); end if – no else [next in current row]
(command “_.move” (entlast) “” blkLL nextLL)
(setq nextLL (polar nextLL 0 (+ objwid space)))
(if (> objht rowht) (setq rowht objht))
); end foreach
); end defun
폴더 내 파일 블록화 리습입니다.
이 리습을 사용하면 순서대로 아래에서 부터 위로 블록들이 생성됩니다.
그런데 방향을 위에서 부터 아래로 생성하고 싶은데
가능할까요??
아니면 파일리스트를 역순으로 얻을 순 없을까요??
(reverse (vl-directory-files blkfolder “*.dwg” 1))
주석 달린 것 같이 수정해보심?