프로그램
캐드 분류

글자 내용에 따른 색을 바꿔주는 리습을 구합니다.

컨텐츠 정보

  • 336 조회
  • 7 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

예를 들어 글자에 D10을 포함하면 색상을 100, D13을 포함하면 색상을 130, D16을 포함하면 색상을 160으로 바꿔주는 리습을 원합니다.
각각 클릭이아니라 전체를 드래그해서 누르면 3가지 글자에 따라 다 각각의 색상으로 변환됬으면 합니다.
고수분들의 조언 부탁드립니다.

관련자료

댓글 7

gogohh3님의 댓글

(defun c:CSS ( / *CATCH_ERROR *OBJ_ENAME *OBJ_LAYER *OBJ_SSET *RPT_COUNT)

   (princ "n 색상을 변경할 개체 선택 : ")    (setq *Catch_Error     (vl-catch-all-apply        '(lambda ()     ;;     (setq *Obj_SSet (ssget))         )     )    )

   (if (vl-catch-all-error-p *Catch_Error)       (progn   (vl-exit-with-error "")       )    )

   (setvar "cmdecho" 0)    (setq *Rpt_Count 0)    (repeat (sslength *Obj_SSet)

      (setq *Obj_Ename (ssname *Obj_SSet *Rpt_Count))       (setq *Obj_Layer (cdr (assoc 8 (entget *Obj_Ename))))

      (cond   ((= (strcase *Obj_Layer) "ZHD10″) (command "chprop" *Obj_Ename "" "c" 100 ""))   ((= (strcase *Obj_Layer) "ZSHD10″) (command "chprop" *Obj_Ename "" "c" 100 ""))   ((= (strcase *Obj_Layer) "ZUHD10″) (command "chprop" *Obj_Ename "" "c" 100 ""))   ((= (strcase *Obj_Layer) "ZHD13″) (command "chprop" *Obj_Ename "" "c" 130 ""))   ((= (strcase *Obj_Layer) "ZSHD13″) (command "chprop" *Obj_Ename "" "c" 130 ""))   ((= (strcase *Obj_Layer) "ZUHD13″) (command "chprop" *Obj_Ename "" "c" 30 ""))   ((= (strcase *Obj_Layer) "ZHD16″) (command "chprop" *Obj_Ename "" "c" 160 ""))   ((= (strcase *Obj_Layer) "ZSHD16″) (command "chprop" *Obj_Ename "" "c" 160 ""))   ((= (strcase *Obj_Layer) "ZUHD16″) (command "chprop" *Obj_Ename "" "c" 160 ""))   ((= (strcase *Obj_Layer) "ZHD19″) (command "chprop" *Obj_Ename "" "c" 190 ""))   ((= (strcase *Obj_Layer) "ZSHD19″) (command "chprop" *Obj_Ename "" "c" 190 ""))   ((= (strcase *Obj_Layer) "ZUHD19″) (command "chprop" *Obj_Ename "" "c" 190 ""))   ((= (strcase *Obj_Layer) "ZHD22″) (command "chprop" *Obj_Ename "" "c" 220 ""))   ((= (strcase *Obj_Layer) "ZSHD22″) (command "chprop" *Obj_Ename "" "c" 220 ""))   ((= (strcase *Obj_Layer) "ZUHD22″) (command "chprop" *Obj_Ename "" "c" 220 ""))   ((= (strcase *Obj_Layer) "ZHD25″) (command "chprop" *Obj_Ename "" "c" 20 ""))   ((= (strcase *Obj_Layer) "ZSHD25″) (command "chprop" *Obj_Ename "" "c" 20 ""))   ((= (strcase *Obj_Layer) "ZUHD25″) (command "chprop" *Obj_Ename "" "c" 20 ""))       )

      (setq *Rpt_Count (1+ *Rpt_Count))    )

   (princ) ) 이것도 똑같이 다중으로 선택해서 레이어에 따라 색상을 전환하는건데 이건 다중으로 선택해도 색상이바뀌던데 이런 폼으로 문자에 따른 색상 전환은 불가능할까요 ㅠㅠ

조용!!님의 댓글

구조쪽이신거 같은더..

잘몰라서 근본목적을 여쭤본거니 오해안하셨으면합니다

상큼메론90님의 댓글

emoticon

두번째 질문에 있는 리습은

위 주소에 있는 리습은 오토캐드에서 다중 선택해서 작업시… 아주 잘 됩니다.

그러면 G스타캐드에 체계가 아주 약간 오토캐드랑 다른것 같아요… G스타캐드 Q&A에 질문하시는게 빠를듯 합니다.

여기 고수님들 중에서 G스타캐드 쓰시는 분을 잘 못본것 같네요~~~

gogohh3님의 댓글

제가 GstarCAD 8버전을 쓰다가 16으로 업데이트를 했는데, 각각 클릭하는 첫번째 질문의 리습은 실행이 되는데, 두번째 다중으로 선택해서 하는 리습이 적용이 안되고있습니다. 뭐가 문제인지 알수가 없는데 다른 방법으로 다중으로 선택해서 색상을 바꿀수 없을까요?ㅠㅠ

상큼메론90님의 댓글

emoticon

질문자님, 아래에 질문한 것과 똑 같은것 아닌가요???

그래서 답변을 달지 않았는데, 조용님께서 다셨다능…

질문자님이 질문한 것중에 첫번째 질문

두번째 질문

..

gogohh3님의 댓글

근본적인 목적이 철근의 직경을 표시하는 D10,D13,D16,D19가 있는데 거기에 맞게 캐드에서 색상을 D10=100 색상(초록) D13=130 색상(하늘) D16=160 색상(파랑) D19=190 색상(보라색) D21=210 색상(선홍색) 요렇게 DXX의 글자에따라 글자 색을 색상을 바꿔주면 구분하기 편해서 그렇습니다. 윈도우로 여러가지 문자를 잡고 단축키를 눌렀을때 DXX가 들어가있는 문자만 색상이 변하는 리습을 구하고싶어서 그렇습니다.

조용!!님의 댓글

근본 목적이 뭡니까.. 이런 질문의 경우.. 연관 질문이 오는데.. 답변자는 지칩니다.. ^_^;;;

(defun c:test ()   (setq se (ssget '((0 . "TEXT")(1 . "D*"))))   (setq idx -1)   (repeat (sslength se)     (setq name (ssname se (setq idx (1+ idx))))     (setq ent (entget name))     (setq cd1 (cdr (assoc 1 ent)))     (setq i (substr cd1 2))     (setq ix10 (* 10 (atoi i)))     (setq as62 (cdr (assoc 62 ent)))     (if as62       (progn  (entmod (subst (cons 62 ix10) as62 ent))  )       (progn  (entmod (append ent (append (list (cons 62 ix10)))))  )       )     )   (princ)   )

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