Curve piping은 RDK를 이용하여 curve를 Pipe 형상으로 빠르게 렌더링 할 수 있는 플러그인이다. Edge softening 또한 각진 polysurface에서 모서리 부분을 작은 필렛이 된것처럼 부드럽게 렌더링해준다.
#curve piping download
http://en.wiki.mcneel.com/default.aspx/McNeel/CurvePiping.html
#SoftenEdge download
>http://en.wiki.mcneel.com/default.aspx/McNeel/EdgeSoftening.html
이 두 커맨드는 빠르게 쉐이딩해볼 수 있어 좋긴한데, 렌더메쉬를 추출하는 커맨드 ExtractPipedCurve, ExtractSoftenedEdgeMesh 가 여러개의 개체에서 사용할 수 없어 불편한 점이 있다.
## 이에 여러 개체에서 메쉬를 추출할 수 있는 간단한 스크립트를 작성하였다.
커맨드처럼 사용하고자 하는 경우 ExtractMeshes.rhp파일을 다운로드하여
사용하기 바란다. 커맨드 이름은 아래와 같다.
ExtractPipedCurves
ExtractSoftenedEdgeMeshes
** 스크립트 소스1 **
두 가지 스크립트 모두 똑같은 방법을 사용한다.
Option Explicit
Sub ExtractPipedCurves()
'변수선언
Dim arrObjects, strObject, i,arrTemp, arrMesh
'여러개의 커브 선택입력
arrObjects = Rhino.GetObjects ("Select curves to extract piped mesh",4)
' 예외처리
If IsNull(arrObjects) Then Exit Sub
ReDim arrMesh(UBound(arrObjects))
i=0
' 빠른실행을 위한 화면 정지
Rhino.EnableRedraw False
' 각 개체 별 커맨드 실행
For Each strObject In arrObjects
Rhino.selectObject strObject
Rhino.command "ExtractPipedCurve ", False
arrTemp = Rhino.LastCreatedObjects
arrMesh(i) = arrTemp(0)
Rhino.UnselectObject strObject
i=i+1
Next
'화면정지 해제
Rhino.EnableRedraw True
' 생성된 개체 선택
Rhino.SelectObjects arrMesh
End Sub
ExtractPipedCurves
** 스크립트 소스2 **
Option Explicit
Sub ExtractSoftenedEdgeMeshes()
Dim arrObjects, strObject, i,arrTemp, arrMesh
arrObjects = Rhino.GetObjects ("Select objects to extract softened edge mesh",8+16)
If IsNull(arrObjects) Then Exit Sub
ReDim arrMesh(UBound(arrObjects))
i=0
Rhino.EnableRedraw False
For Each strObject In arrObjects
Rhino.selectObject strObject
Rhino.command "ExtractSoftenedEdgeMesh ", False
arrTemp = Rhino.LastCreatedObjects
arrMesh(i) = arrTemp(0)
Rhino.UnselectObject strObject
i=i+1
Next
Rhino.EnableRedraw True
Rhino.SelectObjects arrMesh
End Sub
ExtractSoftenedEdgeMeshes
*Edge softening을 사용한 경우와 그렇지 않은 경우
No comments:
Post a Comment