본문 바로가기
autocad

Fix Dimstyles After Revit exporting to Cad

by kmlab 2024. 8. 1.

;; 캐드 치수 한꺼번에 바꾸기 문자 초록, 천단위 콤마, 계단치수높이 2.4, 소수점 1자리표시, 주심도 치수높이 2.2
;; 각자 스타일 보존

(defun KM:setINI ( / )
(progn (setq _dimFont "돋움_1") ;; 치수 폰트 지정 
(setq _cadDimstyle "SK_돋움_3") ; 치수스타일 지정 
(setq _scale 1.0)
) ;progn
;;; set dimscle from sheet's scale
(setq sheetblkname (ssname (ssget "_X" (list (cons 0 "INSERT") (cons 2 "Sheet_A1_R*"))) 0))
(setq _scale (cdr (assoc 41 (entget sheetblkname))))
(princ) 
) ;defun KM:setINI
;  

(defun KM:df0 ( dimfont );; set font-height to zero ;  
(progn  
(vl-load-com)  
(setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))  
(setq StyList (vla-get-TextStyles ActDoc))  
(setq StyObj (vla-Item StyList dimFont))  
(vla-put-Height StyObj 0.0)  
)  
(princ)  

(defun KM:set_DIMSTYLE ( dimFont cadDimstyle dscle) ;; 치수스타일 교정함수
(progn 
(setq dimPrecision "SK_돋움_2_5_STAIR");
;
(command "-dimstyle" "r" cadDimstyle) 
(setvar "DIMSCALE" dscale) ; Set dimscale
(setvar "DIMEXO" 3.0) ; Lines. Offset from origin 3.0 
(setvar "DIMASZ" 1.0) ; Symbols and Arrows. Arrow size 1.0 
(setvar "DIMBLK" "_DOTBLANK") ; Symbols and Arrows. Arrowhead 
(setvar "DIMCLRT" 3) ; Text. Color 3 green
(setvar "DIMTXSTY" dimFont) ; Text. Text style 
(setvar "DIMTXT" 3.0) ; Text. Text Height 3.0 
(setvar "DIMTAD" 1) ; Text. Text placement Vertical Above(1) 
(setvar "DIMGAP" 1.0) ; Text. Offset from dim line 1.0 
(setvar "DIMTIH" 0) ; Text. Aligned with dimension line 
(setvar "DIMTMOVE" 2) ; Fit. Text placement without leader 
(setvar "DIMTIX" 1) ; Fit. Always keep text between ext lines 
(setvar "DIMTOFL" 1) ; Fit. Draw dim line between ext lines 
(setvar "DIMDEC" 0.0) ; Primary Units. Linear dimensions Precision 0.0 
(setvar "DIMLUNIT" 6) ; Primary Units. Windows Desktop(6) 
;
(if (= cadDimstyle dimPrecision) (setvar "DIMDEC" 1) ) ; 계단치수 소수점 1자리표시
(if (or (= cadDimstyle "SK_돋움_2_5") (= cadDimstyle "SK_돋움_2_5_1") (= cadDimstyle "SK_돋움_2_5_2") (= cadDimstyle "SK_돋움_2_5_STAIR")) (setvar "DIMTXT" 2.5) ) ; 
(if (or (= cadDimstyle "M15-P_N300__Inside_-주심도") (= cadDimstyle "M15-P_N300__Inside_-주심도_1") (= cadDimstyle "M15-P_N300__Inside_-주심도_2") (= cadDimstyle "M15-P_N300__Inside_-주심도_3")) (setvar "DIMTXT" 2.2) ) ; 
;
(command "-dimstyle" "s" cadDimstyle "y") 
(command "_dimstyle" "a" (ssget "_X" (list (cons 0 "DIMENSION") (cons 3 cadDimstyle))) "") 
(command "regen") 
) ; progn 
(princ) 
) ;defun KM:set_DIMSTYLE

(defun c:dg ()
(KM:setINI);

(KM:df0 _dimfont) ;; set font-height to zero 
;;(KM:set_DIMSTYLE _dimfont _cadDimstyle _scale) ;; set dimstyle 
;;SET ALL DIMSTYLES exceped Dimstyles Annotative, Standard.
(command "_zoom" "e")
(progn
(setq !Dimstyle (tblnext "DIMSTYLE" T)) ;; 모든 치수 스타일 찾아서 적용
(while !Dimstyle
(setq !Dimstyle (cdr (assoc 2 !Dimstyle)))
(if 
(and (/= !Dimstyle "Annotative") (/= !Dimstyle "Standard")) ;; 표준, 어노테이티브 스타일 적용 제외
(KM:set_DIMSTYLE _dimfont !Dimstyle _scale) ) ;; 치수스타일마다 교정함수 호출
(setq !Dimstyle (tblnext "DIMSTYLE"))
) ;if
) ;progn
(princ)
);defun c:dg

반응형

'autocad' 카테고리의 다른 글

To change true color to ACI(AutoCAD Color Index) of Layers  (0) 2024.08.29
layouts 폴더에 ExportLayout 저장하기  (0) 2024.08.13
선택없이 PDF 출력하기  (0) 2024.07.24
레이어 조정; 짧은 직선 삭제  (0) 2024.07.18
not Equal  (0) 2024.07.17