얼마 전 MeshHighlightField 커맨드를 활용하여 타이어 패턴 디자인 이미지의 그라디언트로 부조형상을 만들어 모델링 작업을 최소화하여 3D프린팅이 가능하도록 프로세스 설정하는 교육을 진행하였다. 필요한 형상의 높이 변화에 알맞는 그라디언트 이미지를 조금 쉽게 만들 수 있는 스크립트를 만들어 사용하였는데, x,y좌표 (0,0)에서 (10,10)사이에 하나의 커브를 그려주면 y값 0-10을 밝기 0-255로 변환하여 이미지 그라디언트를 만들어 준다.
다음 스크립트는 GDI bitmap extension인 RhPicture를 사용하기에 설치되어있어야 사용가능하다. http://wiki.mcneel.com/developer/rhinoscriptimageextension 그리고 LineCurveIntersection method를 사용하기에 라이노 V5에서 사용할 수 있다. V4용으로는 일부 수정이 필요하다.
Option explicit
Call Main()
Sub Main()
Dim strCrv
strCrv = Rhino.GetObject("Select a gradient curve", 4, True)
If isNull(strCrv) Then Exit Sub
Dim arrFace(0), arrVertices(3)
Dim i, x, arrLine, arrCX, arrP, lngColor, H, arrC, j
Dim RhPicture
Set RhPicture = Rhino.GetPluginObject("RhPicture")
Call RhPicture.CreateImage(200, 255, vbWhite)
For i=0 To 255
x = i / 25.5
arrLine = array(array(x, 0, 0), array(x, 10, 0))
arrCX = Rhino.LineCurveIntersection(arrLine, strCrv)
If isArray(arrCX) Then
arrP = arrCX(0, 1)
H = round(arrP(1) * 25.5)
lngColor = RGB(H, H, H)
For j=0 To 200
Call RhPicture.SetPixel(j, 255 - i, lngColor)
Next
End If
Next
Call RhPicture.ShowImage("Black&White Gradient")
Set RhPicture = Nothing
End Sub
No comments:
Post a Comment