명령 매크로와 스크립팅

모든 Rhino의 명령들은 명령 매크로에서 사용될 수 있습니다. 명령 매크로는 명령 프롬프트에서 명령을 입력하여 실행하거나, 도구모음 단추, 바로 가기 키, 명령 앨리어스에서도 실행할 수 있으며, ReadCommandFile 명령을 사용하거나, Rhino의 명령 스트림에 Paste 명령으로 붙여넣어 실행할 수 있습니다.

명령 매크로 쓰기

명령행에서 명령을 입력하듯이 명령 매크로를 작성합니다. 글자 사이의 공백이나 새 줄은 명령행에서 Enter 키를 누를 때와 같은 역할을 합니다.

특수 문자 매크로에서의 뜻

*
(별표 문자)

별표 문자는 Enter 키를 눌러 다시 시작하지 않고도 자동으로 반복하게 설정합니다.

!
(느낌표)

바로 전 명령을 취소합니다.

매크로 시작에 있는 느낌표(!)와 공백은 이전의 어떠한 명령도 취소합니다. 그 외의 위치에 있는 경우에는 매크로가 취소됩니다. 필요하다면 스크립트의 마지막에 느낌표를 사용하실 수 있습니다.

_
(밑줄)

영어 명령의 이름으로 인식하도록 하여 명령을 실행합니다.

Rhino는 많은 언어로 지역화될 수 있습니다. 한국어 버전에서는 프롬프트, 명령 옵션, 대화상자, 메뉴 등이 번역되어 있습니다. 한국어, 영어, 일본어, 중국어 이외의 언어 버전에서는 명령도 번역되어 있습니다. 한국어, 영어, 일본어, 중국어를 제외한 언어 버전에서는 영어 명령을 그대로 사용할 수 없습니다.

영어로 작성된 스크립트가 모든 컴퓨터(Rhino의 언어 버전과 상관없이)에서 실행되기 위해서는 스크립트가 강제로 Rhino가 모든 명령을 영어 명령 이름으로 인식하도록 해야 합니다.

예를 들면: Rhino 영어 버전에서는 다음의 매크로가 실행됩니다:

Circle 3Point 0,0,0 1,1,0 0,3,0

그러나 Rhino 프랑스어 버전에서는 실행되지 않습니다. 그 대신 다음 중 하나의 매크로가 필요합니다:

Cercle 3Point 0,0,0 1,1,0 0,3,0
_Circle _3Point 0,0,0 1,1,0 0,3,0

매크로가 전세계적으로 확실히 실행되게 하기 위해서는 영어로 작성 후 모든 명령 이름과 옵션의 앞에 _ 를 넣습니다.

-
(하이픈)

대화상자를 표시하지 않습니다.

모든 명령은 명령행에서 매크로로 실행할 수 있습니다(기본적으로 대화상자를 표시하는 명령 포함). 대화상자를 표시하지 않고 명령행 옵션을 사용하려면 명령 이름의 앞에 하이픈(-)을 붙입니다.

'
(아포스트로피)

다음에 오는 명령이 중첩할 수 있는 명령입니다.

뷰와 구성평면의 조작과, 개체 스냅은 중첩할 수 있습니다. 지오메트리를 만드는 명령은 중첩할 수 없습니다.

일회성 개체 스냅과 하위 개체 지정 필터는 자동적으로 중첩이 가능하며, 아포스트로피가 필요하지 않습니다.

/
(백슬래시)

도구모음 매크로의 첫 글자가 "!" 가 아니고, 마지막 글자가 " /"인 경우, 스크립트는 Enter 없이 명령행에서 실행되므로, 더 많은 정보를 추가할 수 있습니다.

이 기능은 "숫자 키패드"를 화면상에 만들며, 단추상의 자릿수, 소숫점, 각도(예 "<45")를 명령 문자열에 추가할 때 유용합니다.

~
(물결표)

화면이 어지럽지 않게 명령행 옵션을 표시하지 않습니다. 작업은 평상시와 마찬가지로 실행됩니다.

;

(세미콜론)

메모.

세미콜론 (;)으로 시작하는 선은 매크로의 일부가 아니지만, 이를 이용하여 매크로를 문서 작성할 수 있으며, 다른 입력도 시도할 수 있습니다.

예:

;이것은 시험용 매크로입니다
_Circle 0,0,0 15
_Line 0,0,0 pause ;15,0,0
; Line 0,0,0 0,15,0
_Line 0,0,0 -15,0,0

::
(이중 콜론)

레이어 이름 사이의 이중 콜론(::)으로 레이어 중첩을 나타냅니다. -Layer 명령에서 Layer 01 아래에 중첩된 새로운 레이어를 추가하려면 다음과 같이 매크로를 사용합니다:

