면적 구하는 리습에서 단위표시와 콤마 표시 해주는 방법은?
컨텐츠 정보
- 667 조회
- 4 댓글
- 0 추천
- 0 비추천
- 목록
본문
autocad2014 사용자 입니다.
관련자료
상큼메론90님의 댓글
일단, 면적만 수정해 드릴께요. m2 표시, 천단위 콤마 나머지는 수정한 것을 보고, 세줄 정도만 수정하면 됩니다.
;; 아키모아 일단밟아님 콤마넣기 서브루틴 을 빌려왔습니다.
;***************************************************************
(defun C:eee (/ pt1 a1 a2 a3 a3a) ; (command "LAYER" "N" "AREA" "8888″) (setq pt1 (getpoint "Pick a text location : ")) (command "BPOLY" pt1 "") (setq a1 (command "AREA" "E" "l")) (setq a2 (getvar "area")) (setq a3a (rtos a2 2 0)) (setq a3 (pds_comma a3a))
(command "ERASE" "l" "") ; (setq py (* 0.3025 a2)) ;단위를 평으로 할경우 ; (setq py1 (rtos py 2 1)) ; (setq pt2 (list (car pt1) (- (cadr pt1) 12))) (command "TEXT" pt1 "5″ "" (strcat a3 "m2″)) ; (command "TEXT" pt2 "5″ "" py1) (princ) )
;==================================================== (defun C:ee (/ pt1 a1 a2 py1) ; (command "LAYER" "N" "AREA" "") (setq pt1 (getpoint "Pick a text location : ")) (command "BPOLY" pt1 "") (setq a1 (command "AREA" "E" "l")) (setq a2 (getvar "area")) (setq py (* 0.3025 a2)) (setq py1 (rtos py 2 0)) (command "ERASE" "l" "") (command "TEXT" pt1 "5″ "" py1) )
;=================================================== (defun C:PLUS (/ ent ct anx an snum slen e ee x ol nl ent2) (command "LAYER" "N" "AREA" "") (prompt "nPick numbers to add :") (setq ent (ssget)) (setq ct 0 anx 0 an 0) (setq snum (ssname ent ct)) (setq slen (sslength ent)) (while (<= (+ 1 ct) slen) (setq snum (ssname ent ct)) (setq e (entget snum)) (setq ee (cdr (assoc 1 e))) (setq x (atof ee)) (setq ol (assoc 8 e)) (setq nl (cons 8 "ADDNUM")) (setq ent2 (subst nl ol e)) (entmod ent2) (setq anx (+ an x)) (setq an anx) (setq ct (+ 1 ct)) ) (setq tot (rtos anx 2 4))
(setq pt1 (getpoint "Pick a text location : ")) (command "TEXT" pt1 "5″ "" tot)
; (princ "nTotal = ")(princ tot)(princ) )
;;일단밟아님 콤마넣기 서브루틴 (defun pds_comma (str / com_fr int_no com_no com_no2 i) (setq com_fr (substr str 1 1)) (if (or (= com_fr "+") (= com_fr "-")) (setq str (substr str 2)) (setq com_fr nil) ) (setq int_no (strlen (rtos (atoi str) 2 0))) (setq com_no (fix (/ int_no 3)) com_no2 (rem int_no 3)) (cond ((= com_no2 0)(setq i 3 com_no (1- com_no))) ((= com_no2 1)(setq i 1)) ((= com_no2 2)(setq i 2)) ) (if (> com_no 0) (repeat com_no (setq str (strcat (substr str 1 i) "," (substr str (1+ i)))) (setq i (+ i 4)) ) ) (if com_fr (setq str (strcat com_fr str))) str )
;;;