도와주세요…
공부한지 얼마않되는 초보 입니다.
이렇게 질문만 해서 죄송 하고요..
다름이 아니라 여기 홈에서 받은 소스를 조금 수정해서 잘 쓰고 있었습니다.
그런데 조금이나마 편리하게 썼으면 좋을것 같아 dcl로 연결을 할려니 너무 초보라
잘 않되더 라고요.
아래와 같이 만들어 놓은거 올리니 수정좀 부탁 합니다.
han : dialog { label = “크기바꾸기”;
:boxed_row{
:boxed_column{
label = “현제크기”;
:edit_box { label = “가로”; key = “xx”; edit_width = 10; value = “1”; allow_accept = true;}
:edit_box { label = “세로”; key = “yy”; edit_width = 10; value = “1”; allow_accept = true;}
:edit_box { label = “높이”; key = “zz”; edit_width = 10; value = “1”; allow_accept = true;}
}
:boxed_column{
label = “교체크기”;
:edit_box { label = “가로”; key = “x”; edit_width = 10; value = “1”; allow_accept = true;}
:edit_box { label = “세로”; key = “y”; edit_width = 10; value = “1”; allow_accept = true;}
:edit_box { label = “높이”; key = “z”; edit_width = 10; value = “1”; allow_accept = true;}
}
}
ok_cancel;
}
;;;;;;;;;이기부터 lisp
(defun c:han(/ e n x y z var old new chg)
(setq id (load_dialog “han.dcl”))
(new_dialog “han” id)
(action_tile “xx” “(setq xx $value)”)
(action_tile “yy” “(setq yy $value)”)
(action_tile “zz” “(setq zz $value)”)
(action_tile “x” “(setq x $value)”)
(action_tile “y” “(setq y $value)”)
(action_tile “z” “(setq z $value)”)
(setq ok (start_dialog))
(if (= ok 1)
(
(setq e (ssget ‘((0 . “INSERT”))))
(setqn (sslength e))
(setq i 0 )
(setq x (/ x xx))
(setq y (/ y yy))
(setq z (/ z zz))
(repeat n
;;; X scale
(setq var (entget (ssname e i))
old (assoc 41 var)
new (cons 41 (* x (cdr old)))
chg (subst new old var)
)
(entmod chg)
;;; y scale
(setq var (entget (ssname e i))
old (assoc 42 var)
new (cons 42 (* y (cdr old)))
chg (subst new old var)
)
(entmod chg)
;;; z scale
(setq var (entget (ssname e i))
old (assoc 43 var)
new (cons 43 (* z (cdr old)))
chg (subst new old var)
)
(entmod chg)
(setq i (1+ i))
)
)
)