프로그램
캐드 분류

리습중 사칙연산 사용시 여러줄 문자 적용 안되는 문제 발생

컨텐츠 정보

  • 411 조회
  • 2 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

리습 중 사칙연산 리습인데요

2015에서 선택 문자가 여러줄 문자일시에 계산이 안되고 0으로 나오고 있습니다.

선택문자가 "문자" 일경우는 제대로 연산이 되고요

현재 리습을 여러줄 문자에도 가능하게끔 변경이 가능할까요

또한 여러 숫자 한번에 – 연산이 가능한지도 궁금합니다.

100개의 숫자를 한번에 클릭하여 -한값을 클릭한 위치에 순서대로 나열이 가능한가요?

염치없지만 고수님들의 도움 부탁드립니다.

;*********************** ADDING THE NUMBERS PROGRAM ************************


(DEFUN C:+(/ z ss sno no tno sum x entity etype num h pt cc ly te hh dz)
;->*error* start
 (defun *error* (msg)(princ "error: ")(princ msg)
 (setvar "osmode" os)(setvar "blipmode" bl)(setvar "dimzin" dz)
 (princ))
;-<*error* end
       (SETVAR "CMDECHO" 0)
;       (setq nd (getint "n>>>Number of digits to right of decimal point(0-8) : "))
(prompt "n>>> 숫자 더하기….")
       (setq dz (getvar "dimzin") os (getvar "osmode") bl (getvar "blipmode"))
    (setvar "dimzin" 0) ;  소수점이하 "0″을 표현함.
       (setq nd 0)
       (prompt "n……Select Text : ")
       (setq ss (ssget))
       (setq sno (sslength ss))
       (setq no 0)
       (setq sum 0.0)
       (setq tno 0)
       (repeat sno
           (setq x (ssname ss no))
           (setq etype (cdr (assoc 0 (entget x))))
           (if (= etype "TEXT")
               (progn
                  (setq entity (entget x))
                  (setq num (cdr (assoc 1 entity)))
                  (setq num (atof num))
                  (setq sum (+ sum num))
                  (setq tno (1+ tno))
               )
           )
           (setq no (1+ no))
       )
       (setq tno (itoa tno))
       (setq sum (rtos sum 2 nd))
               (setq pt (getpoint "n>>> Text Point : "))
               (setq cc (getvar "clayer"))
              (setq ly (tblsearch "layer" "TEXT")) ;"레이어를 검색 없으면 레이어 생성
              (if (= ly nil) (command "-layer" "m" "text" "c" "3″ "" "l" "continuous" "" "")
              )
              (setvar "clayer" "text") ;<= 현재 레이어를 변경한다.
              (setq te (tblsearch "style" "HY울릉도L")) ;"style을 검색 없으면 style 생성
             (if te (progn
        (command "-style" "HY울릉도L" "H2WULL.TTF" "0″ "1″ "0″ "n" "n")
               ))
               (SETQ Hh (GETVAR "LTSCALE"))
               (setq h (* hh 3))
      (SETQ H (GETVAR "TEXTSIZE"))
               (prompt "n>>> Text Height <")
               (princ H)
               (princ "> : ")
               (setq Z (getdist))
               (if Z
                   (setq H Z)
                )
               (COMMAND "TEXT" "J" "R"
                        (SETQ Z PT)
                        (SETQ Z H)
                        (SETQ Z 0.0)
                        (SETQ Z sum)
               )
       (setvar "clayer" cc)
       (setvar "osmode" os)(setvar "blipmode" bl)
    (setvar "dimzin" dz)
       (PRIN1)
)


;*********************** ADDING THE NUMBERS PROGRAM ************************
(DEFUN C:- (/ z ss sno no tno sum x entity etype num h pt cc ly te hh k s sn n tn su y entit etyp nu dz)
;->*error* start
 (defun *error* (msg)(princ "error: ")(princ msg)
 (setvar "osmode" os)(setvar "blipmode" bl)(setvar "dimzin" dz)
 (princ))
;-<*error* end
       (SETVAR "CMDECHO" 0)
;       (setq nd (getint "n>>>Number of digits to right of decimal point(0-8) : "))
(prompt "n>>> 숫자 빼기 ….")
       (setq dz (getvar "dimzin") os (getvar "osmode") bl (getvar "blipmode"))
    (setvar "dimzin" 0) ;  소수점이하 "0″을 표현함.
       (setq nd 0)
       (prompt "n……Select  A Text : ")
       (setq ss (ssget))
       (setq sno (sslength ss))
       (setq no 0)
       (setq sum 0.0)
       (setq tno 0)
       (repeat sno
           (setq x (ssname ss no))
           (setq etype (cdr (assoc 0 (entget x))))
           (if (= etype "TEXT")
               (progn
                  (setq entity (entget x))
                  (setq num (cdr (assoc 1 entity)))
                  (setq num (atof num))
                  (setq sum (+ sum num))
                  (setq tno (1+ tno))
               )
           )
           (setq no (1+ no))
       )
       (setq tno (itoa tno))
       (prompt "n……Select  B Text : ")
       (setq s (ssget))
       (setq sn (sslength s))
       (setq n 0)
       (setq su 0.0)
       (setq tn 0)
       (repeat sn
           (setq y (ssname s n))
           (setq etyp (cdr (assoc 0 (entget y))))
           (if (= etyp "TEXT")
               (progn
                  (setq entit (entget y))
                  (setq nu (cdr (assoc 1 entit)))
                  (setq nu (atof nu))
                  (setq su (+ su nu))
                  (setq tn (1+ tn))
               )
           )
           (setq n (1+ n))
       )
       (setq tn (itoa tn))
       (setq k (- sum su))
       (setq k (rtos k 2 nd))
               (setq pt (getpoint "n>>> Text Point : "))
              (setq cc (getvar "clayer"))
              (setq ly (tblsearch "layer" "TEXT")) ;"레이어를 검색 없으면 레이어 생성
              (if (= ly nil) (command "-layer" "m" "text" "c" "3″ "" "l" "continuous" "" "")
              )
              (setvar "clayer" "text") ;<= 현재 레이어를 변경한다.
              (setq te (tblsearch "style" "HY울릉도L")) ;"style을 검색 없으면 style 생성
             (if te (progn
        (command "-style" "HY울릉도L" "H2WULL.TTF" "0″ "1″ "0″ "n" "n")
               ))
               (SETQ Hh (GETVAR "ltscale"))
               (setq h (* hh 3))
      (SETQ H (GETVAR "TEXTSIZE"))
               (prompt "n>>> Text Height <")
               (princ H)
               (princ "> : ")
               (setq Z (getdist))
               (if Z
                   (setq H Z)
               )
               (COMMAND "TEXT" "J" "R"
                        (SETQ Z PT)
                        (SETQ Z H)
                        (SETQ Z 0.0)
                        (SETQ Z k)
               )
 (setvar "clayer" cc)
       (setvar "osmode" os)(setvar "blipmode" bl)
    (setvar "dimzin" dz)
       (PRIN1)
)


 

관련자료

댓글 2 / 1 페이지

수야12님의 댓글

여러줄 문자 (다중행 문자)는 사용자가 직접 입맛에 맞게 만들기 전에는 힘듭니다.. 아니면 3중 행인데 

그중에 2번째 행 문자를 사용하겠다거나 이런식으로 확실하게 기준을 잡아주시던가요 

푸쳐핸섭님의 댓글

현재 게시판에 계산식 리습을 사용하면 여러줄 문자도 연산이 되는데요 위 리습에 이 게시판의 계산식 리습처럼 여러줄 문자 가능하게 변경이 가능한가요?

여러줄 문자 사용 가능한 계산식 리습 첨부합니다.

전체 7,232 / 362 페이지
번호
제목
이름

최근글


새댓글


알림 0