안녕하세요.
= 큰면적 – 작은면적
리습을 못 찾아서 단중리습으로 작업하려는데 단위가 MM2인데 M2수정하려는데 자꾸 에러가 납니다.
도움요청드립니다^^
(defun c:wt (/ ar pnt utw)
(graphscr)
(setvar “cmdecho” 0)
(setvar “BLIPMODE” 0)
(setq a_area 0)
(prompt “n area :”)
(command “area” “e” pause)
(setq PRMT (getvar “PERIMETER”))
(setq a_area (getvar “area”))
(setq s_area 0)
(setq cont 1)
(while (= cont 1)
(setq S (ENTSEL ” area : “))
(cond ((null s)
(setq cont 0)
(princ)
)
(T
(command “area” “e” S)
(setq narea (getvar “area”))
(setq s_area (+ s_area narea))
)
)
)
(setq t_area (- a_area s_area))
(command “textsize” “3” “”)
(setq tsize (getvar “textsize” ))
(setq pnt (getpoint “n Writing point : “))
(setq pnt2 (polar pnt (* 1.5 pi) (* tsize 2)) )
(setq pnt3 (polar pnt2 (* 1.5 pi) (* tsize 2)) )
(setq wt (* t_area 2.71 0.001))
(command “color” “13”)
(command “text” pnt “” “” (strcat “Area = ” (rtos t_area 2 2) ” mm^2″ ))
(command “text” pnt2 “” “” (strcat “Perimeter = ” (rtos prmt 2 2) ” mm” ))
(command “text” pnt3 “” “” (strcat “Unit Weight = ” (rtos wt 2 3) ” Kg/m”))
; (command “text” pnt “” “” (strcat (rtos t_area 2 2)))
; (command “text” pnt3 “” “” (strcat (rtos wt 2 3)))
(command “color” “bylayer”)
(princ)
)
메일주소…
prinar@naver.com 입니다^^
(defun c:wt (/ a_area s_area prmt pnt pnt2 pnt3 tsize t_area t_area_m2 wt s)
(graphscr)
(setvar “cmdecho” 0)
(setvar “BLIPMODE” 0)
(setq a_area 0)
(prompt “nSelect an area:”)
(command “area” “e” pause)
(setq prmt (getvar “perimeter”))
(setq a_area (getvar “area”))
(setq s_area 0)
(while (setq s (entsel “nSelect area to subtract (press Enter to finish): “))
(command “area” “e” s)
(setq s_area (+ s_area (getvar “area”)))
)
(setq t_area (- a_area s_area))
(setq t_area_m2 (/ t_area 1000000.0))
(setq wt (* t_area 2.71 0.001))
(setvar “textsize” 3)
(setq tsize (getvar “textsize”))
(setq pnt (getpoint “nSpecify text insertion point: “))
(setq pnt2 (polar pnt (* 1.5 pi) (* tsize 2)))
(setq pnt3 (polar pnt2 (* 1.5 pi) (* tsize 2)))
(command “color” “13”)
(command “text” pnt “” “” (strcat “Area = ” (rtos t_area_m2 2 6) ” m^2″))
(command “text” pnt2 “” “” (strcat “Perimeter = ” (rtos prmt 2 2) ” mm”))
(command “text” pnt3 “” “” (strcat “Unit Weight = ” (rtos wt 2 3) ” Kg/m”))
(command “color” “bylayer”)
(princ)
)
이렇게 해보세요
그대로 복사해서 메모장에 수정하고 캐드에서 명령어 입력하니 에러가 납니다.
인코딩문제일수도 있습니다.
저도 원본으로 주신 그대로 긁어서 넣으니 따옴표가 이상하게 나오더군요.
자세히 보시면 따옴표 모양이 붙여넣은것은 좀 다릅니다.
메모장에 붙여 넣으신 다음 메모장여 붙여진 열기 따옴표를 복사합니다.
이것을 찾아바꾸기해서 “로 마찬가지로 닫기 따옴표도 찾아바꾸기해서 “로 바꾸세요.
그리고 가 들어간줄도 복사해서 붙여넣기 하면 가 빠진채로 붙여넣어집니다.
왜 그런지는 모르겠네요.
위 방법으로 따옴표 바꿔치기하시고
(prompt “nSelect an area:”)
(command “area” “e” pause)
(while (setq s (entsel “nSelect area to subtract (press Enter to finish): “))
(setq pnt (getpoint “nSpecify text insertion point: “))
(command “text” pnt “” “” (strcat “Area = ” (rtos t_area_m2 2 6) ” m^2″))
위에 적어드린 다섯줄은 수기로 고쳐보세요. 그럼 될겁니다.
복사붙여 넣기 하면서 일부 데이터가 소실되네요. 첨부가 되면 좋으련만…