비밀번호를 잊으셨나요?

비밀번호를 잊으셨나요? 비밀번호를 재설정하려면 이메일 주소를 입력해주세요.

계정이 있나요? 로그인

You must login to ask a question.

비밀번호를 잊으셨나요?

아직 계정이 없으신가요? 회원가입 하기

해당 질문을 신고하는 이유를 간단히 입력해주세요.

해당 답변을 신고하는 이유를 간단히 입력해주세요.

해당 유저를 신고하는 이유를 간단히 입력해주세요.

로그인회원가입

고캐드 – 캐드(CAD) 정보의 중심

고캐드 – 캐드(CAD) 정보의 중심 Logo 고캐드 – 캐드(CAD) 정보의 중심 Logo

고캐드 – 캐드(CAD) 정보의 중심 Navigation

  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
검색
질문하기

Mobile menu

닫기
질문하기
  • 홈
  • 카테고리
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 투표
  • 커뮤니티 그룹
  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
홈/ 질문/Q 113231
다음
Lv.0
등록일: 2021-07-222021-07-22T13:45:41+09:00 2021-07-22T13:45:41+09:00카테고리: AutoCAD & CADian

Textcount 와 색상객체선택 리습 합치기 도움요청

며칠 전 도움 잘받았는데 추가로 필요한 부분 있어 또 도움 요청 해봅니다.
2가지 리습을 합쳐서 사용하고 싶은데 어떻게 수정을 해야 할 지 모르겠습니다.
능력 되시는 분 수정 문구 알려 주시면 감사 하겠습니다.
1. textcount.lsp (문자 카운트 리습)
2. ss1(색상으로 객체 선택 리습) 
 위 두개 합쳐서 지정 칼라 문자만 선택해서 각문자별 수량 카운트 결과을 얻고 싶습니다.

* 리습 내용 2가지는 입니다. 명령어 TC하고 SS1입니다. (리습 내용이 꽤 길어요…. )