! _-Layer New "Layer 01:: New Layer" Enter

원 그리기

이 매크로는 원 중심이 5,5이고, 반지름이 10인 원을 만듭니다:

! _-Circle 5,5 10

기재된 내용 사이의 공백은 수작업으로 직접 명령을 입력할 때 Enter 키를 누르는 곳과 같은 위치입니다.

개체를 선택 해제하고 Move 명령을 시작합니다

이 매크로는 Move 명령을 시작하지만 이동할 개체의 선택을 묻기 전에 모든 개체를 선택 해제 상태로 만듭니다:

! _SelNone _Move

점을 통과하는 커브를 만듭니다

이 매크로는 세 점 세트를 만들어 이를 모두 선택하고, 점에 폴리라인을 맞춥니다:

! _SelAll _Points _Pause _Pause _Pause _Enter _Invert _CurveThroughPt _EnterEnd

이 스크립트의 실행 내역:

! _SelAll

이제까지의 모든 명령을 취소하고 현재 모델의 모든 개체를 선택합니다.

_Points

Points 명령을 실행합니다.

_Pause

_Pause

_Pause

세 점 위치를 지정합니다.

_Enter

점 개체의 생성을 중단하도록 Enter 키를 누르는 효과를 냅니다.

_Invert

선택 영역을 반전(Invert) 합니다. 그 장면에서 보이는 모든 개체는 스크립트의 처음부터 선택된 것이므로, 반전을 실행한 후에는 오직 새로 만들어진 점 개체들만 선택됩니다.

_CurveThroughPt

점 개체를 통하는 폴리라인을 만듭니다.

_EnterEnd

명령을 완료합니다.

대화상자 표시하지 않기

! -_Rebuild _Pause _Points=10 _Degree=3 _Enter

커브를 선택하고, 이 매크로를 실행합니다. 모든 옵션을 매크로가 지정합니다.

이러한 스크립트를 사용해 보려면

  1. 도움말 항목에서 매크로를 선택합니다.
  2. 클립보드에 복사하려면 Ctrl + C를 누릅니다.
  3. Rhino 명령 프롬프트를 클릭하고 Ctrl + V를 눌러 매크로를 붙여넣습니다.
특별 스크립트 명령

일시 중지

사용자 입력을 위해 매크로에서 멈춥니다.

예:

! _Circle _Pause 50

이 매크로는 점을 요구하고, 그 점이 50 단위가 반지름인 원의 중심이 되도록 그립니다.

MultiPause

여러 선택을 하는 동안 스크립트를 중지합니다. 예를 들어 Join, Polyline, FilletEdge 가 여기에 해당됩니다.

Enter

매크로 안에서 Enter 키를 누르는 효과를 냅니다.

이 명령은 Enter 키를 누를 때와는 다르게, 이전 명령어를 반복하지 않습니다.

EnterEnd

명령을 완료합니다.

SetRedrawOff

매크로가 실행되는 동안, 화면 다시 그리기와 구성평면/카메라 변경을 방지합니다.

SetRedrawOn

이 명령은 SetRedrawOff를 실행한 후 다시 그리기를 다시 켭니다.

NoEcho

명령 히스토리 창에 매크로 명령이 반영되는 기능을 끕니다.

Echo

명령 히스토리 창에 매크로 명령이 반영되는 기능을 켭니다.

무엇을 매크로에 입력해야 할지 잘 모를 때는 하이픈이 붙은 명령 버전을 실행합니다. 명령의 시퀀스를 강조 표시하여 복사한 후 매크로 텍스트에 붙여넣습니다.

MacroEditor

도구모음 메뉴

유틸리티

도구

명령 >

매크로 편집기

MacroEditor 명령은 매크로를 만들고 테스트하는 편집창을 엽니다.

매크로 편집기 패널

패널 옵션

과정

  1. 명령을 매크로 편집기 창에 입력합니다.
  2. 테스트하려면 실행을 클릭합니다.
  3. 매크로를 삭제하려면 삭제를 클릭합니다.

안내

ReadCommandFile

도구모음 메뉴

도구

도구

명령 >

파일에서 읽기

ReadCommandFile 명령은 텍스트 파일에서 명령 매크로를 읽고 실행합니다.

과정

노트

텍스트 파일을 아래의 예와 같이 만든 후, ReadCommandFile 명령을 실행합니다. 이 텍스트 파일의 내용은 여러 커브를 한 번에 작성하는 것입니다.

! _interpcrv
23,5,0
23,2,5,0
23.7,5.2,1
_Enter
_interpcrv
26.1,4.9,1.1
26.8,4.9,1.0
27.1,4.8,0.9
_Enter

etc&.

