항상 고캐드에서 도움을 받고 있습니다.
잘 쓰고 있는 리습인데요 콤마나 점이 있으면 계산이 안됩니다.
콤마나 점이 있어도 계산 가능하게 부탁드립니다.
(defun exe1()
(setvar “cmdecho” 0)
(setvar “blipmode” 0)
(setq cl (getvar “clayer”))
(setq e1 (entsel “n>>첫번째숫자선택:”))
(setq a (car e1);;———-엔티티의 이름값
b (entget a);;——–엔티티의 리스트값
txt1 (assoc 1 b);;—-엔티티중 해당 문자열 리스트
tt1 (cdr txt1);;——엔티티 문자열의 리스트중 뒤의값=”문자열”
sum1 (atof tt1);;—–엔티티의 문자열을 정수로 변환=100
txth1 (assoc 40 b);;–엔티티 리스트중 텍스트 높이의 리스트값(40,100)
thh (cdr txth1);;—–엔티티의 텍스트높이의 리스트중 뒤의값=100
)
(setq e2 (entsel “n>>두번째숫자선택:”))
(setq aa (car e2)
bb (entget aa)
txt2 (assoc 1 bb)
tt2 (cdr txt2)
sum2 (atof tt2)
)
(setq tl (assoc 8 b)
txtst (cdr tl)
)
)
(defun exe+()
(setq sum (+ sum1 sum2))
(setq summ (rtos sum 2 3))
(setq p1 (getpoint “n>>표시할 포인트찍기:”))
(command “layer” “s” “tex” “” “”)
(command “text” p1 thh 0 summ)
(command “layer” “s” cl “”)
)
(defun exe-()
(setq sum (- sum1 sum2))
(setq summ (rtos sum 2 3))
(setq p1 (getpoint “n>>표시할 포인트찍기:”))
(command “layer” “s” “tex” “” “”)
(command “text” p1 thh 0 summ)
(command “layer” “s” cl “”)
)
(defun exe*()
(setq sum (* sum1 sum2))
(setq summ (rtos sum 2 3))
(setq p1 (getpoint “n>>표시할 포인트찍기:”))
(command “layer” “s” “tex” “” “”)
(command “text” p1 thh 0 summ)
(command “layer” “s” cl “”)
)
(defun exe/()
(setq sum (/ sum1 sum2))
(setq summ (rtos sum 2 3))
(setq p1 (getpoint “n>>표시할 포인트찍기:”))
(command “layer” “s” “tex” “” “”)
(command “text” p1 thh 0 summ)
(command “layer” “s” cl “”)
)
(defun exe%()
(setq sum (* (/ sum1 sum2) 100))
(setq summ (rtos sum 2 3))
(setq p1 (getpoint “n>>표시할 포인트찍기:”))
(command “layer” “s” “tex” “” “”)
(command “text” p1 thh 0 summ)
(command “layer” “s” cl “”)
)
(defun c:+( / cl e1 a b txt1 tt1 sum1 txth1 thh e2 aa bb txt2 tt2 sum2 tl txtst sum summ p1)
(exe1)
(exe+)
(princ)
)
(defun c:-( / cl e1 a b txt1 tt1 sum1 txth1 thh e2 aa bb txt2 tt2 sum2 tl txtst sum summ p1)
(exe1)
(exe-)
(princ)
)
(defun c:*( / cl e1 a b txt1 tt1 sum1 txth1 thh e2 aa bb txt2 tt2 sum2 tl txtst sum summ p1)
(exe1)
(exe*)
(princ)
)
(defun c:/( / cl e1 a b txt1 tt1 sum1 txth1 thh e2 aa bb txt2 tt2 sum2 tl txtst sum summ p1)
(exe1)
(exe/)
(princ)
)
(defun c:%( / cl e1 a b txt1 tt1 sum1 txth1 thh e2 aa bb txt2 tt2 sum2 tl txtst sum summ p1)
(exe1)
(exe%)
(princ)
)
;;(defun c:py( / cl e1 a b txt1 tt1 sum1 txth1 thh sum summ p1 )
;; (setvar “cmdecho” 0)
;; (setvar “blipmode” 0)
;; (setq cl (getvar “clayer”))
;; (setq e1 (entsel “n>>숫자선택:”))
;; (setq a (car e1);;———-엔티티의 이름값
;; b (entget a);;——–엔티티의 리스트값
;; txt1 (assoc 1 b);;—-엔티티중 해당 문자열 리스트
;; tt1 (cdr txt1);;——엔티티 문자열의 리스트중 뒤의값=”문자열”
;; sum1 (atof tt1);;—–엔티티의 문자열을 정수로 변환=100
;; txth1 (assoc 40 b);;–엔티티 리스트중 텍스트 높이의 리스트값(40,100)
;; thh (cdr txth1);;—–엔티티의 텍스트높이의 리스트중 뒤의값=100
;; )
;; (setq sum (/ sum1 3.3058))
;; (setq summ (rtos sum 2 3))
;; (setq zz (strcat “(” summ “)”))
;; (setq p1 (getpoint “n>>표시할 포인트찍기:”))
;; (command “layer” “s” “tex” “” “”)
;; (command “text” p1 thh 0 zz)
;; (command “layer” “s” cl “”)
;;(princ)
;;)
(defun c:++( / cl sum_m ss ok e ent sum_ p1 txth1 thh summ )
(setvar “cmdecho” 0)
(setvar “blipmode” 0)
(setq cl (getvar “clayer”))
(setq sum_m 0)
(setq SS (ssget))
(setq ok 0)
(while
(setq e (ssname ss ok))
(setq ent (entget e))
(setq sum_ (assoc 1 ent))
(setq sum_ (cdr sum_))
(setq sum_ (atof sum_))
(setq sum_m (+ sum_m sum_))
(setq ok (1+ ok))
)
(setq p1 (getpoint “n>>표시할 포인트찍기:”))
(command “layer” “s” “tex” “” “”)
(setq txth1 (assoc 40 ent))
(setq thh (cdr txth1))
(setq summ (rtos sum_m 2 3))
(command “text” p1 thh 0 summ)
(command “layer” “s” cl “”)
(princ)
)
(defun c:**( / cl sum_m ss ok e ent sum_ p1 txth1 thh summ )
(setvar “cmdecho” 0)
(setvar “blipmode” 0)
(setq cl (getvar “clayer”))
(setq sum_m 1)
(setq SS (ssget))
(setq ok 0)
(while
(setq e (ssname ss ok))
(setq ent (entget e))
(setq sum_ (assoc 1 ent))
(setq sum_ (cdr sum_))
(setq sum_ (atof sum_))
(setq sum_m (* sum_m sum_))
(setq ok (1+ ok))
)
(setq p1 (getpoint “n>>표시할 포인트찍기:”))
(command “layer” “s” “tex” “” “”)
(setq txth1 (assoc 40 ent))
(setq thh (cdr txth1))
(setq summ (rtos sum_m 2 3))
(command “text” p1 thh 0 summ)
(command “layer” “s” cl “”)
(princ)
)
(princ “n>>사칙연산 프로그램 로딩완료 command : +,-,*,/,%,py,++,**”)
(princ)
kksjj750Lv.0
사칙연산 리습 수정 부탁합니다.
공유