;;——————–=={ Text Count }==———————-;;
(defun c:tc( / *error*_StartUndo_EndUndo_Assoc++_SumAttributes_GetTextString_ApplyFooToSelSet


    acdoc
    acspc
    alist
    data
    pt


  )
  (vl-load-com)


;;————————————————————;;
 
  (defun *error* ( msg )
    (if acdoc (_EndUndo acdoc))
    (if (not (wcmatch (strcase msg) “*BREAK,*CANCEL*,*EXIT*”))
      (princ (strcat “n** Error: ” msg ” **”))
    )
    (princ)
  )


;;————————————————————;;


  (defun _StartUndo ( doc ) (_EndUndo doc)
    (vla-StartUndoMark doc)
  )
 
;;————————————————————;;


  (defun _EndUndo ( doc )
    (if (= 8 (logand 8 (getvar ‘UNDOCTL)))
      (vla-EndUndoMark doc)
    )
  )


;;————————————————————;;


  (defun _Assoc++ ( key alist )
    (
      (lambda ( pair )
        (if pair
          (subst (list key (1+ (cadr pair))) pair alist)
          (cons  (list key 1) alist)
        )
      )
      (assoc key alist)
    )
  )


;;————————————————————;;


  (defun _SumAttributes ( entity alist )
    (while
      (not
        (eq “SEQEND”
          (cdr
            (assoc 0
              (entget
                (setq entity (entnext entity))
              )
            )
          )
        )
      )
      (setq alist (_Assoc++ (_GetTextString entity) alist))
    )
  )


;;————————————————————;;
 
  (defun _GetTextString ( entity )   
    (
      (lambda ( string )
        (mapcar
          (function
            (lambda ( pair )
              (if (member (car pair) ‘(1 3))
                (setq string (strcat string (cdr pair)))
              )
            )
          )
          (entget entity)
        )
        string
      )
      “”
    )
  )


;;————————————————————;;


  (defun _ApplyFooToSelSet ( foo ss / i )
    (if ss (repeat (setq i (sslength ss)) (foo (ssname ss (setq i (1- i))))))
  )


;;————————————————————;;


  (setq acdoc (vla-get-activedocument (vlax-get-acad-object))
        acspc (vlax-get-property acdoc (if (= 1 (getvar ‘CVPORT)) ‘Paperspace ‘Modelspace))
  )
  (cond
    ( (= 4 (logand 4 (cdr (assoc 70 (tblsearch “LAYER” (getvar ‘CLAYER))))))
      (princ “nCurrent Layer Locked.”)
    )
    ( (not (vlax-method-applicable-p acspc ‘AddTable))
      (princ “nTable Object not Available in this version.”)
    )
    ( (and
        (setq data
          (_ApplyFooToSelSet
            (lambda ( entity / typ )
              (setq alist
                (cond
                  ( (eq “INSERT” (setq typ (cdr (assoc 0 (entget entity)))))
                    (_SumAttributes entity alist)
                  )
                  ( (eq “MULTILEADER” typ)
                    (_Assoc++ (cdr (assoc 304 (entget entity))) alist)
                  )
                  ( (wcmatch typ “*DIMENSION”)
                    (_Assoc++ (cdr (assoc 1 (entget entity))) alist)
                  )
                  ( (_Assoc++ (_GetTextString entity) alist) )
                )
              )
            )
            (ssget
             ‘(
                (-4 . “<OR”)
                  (0 . “TEXT,MTEXT,MULTILEADER”)
                  (-4 . “<AND”)
                    (0 . “INSERT”)
                    (66 . 1)
                  (-4 . “AND>”)
                  (-4 . “<AND”)
                    (0 . “*DIMENSION”)
                    (1 . “*?*”)
                  (-4 . “AND>”)
                (-4 . “OR>”)
              )
            )
          )
        )
        (setq pt (getpoint “nSpecify Point for Table: “))
      )
      (_StartUndo acdoc)
      (LM:AddTable acspc (trans pt 1 0) “String Count”
        (cons (list “String” “Instances”)
          (vl-sort
            (mapcar
              (function
                (lambda ( x ) (list (car x) (itoa (cadr x))))
              )
              data
            )
            (function (lambda ( a b ) (< (car a) (car b))))
          )           
        )
      )
      (_EndUndo acdoc)
    )
  )
  (princ)
)


;;———————=={ Add Table }==———————-;;
;;                                                            ;;
;;  Creates a VLA Table Object at the specified point,        ;;
;;  populated with title and data                             ;;
;;————————————————————;;
;;  Author: Lee Mac, Copyright ?2011 – http://www.lee-mac.com       ;;
;;————————————————————;;
;;  Arguments:                                                ;;
;;  space – VLA Block Object                                  ;;
;;  pt    – Insertion Point for Table                         ;;
;;  title – Table title                                       ;;
;;  data  – List of data to populate the table                ;;
;;————————————————————;;
;;  Returns:  VLA Table Object                                ;;
;;————————————————————;;


(defun LM:AddTable ( space pt title data / _isAnnotative textheight style )


  (defun _isAnnotative ( style / object annotx )
    (and
      (setq object (tblobjname “STYLE” style))
      (setq annotx (cadr (assoc -3 (entget object ‘(“AcadAnnotative”)))))
      (= 1 (cdr (assoc 1070 (reverse annotx))))
    )
  )


  (
    (lambda ( table ) (vla-put-StyleName table (getvar ‘CTABLESTYLE)) (vla-SetText table 0 0 title)
      (
        (lambda ( row )
          (mapcar
            (function
              (lambda ( rowitem ) (setq row (1+ row))
                (
                  (lambda ( column )
                    (mapcar
                      (function
                        (lambda ( item )
                          (vla-SetText table row (setq column (1+ column)) item)
                        )
                      )
                      rowitem
                    )
                  )
                  -1
                )
              )
            )
            data
          )
        )
        0
      )
      table
    )
    (
      (lambda ( textheight )
        (vla-AddTable space (vlax-3D-point pt) (1+ (length data)) (length (car data)) textheight
          (* 0.8 textheight
            (apply ‘max
              (cons (/ (strlen title) (length (car data)))
                (mapcar ‘strlen (apply ‘append data))
              )
            )
          )
        )
      )
      (* 2.
        (/
          (setq textheight
            (vla-gettextheight
              (setq style
                (vla-item
                  (vla-item
                    (vla-get-dictionaries (vla-get-document space)) “ACAD_TABLESTYLE”
                  )
                  (getvar ‘CTABLESTYLE)
                )
              )
              acdatarow
            )
          )
          (if (_isAnnotative (vla-gettextstyle style acdatarow))
            (cond ( (getvar ‘CANNOSCALEVALUE) ) ( 1.0 ))
            1.0
          )
        )
      )
    )
  )
)


