안녕하세요. 제가 쓰고 있는 면적 리습에서 질문이 있어서 글 남깁니다.
(defun c:ar(/ d_s ent_p ar_1 ar_2 py_1 py_2 t_p n_p)
(graphscr)
(setvar “cmdecho” 0)
(setq d_s (getvar “dimscale”))
(command “units” “” “8” “” “” “” “”)
(setq ent_p (entsel “n 피라인을 선택 :”))
(command “area” “e” ent_p)
(setq ar_1 (/ (getvar “area” ) 1.0e+06))
(setq ar_2 (rtos ar_1 2 2))
(setq py_1 (* ar_1 0.3025))
(setq py_2 (rtos py_1 2 2))
(command “units” “” “0” “” “” “” “”)
(prompt “nArea (M2):”)(princ ar_2)
(prompt “nArea (Py):”)(princ py_2)(princ)
(setq t_p (getpoint “텍스트 위치:”))
(setq t_h (getreal “텍스트 높이:”))
(setq n_p (list (car t_p) (- (cadr t_p) (* t_h 2))))
(command “text” t_p t_h “” (strcat ar_2 ” ㎡”))
(command “text” n_p t_h “” (strcat py_2 ” py”))
(setvar “cmdecho” 1)
(princ)
)
현재 기본 세팅은 피라인을 선택하고 텍스트 위치를 찍고 텍스트 높이값을 입력하면
피라인의 면적을 자동으로 헤베와 루베 둘 다 표기해주는 것입니다.
그런데 평면 한층에 면적으로 표기해야 되는 실이 막 200-300개씩 되는데
매번 텍스트 높이값을 입력하기가 너무 답답하네요.
기본값도 있었으면 좋겠고, 이전에 입력한 값도 기억했으면 좋겠지만
그 둘은 충돌할 거 같고.
오토캐드 기본 명령어 중에 offset 처럼
한 파일 안에서 처음에 예를 들어 1000을 offset하면
그 다음에 이 명령어를 사용할 때 1000이 디폴트로 뜨잖아요….
이것처럼 이전에 입력한 텍스트 높이값을 기억하게 만들 수 있을까요?
여기서 관련한 리습 찾아봤는데… 봐도 모르겠네요.ㅜㅜ
도와주세요ㅠㅠㅠㅠㅠㅠㅠ
감사합니다.
공유
오오오오. 감사합니다!!!!!!!!!!!!
(defun c:ar(/ d_s ent_p ar_1 ar_2 py_1 py_2 t_p n_p t_h_tmp)
(graphscr)
(setvar “cmdecho” 0)
(if (= t_h nil) (setq t_h 10)); 텍스트 높이 초기값.
(setq d_s (getvar “dimscale”))
(command “units” “” “8” “” “” “” “”)
(setq ent_p (entsel “n 피라인을 선택 :”))
(command “area” “e” ent_p)
(setq ar_1 (/ (getvar “area” ) 1.0e+06))
(setq ar_2 (rtos ar_1 2 2))
(setq py_1 (* ar_1 0.3025))
(setq py_2 (rtos py_1 2 2))
(command “units” “” “0” “” “” “” “”)
(prompt “nArea (M2):”)(princ ar_2)
(prompt “nArea (Py):”)(princ py_2)(princ)
(setq t_p (getpoint “텍스트 위치:”))
(setq t_h_tmp t_h) ;텍스트 높이 임시 저장.
(if (= (setq t_h (getreal (strcat “텍스트 높이: <” (rtos t_h)”>” ))) nil) ;텍스트 높이를 입력받는데 값이 없으면…..
(setq t_h t_h_tmp) ;임시 저장값을 돌려 받음.
)
(setq n_p (list (car t_p) (- (cadr t_p) (* t_h 2))))
(command “text” t_p t_h “” (strcat ar_2 ” ㎡”))
(command “text” n_p t_h “” (strcat py_2 ” py”))
(setvar “cmdecho” 1)
(princ)
)