;;program name : 캐드내 사칙연산프로그램 ver 1.1
;;date:2000.06.09
;;program by:kang o nam
;;ID : 하이텔ID(anold88)
;;E-MAIL : anold88@hitel.net
;; anold88@hanmail.net
(defun exe()
(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 4))
(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 4))
(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 4))
(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 4))
(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 4))
(setq p1 (getpoint “n>>표시할 포인트찍기:”))
;; (command “layer” “s” “tex” “” “”);;—————->> 사용자 선택레이어조정란!!
(command “text” p1 thh 0 summ)
(command “layer” “s” cl “”)
)
(defun c:0( / cl e1 a b txt1 tt1 sum1 txth1 thh e2 aa bb txt2 tt2 sum2 tl txtst sum summ p1)
(exe)
(exe+)
(princ)
)
(defun c:-( / cl e1 a b txt1 tt1 sum1 txth1 thh e2 aa bb txt2 tt2 sum2 tl txtst sum summ p1)
(exe)
(exe-)
(princ)
)
(defun c:/( / cl e1 a b txt1 tt1 sum1 txth1 thh e2 aa bb txt2 tt2 sum2 tl txtst sum summ p1)
(exe)
(exe/)
(princ)
)
(defun c:%( / cl e1 a b txt1 tt1 sum1 txth1 thh e2 aa bb txt2 tt2 sum2 tl txtst sum summ p1)
(exe)
(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 0.3025))
(setq summ (rtos sum 2 2))
(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 4))
(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 4))
(command “text” p1 thh 0 summ)
(command “layer” “s” cl “”)
(princ)
)
(princ “n>>사칙연산 프로그램 로딩완료 command : 0,-,1,/,%,py,00,11”)
(princ)
사칙연산 리습입니다… 면적: 2100(글씨가 써 일경우) 사칙연산 가능하게 할수있나요?
aaaaadd
분명 아름다운 우리글로 써있는 내용인데 내용을 알아 볼수가 없네요 ^^;;
선택한 텍스트에 숫자와 문자혼합일때도 계산가능하게 해달라는 얘기로 생각하고 수정
감사합니다~유용하게 사용하겠습니다.