(defun KM:setINI ( / )
(progn (setq _dimFont "돋움") ;; 치수 폰트 지정
(setq _cadDimstyle "SK_돋움_3") ; 치수스타일 지정
(setq _scale 1.0)
(princ)
))
;
(defun KM:getscl ( / pt1 sclobj);; find scale factor
(command "zoom" "e")
;;
(setq pt1 '(770.0 64.0)) ;;coordination(SK titleblock) of the string "A1: 1 : 400" of scale of the drawing
(command "explode" (ssget pt1))
(setq sclobj (entget (ssname (ssget pt1) 0) )) ;get entity zero from prop.
(command "undo" 1)
(setq txtstr (assoc 1 sclobj)) ;get list containing string
(cdr txtstr) ;extract string from prop.
)
;
(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 );;modifying dimstyle of the STANDARD_DIMSTYLE
(progn
(command "-dimstyle" "r" cadDimstyle)
(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) ; Dim Text Color Green
(setvar "DIMTXSTY" dimFont) ; Text. Text style
(setvar "DIMTXT" 2.9) ; Text. Text Height 2.9
(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)
(command "-dimstyle" "s" cadDimstyle)
(command "_dimstyle" "a" "all" "")
(command "regen")
)
(princ)
)
;
(defun c:RS( ) ;; main code set Scale>Dim>Fix RELOCATION SHEET_A1
;
(KM:setINI)
;
(KM:moveNscaleSheet) ;; relocation to origin
;
(progn
(setq _scale (atof (KM:getscl))) ;; get scale
(if (= _scale 0.0)
(setq _scale 1.0)
; ()
)
(command "dimscale" _scale)
(command ".scale" "all" "" '(0 0) _scale) ;; set scale
(command "zoom" "e")
)
;
(setvar "CMDECHO" 0)
(KM:df0 _dimfont) ;; set font-height to zero
(KM:set_DIMSTYLE _dimfont _cadDimstyle) ;; set dimstyle
(setvar "CMDECHO" 1)
(princ)
)
;
(defun KM:moveNscaleSheet ( / p0 p1 p2) ;; export Layout 파일을 0,0 1:1로 변경
(vl-load-com)
(setq p0 '(0 0))
(vla-GetBoundingBox (vlax-ename->vla-object (car (entsel))) 'MinPt 'MaxPt)
(setq p1 (vlax-safearray->list MinPt))
(setq p2 (vlax-safearray->list MaxPt)) ;;upper right point
(setq p2 (list (car p2) (cadr p1) 0.0)) ;;lower right point
(command "move" "all" "" p1 "non" p0)
(command "scale" "p" "" p0 (/ 841.0 (distance p1 p2)))
)
(princ)
;
;
'autocad' 카테고리의 다른 글
| DIMSTYLE 한번에 지정하기 (0) | 2024.06.17 |
|---|---|
| Sheet_A1... 블록 선택하기 (0) | 2024.06.12 |
| (wcmatch string pattern) (0) | 2024.05.20 |
| KMPLOT_A4 20240521 (0) | 2024.05.17 |
| LISP 스크립트 실행 시 에코 끄기 (0) | 2024.05.09 |