;;————————————————————;;
;;                         End of File                        ;;
;;————————————————————;;    
 
(defun c:ss1(/ entdata entcolour colour layer layerlist layercolourlist layernamefilter strlayer strlayerlen filter)
 (setq entdata (entget (car (entsel “nPls select object color.”))))
 (if (setq entcolour (cdr (assoc 62 entdata)))
  (setq colour entcolour)
  (setq colour (cdr (assoc 62 (tblsearch “layer” (cdr (assoc 8 entdata))))))
 )
 (setq layer (tblnext “layer” T))
 (while layer
  (setq layerlist (append layerlist (list layer)))
  (setq layer (tblnext “layer”))
 )
 (while layerlist
  (if
   (/= colour (cdr (assoc 62 (nth 0 layerlist))))
   (setq layerlist (cdr layerlist))
   (progn
    (setq layercolourlist (append (list (cdr (assoc 2 (nth 0 layerlist)))) layercolourlist))
    (setq layerlist (cdr layerlist))
   )
  )
 )
 (if (= layercolourlist nil)
  (setq filter (list (cons 62 colour) (cons -4 “<not”) (cons 0 “insert”) (cons -4 “not>”)))
  (progn
   (setq strlayer “”)
   (while (car layercolourlist)
    (setq strlayer (strcat strlayer (car layercolourlist) “,”))
    (setq layercolourlist (cdr layercolourlist))
   )
   (setq strlayerlen (strlen strlayer))
   (setq layernamefilter (substr strlayer 1 (1- strlayerlen)))
   (setq filter (list (cons -4 “<or”) (cons -4 “<and”) (cons 8 layernamefilter) (cons 62 256) (cons -4 “and>”) (cons 62 colour) (cons -4 “or>”) (cons -4 “<not”) (cons 0 “insert”) (cons -4 “not>”)))
  )
 )
 (prompt “nPls select object.”)
 (sssetfirst nil (ssget filter))
 (princ)
)
  

  • 0
  • 89 조회
공유
  • Facebook

    관련 있는 질문들

    • 선배님들 덕트 엘보 작성 리습좀 봐주세요
    • insert 삽입할때 레이어도 같이 변경가능할까요?
    • 캐드 파일을 PDF로 변환 할 때 문제점 도와주세요 ㅠ
    • 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요..

    Sidebar

    질문하기
    공지사항

    • AI CAD의 미래! 캐디안 2025 1+1 프로모션 안내 2025-05-14

    Adv 234x60

    aalan

    Adv 234x60

    aalan

    Adv 120x600

    aalan

    Explore

    • 홈
    • 카테고리
      • AutoCAD & CADian
      • Inventor & Solidworks
      • Revit & ArchiCAD
      • 자유질문
      • 기타
    • 투표
    • 커뮤니티 그룹
    aalan

    Footer

    Support

    • 회사 및 서비스 소개
    • 자주 묻는 질문
    • 문의하기

    Guide

    • 제휴/협업 안내
    • 광고 서비스 안내

    Policy

    • 서비스 이용약관
    • 개인정보 처리방침
    • 광고성 정보 수신 동의

    Contents

    • 고밍스토리
    • 리습 시리즈

    정소프트 | 사업자등록번호 : 677-40-00198 | 대표 : 정은숙 | 이메일 : gocad.manager@gmail.com
    주소 : 서울특별시 강서구 양천로 400-12, 6층 614,615,617호(등촌동, 더리브골드타워)
    Copyright. 2012-2024 GOCAD All rights reserved