TB라는 명령어의 리습입니다.
(defun C:TB (/ cmd hlt text_ent xent ucs grd point1 point2 point3 point4 box1
box2 box3 box4 pline_ent nom border
)
(setq cmd (getvar “CMDECHO”))
(setvar “CMDECHO” 0)
(setq nom (getvar “osmode”))
(setvar “osmode” 0)
(setq hlt (getvar “HIGHLIGHT”))
(setvar “HIGHLIGHT” 0)
(setq text_ent (car (entsel “nSelect text: “))
xent (entget text_ent)
border (/ (getvar “ltscale”) 1))
(setq ucs (getvar “UCSICON”))
(setvar “UCSICON” 0)
(setq grd (getvar “GRIDMODE”))
(setvar “GRIDMODE” 0)
(command “._UCS” “_ENTITY” text_ent)
(setq point1 (car (textbox xent))
point3 (cadr (textbox xent))
point2 (list (car point3) (cadr point1))
point4 (list (car point1) (cadr point3))
box1 (list (- (car point1) border) (- (cadr point1) border))
box2 (list (+ (car point2) border) (- (cadr point2) border))
box3 (list (+ (car point3) border) (+ (cadr point3) border))
box4 (list (- (car point4) border) (+ (cadr point4) border))
point1 (list (+ (car box1) 0.5) (+ (cadr box1) 0.5))
point2 (list (- (car box2) 0.5) (+ (cadr box2) 0.5))
point3 (list (- (car box3) 0.5) (- (cadr box3) 0.5))
point4 (list (+ (car box4) 0.5) (- (cadr box4) 0.5)))
(command “._ERASE” “_WP” box1 box2 box3 box4 “” “R” text_ent “”)
(command “._PLINE” box1 “_W” 0 0 box2 box3 box4 “_Close”)
(setq pline_ent (entlast))
(command “._TRIM” pline_ent “” “_FENCE” point1 point2 point3 point4 point1 “”
“_FENCE” point1 point2 point3 point4 point1 “” “”
)
(entdel pline_ent)
(redraw text_ent)
(command “._UCS” “_PREVIOUS”)
(setvar “HIGHLIGHT” hlt)
(setvar “UCSICON” ucs)
(setvar “GRIDMODE” grd)
(setvar “CMDECHO” cmd)
(setvar “osmode” nom)
(princ)
)
내용은 위와 같은데요. 이게 글씨 크기나 글씨폭, LT Scale에 따라 선상의 글씨를 중심으로 일정
크기를 잘라주는 리습인데요..
이건 이거대로 편하긴 하지만
저 개인적으로 원하는 리습이 있어서 수정을 어떻게 해야하는지
아니면 가지고 계신리습을 받을수 있을까 해서 글을 올립니다.
전 글자 크기나 폭에 상관없이 LTScale에 2배되는
예를들어 LTScale 100이다. 그럼 글자를 중심으로 반지름 200의 원이나 한변이 400인 사각형이
생겨서 그 내부 선들을 Trim으로 잘라줬으면 합니다. 물론 잠긴파일은 안잘라줘도 상관없습니다.
혹시 알고계신것 있으시면 알려주시면 감사하겠습니다.