여기에서 자동면적,길이를 구하는 tadd란 리습을 받아 실행하려는데 실행이 안되네요....도와주세요...


;|        ;;
 TotalADD Total Addition v. 1.0    ;;
 By: Andrea Andreetti  2009-10-20  ;;
        |;
;;

(princ
  "\nTotalADDition v.1.0 activated!   -run \"TADD\" to start or \"TADD-r\" to end."
)

(defun c:tadd (/                     itemarea              itemperimeter         itemlinelength
               itemarclength         itemsplinelength      itemregionperimeter   itemcircumference
               itemsplineperimeter   itemplineperimeter    itemplinelength       itemtracelength
               itemarclength         itemellipselength a b c d p1 p2 itemlength tarea tperim tlength
              )
  (vl-load-com)
  (defun *oo_object_modification* (objreactor objectsmodified)
    (setq selected_objects (vla-get-pickfirstselectionset
                             (vla-get-activedocument (vlax-get-acad-object))
                           )
    )
    (setq itemarea 0
          itemperimeter 0
          itemlinelength 0
          itemarclength 0
          itemsplinelength 0
          itemregionperimeter 0
          itemcircumference 0
          itemsplineperimeter 0
          itemplineperimeter 0
          itemplinelength 0
          itemtracelength 0
          itemarclength 0
          itemellipselength 0
    )
    ;AREA
    (vlax-for n selected_objects
      (if (vlax-property-available-p n 'area)
        (if (eq (vla-get-objectname n) "AcDbRegion")
          (setq itemarea (+ itemarea (vla-get-area n)))
          (if (vlax-curve-isclosed n)
            (setq itemarea (+ itemarea (vla-get-area n)))
          )
        )
      )
      ;;CIRCLE
      (if (vlax-property-available-p n 'circumference)
        (setq itemcircumference (+ itemcircumference (vla-get-circumference n)))
      )
      ;;SPLINE
      (if (eq (vla-get-objectname n) "AcDbSpline")
        (if (vlax-curve-isclosed n)
          (setq itemsplineperimeter (+ itemsplineperimeter
                                       (vlax-curve-getdistatparam n (vlax-curve-getendparam n))
                                    )
          )
          (setq itemsplinelength (+ itemsplinelength
                                    (vlax-curve-getdistatparam n (vlax-curve-getendparam n))
                                 )
          )
        )
      )
      ;;REGION
      (if (eq (vla-get-objectname n) "AcDbRegion")
        (setq itemregionperimeter (+ itemregionperimeter (vla-get-perimeter n)))
      )
      ;;PLINE
      (if (or (eq (vla-get-objectname n) "AcDb2dPolyline")
              (eq (vla-get-objectname n) "AcDbPolyline")
          )
        (if (vlax-curve-isclosed n)
          (setq itemplineperimeter (+ itemplineperimeter
                                      (vlax-curve-getdistatparam n (vlax-curve-getendparam n))
                                   )
          )
          (setq itemplinelength (+ itemplinelength
                                   (vlax-curve-getdistatparam n (vlax-curve-getendparam n))
                                )
          )
        )
      )
      ;;LINE
      (if (eq (vla-get-objectname n) "AcDbLine")
        (setq itemlinelength (+ itemlinelength (vla-get-length n)))
      )
      ;;ARC
      (if (eq (vla-get-objectname n) "AcDbArc")
        (setq itemarclength (+ itemarclength (vla-get-arclength n)))
      )
      (if (eq (vla-get-objectname n) "AcDbEllipse")
        (setq itemellipselength (+ itemellipselength
                                   (vlax-curve-getdistatparam n (vlax-curve-getendparam n))
                                )
        )
      )
      ;;TRACE
      (if (eq (vla-get-objectname n) "AcDbTrace")
        (progn (setq plist (vlax-safearray->list
                             (vlax-variant-value (vla-get-coordinates n))
                           )
               )
               (setq a (list (nth 0 plist) (nth 1 plist) (nth 2 plist)))
               (setq b (list (nth 3 plist) (nth 4 plist) (nth 5 plist)))
               (setq c (list (nth 6 plist) (nth 7 plist) (nth 8 plist)))
               (setq d (list (nth 9 plist) (nth 10 plist) (nth 11 plist)))
               (setq p1 (polar a (angle a b) (/ (distance a b) 2.0)))
               (setq p2 (polar c (angle c d) (/ (distance c d) 2.0)))
               (setq itemtracelength (+ itemtracelength (distance p1 p2)))
        )
      )
    )
    ;;_end vlax-for
    (setq itemperimeter (+ itemcircumference
                           itemsplineperimeter
                           itemregionperimeter
                           itemplineperimeter
                        )
    )
    (setq itemlength (+ itemplinelength itemsplinelength itemlinelength itemtracelength itemarclength itemellipselength)
    )
    (setq tarea (rtos itemarea 2 8))
    (setq tperim (rtos itemperimeter 2 8))
    (setq tlength (rtos itemlength 2 8))
    (acet-ui-status (strcat "Toatl Area:  " tarea "\n" "Total Perimeter:  " tperim "\n"
                            "Total Length:  " tlength)
    )
  )
  ;;OBJECT SELECTION
  (if oo_object_modification
    (progn (vlr-remove oo_object_modification)
           (setq oo_object_modification nil)
    )
  )
  (setq oo_object_modification
         (vlr-miscellaneous-reactor
           nil
           '((:vlr-pickfirstmodified . *oo_object_modification*))
         )
  )
  ;;Command ended 
  (if oo_object_modification_action
    (progn (vlr-remove oo_object_modification_action)
           (setq oo_object_modification_action nil)
    )
  )
  (setq oo_object_modification_action
         (vlr-command-reactor nil
                              '((:vlr-commandended . *oo_object_modification*)
 ;(:vlr-commandcancelled . *oo_object_modification_CANCEL*))
                               )
         )
  )
)


