티스토리 뷰

반응형

리습에 관해 몇가지...


  • 리습에용은 VBA 사용에 필요한 몇가지만 정리하고 넘어가야 같아 시작합니다.


지난글  2018/02/05 - [CAD/VBA] - CAD VBA 시작


난시간 단축키 만들기에용한용과 몇가지 간단한용법만겠습니다.


지난시간 리습코드:

(defun c:test()(command “-vbarun” ”Test”)(princ))

 

VBA 코드를 캐드에서 바로 사용할수 있게 연결시켰던 리습입니다.

위 코드에 대해 설명 드리고 넘어가야할것 같아 다시 가져왔습니다.

장부터 하나씩 설명드리겠습니다.


  • defun
    • VB Sub 같은념으로 함수 선언작을 알리는문입니다.
  • c:test()
    • 함수름부분입니다
    • 분에 c: 붙으면 캐드에서 바로 사 할수 있습니다.
    • test() 름과 변수 정의분입니다.
  • command
    • 캐드 명령줄.
          실제 캐드의 명줄을 사용하는 명령.
        • -vbarun 엔터,
        • Test(VB Sub 이름) 엔터와 동일.
  • princ
    • 분이 없으면면에 nil이라 메시지가 표시됩니다
      리턴값이
      없기문에 표시 되는데 nil 메시지 표시 안보이게 하기위해 사용됩니다.

 

간단한 프로그램은습이 편하니 문법 몇가지만 알아두시면 요긴하게 사용할수 있습니다.

몇가지 간단한습을 겠습니다

 

(defun c:CT6 () (command "LEADER" pause pause "" "M6 TAP DP15" "")(princ))

;지시선 생성후 텍스트 자동입력하는 리습.

;pause : 사용자 입력.

(지시선 생성 순서를 생각해보면 시작점과 텍스트의 위치라는걸 알수 있습니다)

;M6 TAP DP15'라는 문자를 클릭 두번으로 생성 합니다.

 

(defun c:1()

  (ssget)

  (command "layer" "s" "0" "")

  (command "chprop" "p" "" "la" "CEN" "lt" "bylayer" "c" "bylayer" "")

  (princ)

)

; 현재 레이어를 0으로 바꾸고

; ssget : 객체 선택

; 선택한 객체 CEN 레이어로 바꾸고 스케일과 색상을 bylayer 설정.

 

  • 리습에선 레이어 변경하는 코드줄이 끝인데 용을 VBA에서 하려 복잡합니다.  렇기때문에 간단한 문법 정도는 알아두시면 편하게 쓰실수 있습니다.

 

다시 VBA 프로그 이야기겠습니다.

1‘이 프로그램은 객체를 선택한혹은 프로그램이행된 객체를 가져 수정하는 구조입니다.

 

  • 여기서 생각 해볼것이 있는데, VBA에서 프로그램이행된 객체를 가져오는건운데
    실행 객체를 프로그 내부로 가져오는건 어렵습니다
  • 앞에서 사용한 프로그램명을 다시 보면 Sub test() 와  같이 함수명뒤 "( )"처럼 매개변수 없이 사용하는게 대부분입니다.   매개변수로 오브젝트를 쓰게되결될것 같지만렇게되면 객체 선택 없이 프로그램이 시작될 경우 오류가 발 하게 되므로 별개의 프로그램을 만들어야 사용할수 있게 됩니다.      (C#에선 오버로1)능합니다.)
  • 그래서 아래 비주습을용하면 문제 해결할수 있습니다.

 

(defun c:test()

(vl-load-com)(vla-runmacro (vlax-get-acad-object) "Test")

(princ)

)

 

사용법은 리습과 비슷합니다.

  • c:test
    • 캐드 명령어
  • Test
    • VBA 명령어
  • vlax-get-acad-object
    • 캐드 오브젝트 가져오기
  • vl-load-com
    • 비주얼 리습 로드
  • vla-runmacro
    • 매크로 실행

 

  • 리습에 관한내용은 여기까지만 하셔도 VBA하는데 무리가 없습니다.
    그럼 VBA로 넘어가겠습니다.

 

 

1. 오버로딩 : 똑같은 메소드(함수명)이지만 매개변수 유형, 갯수에 따라 다르게 동작되게 하는 기술



반응형

'프로그래밍 > CAD' 카테고리의 다른 글

자동출력 VBA - 출력 블럭 설정  (0) 2018.02.09
자동출력 VBA - 프린터 설정  (0) 2018.02.09
자동출력 VBA - 출력순서  (0) 2018.02.09
자동출력 VBA  (1) 2018.02.08
CAD VBA 시작  (1) 2018.02.05
댓글