프로그램
캐드 분류

숫자 더해주는 리습 수정 부탁드립니다.

컨텐츠 정보

  • 136 조회
  • 1 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

제가 사용하는 숫자 더해주는 리습인데 매번 포인트랑 입력하려니 불편해서

그냥 명령어치고 더할 숫자들 클릭한 후 엔터누르면 상태창에 소수점 첫째자리나 둘째자리까지 길이가 바로 나오게 만들고 싶습니다.
어떻게 하면 될까요?




—————————————————————————————————————–






       (defun c:tsum (/ z ss sno no tno sum x entity etype num h pt)
       (setvar "cmdecho" 0)
       (prompt "nSelect 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 3))
       (princ "nAdding ")
       (princ tno)
       (princ " nTexts: ")
       (princ "nThe Result is: ")
       (princ sum)
       (princ "   ")
       (princ "nDo You Want Write it into the DWG? ")
       (setq z (strcase (getstring)))
       (if (or (= z "") (= z "Y"))
           (progn
               (setq pt (getpoint "nText Point: "))
               (setq h (getvar "textsize"))
               (prompt "nText Height: ")
               (princ H)
               (princ "  : ")
               (setq z (getdist))
               (if z
                   (setq h z)
               )
               (command "text"
                        (setq z pt)
                        (setq z h)
                        (setq z 0.0)
                        (setq z sum)
               )
           )
       )
       (setvar "cmdecho" 1)
       (setvar "blipmode" 1)
       (prin1))


(defun c:bcc()
;; / tr tp blist bn bsc ss con)
 (setvar "cmdecho" 0)
 (setq TR(entsel "nSelect tree to count:"))
 (setq blist(entget (car TR)))
  (setq bn (cdr(assoc 2  blist)))
  (setq bsc(cdr(assoc 41 blist)))
  (setq con(list (cons 2 bn)(cons 41 bsc)))
  (setq ss (ssget "x" con))
  (setq str (sslength ss))
  (setq str (itoa str))
   (setq ans (getstring "nNew or Change : "))
   (if (or (= ans "n")(= ans "N"))
     (progn
       (setq tss (getvar "textsize"))
       (setq p1  (getpoint "nPick the text point :"))
       (command "text" p1 tss "" str)
     )
     (progn
       (setq stt (entsel "nSelect text to change :"))
       (adt str)
     )
   )
 (princ "nType 'bcc' to Count Tree …")
 (princ)
)                          


(defun adt (str)
 (setq ent (entget (car stt)))
 (setq ass (assoc 1 ent))
 (setq as1 (cdr ass))
 (setq con (cons 1 str))
 (setq sub (subst con ass ent))
 (entmod sub)
 (prin1)
)


 (princ "nType 'bcc' to Count Tree …")
 (princ)





 

관련자료

댓글 1

다정수라님의 댓글

AutoCAD 2016 이니까… VLA 함수 적용해서 간단하게 만들었고, 주석 달아놨습니다. 참고해서, 필요한 부분 손 봐서 사용하시면 될 듯 합니다. 즐거운 시간 되세요.

여분필드1 여분필드2 여분필드3
전체 7,152 / 1 페이지
번호
제목
이름
알림 0