Echo

도구모음 메뉴

도구모음에 없습니다.

메뉴에 없습니다.

Echo 명령은 명령 히스토리 창에 매크로 명령이 반영되는 기능을 켭니다.

반영되는 것을 해제하려면 NoEcho 명령을 사용합니다.

NoEcho

도구모음 메뉴

도구모음에 없습니다.

메뉴에 없습니다.

NoEcho 명령은 명령 히스토리 창에 매크로 명령이 표시되는 기능을 끕니다.

NoEcho 또는 _NoEcho 명령이 올바르게 실행되려면 이 단어가 매크로의 맨처음 단어여야 합니다. 느낌표를 포함한 모든 것이 그 뒤어 와야 하며, 공백 하나로 구분됩니다.

Enter

도구모음 메뉴

도구모음에 없습니다.

메뉴에 없습니다.

Enter 명령은 스크립트 또는 도구모음 단추 프로그래밍에서 Enter 키를 누르는 것처럼 기능을 합니다.

이 스크립트는 구성평면을 z축 기준으로 설정합니다:

'_CPlane _3Point

_Pause _Pause _Pause _Enter

Enter 명령은 Enter 키를 누를 때와 다르게, 이전 명령을 반복하지 않습니다.

EnterEnd

도구모음 메뉴

도구모음에 없습니다.

메뉴에 없습니다.

EnterEnd 명령은 매크로 또는 도구모음 단추 프로그래밍에서 명령 문자열을 완성하기 위해 Enter 키를 누르는 것과 같은 역할을 합니다.

EnterEnd는 Options 또는 DocumentProperties 명령처럼, 명령에 여러 단계의 옵션이 있어 공백의 명령 프롬프트로 되돌아오기 위해 여러번 Enter 키를 눌러야하는지 세지 않고 이런 명령을 완료하고 싶을 때 편리하게 사용할 수 있습니다. 예:

! _-DocumentProperties _Mesh _Custom _MaxEdgeSrf .01

이 명령에서 나오려면 적어도 2~3 차례의 Enter가 필요합니다. EnterEnd를 사용하면 명령에서 원하는 순간에 나올 수 있습니다.

! _-DocumentProperties _Mesh _Custom _MaxEdgeSrf .01 _EnterEnd

Exit

도구모음 메뉴

도구모음에 없습니다.

파일

끝내기

Exit 명령은 현재 Rhino 세션을 종료합니다.

Pause

도구모음 메뉴

도구모음에 없습니다.

메뉴에 없습니다.

Pause 명령은 매크로를 중지하고 사용자의 입력을 기다립니다.

이 매크로는 점을 요구하고, 그 점이 50 단위가 반지름인 원의 중심이 되도록 그립니다.

! _Circle _Pause 50

MultiPause

도구모음 메뉴

도구모음에 없습니다.

메뉴에 없습니다.

MultiPause 명령은 매크로를 중지하고 사용자의 입력을 기다립니다.

이 매크로는 결합할 개체를 묻습니다.

! _Join _MultiPause

Run

Run 명령은 Rhino 내부에서 다른 응용 프로그램을 실행합니다.

과정

  • 파일의 이름과 경로를 입력하여 실행합니다.

SetRedrawOff

도구모음 메뉴

메뉴에 없습니다.

SetRedrawOff 명령은 스크립트 동안에 화면 다시 그리기, 구성평면이나 카메라 변경을 방지합니다.

화면 다시 그리기를 다시 켜려면

SetRedrawOn

도구모음 메뉴

메뉴에 없습니다.

SetRedrawOn 명령은 스크립트 동안에 화면 다시 그리기, 구성평면이나 카메라 변경을 사용함으로 설정합니다..

화면 다시 그리기를 끄려면

Rhino 관련 스크립트에 대한 자세한 정보 참조: http://wiki.mcneel.com/rhino/basicmacros

RunPythonScript

도구모음 메뉴

도구모음에 없습니다.

도구

Python 스크립트 >

Run

RunPythonScript 명령은 Python 스크립트를 실행합니다.

Rhino.Python 프로그래머를 위한 온라인 참조 자료: http://developer.rhino3d.com/guides/rhinopython/.

-RunPythonScript

옵션

ResetEngine

Python 엔진이 다시 초기화되도록 강제로 설정합니다. 여러 파일과 연결된 Python 스크립트를 작성하고 테스트하는 경우에만 유용합니다.

EditPythonScript

EditPythonScript 명령은 Python 스크립트를 편집합니다.

Rhino 관련 스크립트에 대한 자세한 정보 참조: http://wiki.mcneel.com/developer/python.

 

 

Rhino for Mac © 2010-2017 Robert McNeel & Associates. 2017-8-09