여러가지 원이 있는데요..
원의 공차를 일정하게 offset 형식으로 늘리려고하는데
리습좀 올려주세요..
밑에꺼는 일괄적으로 변경하는 리습인데….수정가능할까요?
;*****************************************************************
(defun c:CS()
(terpri)(princ ” 원의 반경(직경) 변경 “)
(setvar “cmdecho” 0)
(defun len_err (msg)
(if (and (/= msg “Function cancelled”)
(/= msg “quit / exit abort”))
(princ (strcat “nError: ” msg)))
(setq *error* olderr) (princ))
(defun dxf_code (code ent)
(cdr (assoc code (entget ent))))
(defun set_value_save()
(SETQ srad(getvar “circlerad”)))
(defun circle_size(rad ent)
(setq ent (subst (cons 40 rad) (cons 40 (dxf_code 40 ent) )
(entget ent)))
(entmod ent))
(defun cal_radious(srad / key flag)
(setq flag nil)
(while (not flag)
(initget “Diameter”)
(setq rad (GETDIST (strcat
“nDiameter / <Radious> :<” (rtos srad) “> ” )))
(if (cond ((= rad “Diameter”)
(setq rad (getDIST (strcat
“nDiameter :<” (rtos (* 2 srad)) “> “)))
(if (= rad nil)
(setq rad srad)
(setq rad (/ rad 2.0))
)
)
((= rad nil)
(setq rad srad)
)
((= (type rad) (type 1.0) )
(setq srad rad)
)
) ;cond
(progn
(setq flag T)
(setvar “circlerad” rad)
)
) ;if
(princ)
) ;while
)
(set_value_save)
(setq olderr *error* *error* len_err)
(setq sel(ssget)
cnt 0)
(cal_radious srad)
(repeat (sslength sel)
(setq sn (ssname sel cnt))
(if (= (dxf_code 0 sn) “CIRCLE”)
(circle_size rad sn)
)
(setq cnt (1+ cnt))
); repeat
(princ))
;*****************************************************************