안녕하세요.
합계 구하는 리습인데요.
예전에 사용할 땐 소수점 까지 계산되었던거 같은데
소주점까지 계산이 안되고 반올림 되어서 정수로만 나타나네요.
어디가 잘못된건지 한번 확인 부탁 드려용~
;;; Informations
;;;=======================================================================================
;;;
;;; Copyright(C) 1998 by Sea&load Engneering.
;;; Collector by Kim K.R
;;;
;;; 5F Manbok jeail maket B/D 159-33 Junglyangdong Tongyung City Kyungnamdo South Korea
;;; TEL: 0557-648-5655,FAX-0557-648-7081
;;;
;;; Date : 1998.12.05
;;; File name : SUM.LSP
;;; Execute command : Auto Load By Acad.lsp
;;; Revision number : R-09
;;; Number of cluster : 3 at 2048
;;;
;;;
;;; Use : General Utilities Load lisp
;;;
;;;============================================================================
;;; History
;;;============================================================================
;;;
;;; 1999.05.09 1. All lisps Collected
;;; ————————————————-
;;;
;;; 일반적인 계산(사칙연산)
;;;
;;; ————————————————–
(defun c:ca ( / in_num all_sel all_num index org no0 no1 out_num result type)
(setq in_num (getstring “계산 하고자 하는 숫자를 입력하세요 : “))(terpri)
(setq type (substr in_num 1 1))
(if (or (= type “/”) (= type “*”))
(setq in_num (atof (substr in_num 2 (- (strlen in_num) 1))))
(setq in_num (atof in_num))
)
(prompt “수정하실 계체를 선택하세요! “)
(setq all_sel (ssget))
(setq all_num (sslength all_sel))
(setq index 0)
(repeat all_num
(setq org (entget (ssname all_sel index)))
(setq index (+ index 1))
(setq no0 (assoc 0 org))
(if (= “TEXT” (cdr no0))
(progn
(setq no1 (assoc 1 org))
(setq out_num (atof (cdr no1)))
(if (= type “/”)
(setq out_num (rtos (/ out_num in_num) 2 0))
(if (= type “*”)
(setq out_num (rtos (* out_num in_num) 2 0))
(setq out_num (rtos (+ out_num in_num) 2 0))
)
)
(setq result (subst (cons (car no1) out_num) no1 org))
(entmod result)
)
)
)
(setq org nil)
)
;;; ————————————————-
;;;
;;; BOM Sum. <— 일반적인 계산
;;;
;;; ————————————————–
(defun C:S1 (/ ent ct anx an snum slen e ee x ol nl ent2)
(prompt “nPick numbers to add: “)
(setvar “cmdecho” 0)
(setq ent (ssget ‘((0 . “TEXT”)) ))
(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 “0”))
(setq ent2 (subst nl ol e))
(entmod ent2)
(setq anx (+ an x))
(setq an anx)
(setq ct (1+ ct))
)
(princ “nTotal = “)
(princ (rtos anx 2 4))(princ)
)
;;; ——————————————————–
;;;
;;; ——- >> WEIGHT + WEIGHT = TOTAL WEIGHT << ——-
;;;
;;; ———————————————————
(defun C:S2( / b1 b2 b3 b4 tot pot total)
(setvar “cmdecho” 0)
(setvar “dimzin” 0)
(setq n 0 t 0
ss (ssget ‘((0 . “TEXT”)) )
en (sslength ss)
)
(while (< n en)
(setq ename (ssname ss n))
(setq elist (entget ename))
(setq no (atof (cdr (assoc 1 elist))))
(setq ol (assoc 8 elist))
(setq nl (cons 8 “0”))
(setq ent2 (subst nl ol elist))
(entmod ent2)
(setq sum (+ t no))
(setq t sum)
(setq n (+ n 1))
)
(setq total (rtos t 2 0))
(prompt (strcat “nTotal = ” total )) (terpri)
(setq tot (entsel “Pick a change on target text”))(terpri)
(setq b1 (entget (car tot)))
(setq b2 (assoc 1 b1))
(setq b3 (cons (car b2) (STRCAT “TOTAL W/T : ” total ” KG”)))
(setq b4 (subst b3 b2 b1))
(entmod b4) (princ)
(command “chprop” “p” “” “la” “CO” “”)
(setvar “dimzin” 8)
)
;;; —————————————————————
;;;
;;; ——- >> WEIGHT + WEIGHT = TOTAL WEIGHT (괄호) << ——-
;;;
;;; —————————————————————
(defun C:SSS( / b1 b2 b3 b4 tot pot total)
(setvar “cmdecho” 0)
(setvar “dimzin” 0)
(setq n 0 t 0
ss (ssget ‘((0 . “TEXT”)) )
en (sslength ss)
)
(while (< n en)
(setq ename (ssname ss n))
(setq elist (entget ename))
(setq no (atof (cdr (assoc 1 elist))))
(setq ol (assoc 8 elist))
(setq nl (cons 8 “0”))
(setq ent2 (subst nl ol elist))
(entmod ent2)
(setq sum (+ t no))
(setq t sum)
(setq n (+ n 1))
)
(setq total (rtos t 2 0))
(prompt (strcat “nTotal = ” total )) (terpri)
(setq tot (entsel “Pick a change on target text”))(terpri)
(setq b1 (entget (car tot)))
(setq b2 (assoc 1 b1))
(setq b3 (cons (car b2) (STRCAT total )))
(setq b4 (subst b3 b2 b1))
(entmod b4) (princ)
(command “chprop” “p” “” “la” “TE” “”)
(setvar “dimzin” 8)
)
————————————————-