(defun c:TADD-r ()
 
  (if oo_object_modification_action
    (progn (vlr-remove oo_object_modification_action)
           (setq oo_object_modification_action nil)
    )
  )
  (if oo_object_modification
    (progn (vlr-remove oo_object_modification)
           (setq oo_object_modification nil)
    )
  )
)

번호 제목 글쓴이 날짜 조회 수
공지 ★ 드림플러스 질문은 메일 또는 홈페이지에 부탁합니다 ★ 아저씨 2017.05.16 2775
공지 제목이 엉망이면 답변달지 않습니다. [1] 아저씨 2014.04.04 23854
공지 순수 캐드 질문은 고캐드로 아저씨 2013.05.28 68641
공지 질문 답변 게시판을 만들었습니다. 아저씨 2013.02.09 74943
2056 VBA/LISP 면적 구하기에 대해서 질문 드립니다. [2] 태상노군 2013.02.15 154618
2055 XREF 절대경로를 상대경로로 편집할때 외부참조관리자(AdRefMan) 말고 다른방법은 없나요? [1] papersdream 2013.02.18 54056
2054 &H8007007E (-2147024770) 시스템 오류가 발생하였습니다. 지정된 모듈을 찾을 수 없습니다. [1] 계장쟁이 2013.03.11 38223
2053 드림을 만나 요즘 정말 살맛나게 일하고 있는 1인입니다. [1] livehero 2013.02.12 36701
2052 다중플롯시 폼등록을 했는데.. [1] ㅁㄴㅇ 2014.03.21 35552
2051 오토캐드 도면 JPG파일로 내보내기하는 방법 문의 [1] 김세직 2014.10.19 34051
2050 윈도우7 32비트 설치 오류! [1] 삐삐누 2014.03.22 33823
2049 civil 3d 2012에서 드림을 설치 할수 있나요. [1] 배고픈곰 2013.02.16 33246
2048 다중플롯 시 POSTSCRIPT 문제 관련.. [1] 규규규 2013.05.15 28902
2047 autocad 2013 오류 문구 [1] 강걍겅경 2013.02.28 26067
2046 CAD 2014 버전 [1] 띵호야 2013.05.22 24049
2045 dreamsub.dll 을 로드하는중 에러발생 [1] ted 2013.05.16 22529