AutoCAD/자료2013.01.13 23:57

 

이 리습은 명령어에 따라 지정한 레이어에 자동으로 객체를 그리는 리습입니다.

예를 들면.. 문자와 관련된 명령어를 입력하면 자동으로 "TEXT" 라는 레이어에 문자를 쓰고

치수와 관련된 명령어를 입력하면 자동으로 "DIMENSIONS" 레이어에 치수를 그리는 방식입니다.

즉, 기존에 현재 레이어에 객체를 그린 후 객체 레이어를 바꾸거나, 레이어를 지정 후 객체를 그리는 것이 아니라

명령어에 따라 미리 지정된 레이어에 자동으로 객체가 그려지는 것입니다.

 

프로그램의 아이디어는 좋은데..

캐드 작업 방식과 분야에 따라 유용한 자료가 될 수도 있고 아닐 수도 있을 것 같습니다.

 

리습의 레이어 기본 설정

리습 파일을 열어보면 설명 부분이 끝나는 (setq *LayerDirector-LayerData*  이 부분에

설정이 아래 그림 처럼 되어 있습니다.

 

 

이 기본 설정의 경우를 설명하면

첫째줄, DTEXT, MTEXT, TEXT 명령을 입력하면 "TEXT"라는 레이어에 객체 생성

둘째줄, DIM* (DIM 이란 명령이 들어간 모든 명령 * 와일드카드 사용), *LEADER 명령을 입력하면

"DIMENSIONS"이라는 레이어에 객체 생성

세째줄, *VPORT* (앞 뒤에 와일드카드를 붙여 명령어 중간에 VPORT라는 명령이 포함된 명령)의 경우는

"DEFPOINTS" 레이어에 객체 생성

 

설정을 추가하려면

위 기본 설정된 부분에 설정을 추가해봅시다.

LINE 명령어를 입력하면 "라인"이라는 레이어에 객체를 그리게하고 싶다면 ?

("LINE"            "라인" ) 이걸 한줄 추가한 후 저장해서 다시 로드하면 됩니다.

즉, 아래 그림처럼 됩니다.

 

 

단축 명령어를 입력하는 것이 아니라 전체 명령을 이용하면됩니다.

우리가 단축 명령어를 입력해도 캐드 명령창은 전체 명령어로 변환이 되고 명령을 수행하기때문입니다.

그러면 선, 폴리선, 스플라인 등 모두 하나의 레이어로 지정하고 싶다면

모든 명령어 뒤에 LINE 이라는 글자가 들어가므로 앞부분에 와일드카드를 써서 *LINE 이라고만 바꾸면 되겠죠

("*LINE"           "라인" )

외부참조인 경우는 모두 "XREF"라는 레이어로 알아서 외부참조되게끔 한다면

("*XATTACH"        "XREF" )

이렇게 추가 후 저장해서 다시 로드하면 외부참조 창에서 외부참조를 추가할 때마다

참조된 모든 도면은 "XREF" 라는 레이어에 자동으로 들어가게됩니다.

 

이런식으로 명령을 추가하면 명령어 입력시 알아서 현재 레이어가 명령에 따른 지정된 레이어로 바뀌고

지정된 레이어에 객체를 그리게되는 결과가됩니다.

객체를 그리고 레이어를 바꾸거나, 레이어를 바꾸고 객체를 그리는 반복적인 일을 줄여줍니다.

 

명령은 본인에 맞게 추가, 수정해서 사용하면되고

추가 수정 후 appload에서 매번 다시 로드하기 귀찮으신 분은

전에도 말씀드렸듯

탐색기에서 리습 파일을 캐드 창으로 떨구면 (드래그 앤 드롭) 변경된 리습이 현재 도면에 적용됩니다.

단, 현재 도면에만 적용되므로 테스트 용으로 리습을 로드하거나 다시 로드할 때만 이 방법이 좋습니다.

 

이 기능을 일시 정지하고 싶으면

임시로 이 기능을 끄는 명령어는 LDOFF 입니다.

이 기능을 다시 켜는 명령어는 LDON 입니다.

 

다운로드

LayerDirectorV1-1.lsp

 

 

Posted by 아저씨~

댓글을 달아 주세요

  1. 감사합니다.
    치수 삽입시 레이어 지정않하고 했어
    매번 다시 레이어 변경하면서
    이런 리습이 있었으면 했는데.......

    2013.01.14 16:44 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. QNA

    아이디어는 좋을지몰라도..
    전혀.. 필요가 없을거같네요
    왜냐.. 작업 완료 후 필터로 걸러서 레이어 바꿔도 충분한 부분인데
    굳이 리엑터.. 명령어 쓸때마다 실행해서 할필요가 있을지..
    레이어도 똑같은 line이라도.. 달리해야 할뿐더러..
    차라리 우수, 오수, 포장, 구조물 따로따로 만들면 모를까..
    정말 아이디어만 좋네요

    2013.01.14 19:44 [ ADDR : EDIT/ DEL : REPLY ]
  3. 김완

    초보자들이나.. 간단한 수정 작업정도의 작업만 하시는 분들이라면 상당히 유용할듯하네요ㅎ

    2013.01.23 13:38 [ ADDR : EDIT/ DEL : REPLY ]
  4. 물어보고 싶은내용이 있는데 어디다 써야 할지 몰라서 여기다 질문 좀 드릴까 합니다.
    원하는 객체를 선택하고 캐드 화면에 선택된 상태를 유지 하고 싶은데
    어떤식으로 하면 되는지 몰라서요.
    예를 들어
    For Each Obj In oSel
    If Obj.StyleName = "BIGFONT" Then
    Obj.Highlight True
    End If
    Next
    이렇게 하면 하이라이트는 되는데 실제로는 선택되지 않은 상태 잖아요
    전 선택해서 캐드화면에서 확인하고 키보드로 del키라든지 명령어 erase로 지우고 싶어서요.
    윗글하고 상관없는 글을 남기게 되서 죄송합니다.
    이리저리 찾아봤는데 못찾아서 이렇게 염치불구 하고 질문을 남기게 됬습니다.

    2013.01.29 15:50 [ ADDR : EDIT/ DEL : REPLY ]
    • 그 경우는 .. 제 프로그램 중 FTE 명령에 있는 것을 예로 든다면
      Dim sHandle As String
      Dim i As Long
      Dim sLisp As String
      sLisp = "(defun FTE_SELECT() (setq ss (ssadd)) "
      For i = 1 To iCnt
      sHandle = 여기서 객체의 핸들을 받고
      sLisp = sLisp & "(ssadd (handent " & Chr(34) & sHandle & Chr(34) & ") ss) "
      End If
      Next
      sLisp = sLisp & "(sssetfirst nil ss) "
      sLisp = sLisp & "(princ))"
      GetLispValue sLisp
      ThisDrawing.SendCommand "(FTE_SELECT)" & vbCr
      이렇게하면 되는데
      여기서 GetLispValue는 VLAX 관련 구문 입니다.
      VLAX 관련된 것은 댓글로 글을 올리기엔 너무 양이 많으니
      구글에서 검색해보시거나 오토데스크 포럼 등에서 검색하시면 VLAX 관련 내용은 잔뜩 나오니 한번 찾아보시고..
      VLAX 적용안되면 임시로 리습 만들고 그걸 로드해서 실행해도 될겁니다.
      죄송하지만 제가 프로그래밍 관련된 답변은 잘 하질 않으니 고캐드 질문방이나 무엇보다 오토데스크 포럼 또는 관련 외국 사이트 이용해주시면 고맙겠습니다.

      2013.01.29 19:20 신고 [ ADDR : EDIT/ DEL ]
  5. 답변 감사드립니다.
    다음부터 말씀하신 곳을이용해 보겠습니다.

    2013.01.30 10:20 [ ADDR : EDIT/ DEL : REPLY ]
  6. 감사합니다.

    정말 잘쓸것 같아요 ㅡ 도면 그리면서 치수 넣을 경우 매번 scl이나 ccl 눌러가면서 치수 레이어 정리하곤 했는데
    이거 사용한 뒤로는 자동적으로 레이어 정리가 되서.. 참 좋습니다. 말씀하신 것처럼 작업 스타일이나 일에 따라 호불호가 갈리는 프로그램 같네요~ 암튼 전 정말 대 만족입니다 ㅎㅎㅎ

    2013.04.09 15:49 [ ADDR : EDIT/ DEL : REPLY ]
  7. 그냥바람

    사용자마다 틀리겠리겠지만 저한텐 정말 유용한 리습이네요 감사합니다.

    2013.12.12 12:33 [ ADDR : EDIT/ DEL : REPLY ]
  8. 김성학

    이리습 저에게는 필요한 리습인데 치수를 기입해보면 DIMENSIONS레이어가 생성이 되기는 하는데 치수문자만
    적용되네요.
    치수선이나 치수보조선도 같이 DIMENSIONS 레이어에 들어가게 할수는 없는지요?

    2014.01.01 18:19 [ ADDR : EDIT/ DEL : REPLY ]
    • 혹시 캐드의 치수 설정에서 라인 등의 레이어가 특정 레이어로 된것이 아닌가요 ? ByLayer로 지정해보셨나요?

      2014.01.02 23:35 신고 [ ADDR : EDIT/ DEL ]
  9. gsjung

    명령어에 따라 레이어가 변경되는 리습인데.....
    혹시 도면작성이 끝난 상태에서 변경하는것을 위 리습에 추가 할수 있을까요... 리습은 잘 몰라서...ㅎㅎ;
    예를 들어 외부참조된 것들은 xref 레이어로... 도면열릴때 실행..?

    2014.01.10 13:15 [ ADDR : EDIT/ DEL : REPLY ]
    • 저도 VBA나 .NET만 알고 리습은 몰라서 정확히 말씀은 못드리겠지만
      현재 상태에서 말씀하신 것은 아마 안될것 같습니다.
      별도로 새로 만들어야겠죠

      2014.01.13 18:30 신고 [ ADDR : EDIT/ DEL ]
  10. 터푸최

    좋은정보 고맙습니다^^
    오랫만에 들어와서 좋은 정보 받아가네요..

    2014.02.19 14:41 [ ADDR : EDIT/ DEL : REPLY ]
  11. KSH

    저는 색상변경 리습을 이용하여 11이면 빨간색 22이면 노랑색 이런식으로 변경이 되는데요 혹시 이 경우 11이라는 명령을 이용하여 색상도 변경 되면서 레이어가 변경되게 할수는 없을까요?

    2014.12.24 10:13 [ ADDR : EDIT/ DEL : REPLY ]
    • 전 VBA나 .NET만 알고 리습은 몰라서 말씀하신 내용을 알 수가 없습니다. 고캐드 질문 게시판에 한번 글 남겨보세요.

      2014.12.26 09:15 신고 [ ADDR : EDIT/ DEL ]