Showing posts with label tips. Show all posts
Showing posts with label tips. Show all posts

May 22, 2013

Rhino5 | FilletEdge | 두 모서리가 만나는 경우





라이노5에서는 두 모서리가 만나는 경우도 필렛처리를 할 수 있습니다. 그러나 더 자연스러운 면처리를 위해 두 모서리가 만나는 부분의 필렛면을 수정하는 것이 필요합니다. 이 영상에서는 두 모서리가 만나는 경우 FilletEdge를 이용한 필렛면을 수정하는 방법을 설명합니다.


April 27, 2012

Modeling Tip | FlowAlongSrf - Adding details on curved srf

FlowAlongSrf는 여러방법으로 활용할 수 있는 라이노의 변형 툴중 대표적 커맨드입니다. 아래 동영상은 곡면의 모델링에 디테일을 추가할 때 FlowAlongSrf를 이용하여 효율적으로 모델링 할 수 있는 방법을 소개합니다.

April 8, 2010

Smooth on mesh object



박스에서 폴리곤 메쉬를 생성하여 메쉬에 Smooth 커맨드를 적용해 부드러운 곡면 형상으로 바꾸는 방법. 이때 메쉬를 Weld하게 되면 모서리도 부드럽게 보일 수 있다.

사용 커맨드
Box -> ExtrudeFace -> Mesh ->WeldVertices -> Smooth (many times)

October 1, 2009

Grasshopper | image sampler



Image sampler나 graph 컴포넌트를 사용할때 x,y도메인의 범위가 0-1이 기본으로 설정되어있는데, 이 범위를 바꿔서 사용하게 되면 그 범위를 입력값에 따라 달라지게 하는 것이 힘들다. 이러한 경우 입력전에 리스트이 최대값으로 나눠주고 출력이후에 다시 곱해주면 된다. 아래 예제는 이미지 샘플러를 이용한 예이다.




definition file : image_sampler.ghx

May 7, 2009

April 15, 2009

Technical drawing mode in page layout




Technical drawing display mode를 사용하면 간단히 은선제거를 할 수 있어 3D 모델에 바로 도면 작업을 하여 Make2D를 사용하는 것보다 훨씬 간단히 2D 도면을 작성할 수 있다.
그러나 Techincal drawing 으로 모드 변환 커맨드가 없어 여러 detail을 macro등으로 추가할때 불편한 경우가 있다. 이럴때 라이노스크립트를 이용하면 간단히 뷰전환이 가능하다.

Rhino.ViewDisplayModeEx Rhino.CurrentView(,False), "Technical"

물론 Arch Cut과 함께 사용하면 단면 드로잉도 편하게 작업이 가능하다. 이때 Section이 보이지 말아야 할 뷰에서 나타나는 경우가 있는데, HideInDetail / ShowInDetail 커맨드를 사용하면 해당 Detail에서만 오브젝트들을 숨기는 것이 가능하다.

February 15, 2009

RhinoScript | Print Layout pages to Pdf files with Bullzip Pdf printer

지난 주말 도면 작업을 할 일이 있어 Layout 기능을 활용해 쉽게 작업할 수 있었다. 그런데, 여러장의 Layout을 사용하다 보니, 일일히 프린트 하는 것이 문제가 될줄이야...
Rhino의 Print 커맨드가 여러장을 선택적으로 프린트 하는 기능이 없어, 여러가지 방법을 생각하다가 Pdf printer를 이용하는 방법을 시도해보았다.

Bullzip Pdf printer는 문서출력의 결과를 Pdf파일로 저장해주는 가상 프린터이다.여러종류의 pdf프린터가 있지만, Bullzip은 무료로 쓸수 있으면서도 많은 기능을 제공한다. COM/ActiveX interface도 제공하기에 스크립트를 이용한 자동화를 가능 하다.
http://www.bullzip.com/products/pdf/info.php

아래 스크립트를 이용하기 위해서는 Bullzip printer가 설치되어 있어야 한다. 그리고 Page Layout이 있어야 하며 모든 Layout을 pdf파일로 저장한다. 하나의 파일로 저장할지, 각각의 파일로 저장할지 선택할 수 있다. 물론 각 Layout의 프린터를 Bullzip pdf printer로 설정되어 있어야 한다. 프린트를 할때 뿐만 아니라 pdf파일을 생성하기 위한 도구로도 사용이 가능해보인다.


Option Explicit
'2009.2.15
'Script by Sanghoon Yoon @ +plastic
'http://www.byRhino3d.com | http://www.rhinos.co.kr | http://sac3.blogspot.com
'sac3yoon@gmail.com
'This script let Rhino to print all layout pages as pdf files through Bullzip pdf printer.
'Download Bullzip pdf printer @ http://www.bullzip.com/products/pdf/info.php

PrintLayoutAsPDF
Sub PrintLayoutAsPDF
Dim strSS
strSS = Rhino.GetString ("File option" , "As_one_Pdf", Array ("As_one_Pdf", "As_each_Pdf") )
If IsNull(strSS) Then Exit Sub
Select Case strSS
Case "As_one_Pdf"
SaveAsOnePdf
Case "As_each_Pdf"
SaveAsEachPdf
End Select
End Sub

Sub SaveAsEachPdf()
Dim strFile,strFolder, arrViews,fileName, strM
strM=""
strFolder = Rhino.BrowseForFolder
arrViews = Rhino.ViewNames (True ,1)
If IsNull(arrViews) Then Rhino.Print "No layout pages!" : Exit Sub
For Each fileName In arrViews
Rhino.CurrentView fileName
strFile=strFolder&fileName&".pdf"
BatchPrint strFile,strM
Rhino.Print strFile&" was created."
Next
End Sub

Sub SaveAsOnePdf()
Dim strFile,strFolder, arrViews,fileName
strFile= Rhino.SaveFileName ("Save as pdf" ,"pdf files (*.pdf)|*.pdf||" , "" , ,"pdf")
arrViews = Rhino.ViewNames (True ,1)
If IsNull(arrViews) Then Rhino.Print "No layout pages!" : Exit Sub
For Each fileName In arrViews
Rhino.CurrentView fileName
BatchPrint strFile,strFile
Next
Rhino.Print strFile&" was created."
End Sub

Function BatchPrint(strFile,strM)
Const PDF_PRINTERNAME = "Bullzip PDF Printer"
Const PRINTER_PROGID = "Bullzip.PDFPrinterSettings"
Dim prtidx, obj
'Configure the PDF print job
Set obj = CreateObject(PRINTER_PROGID)
obj.SetValue "mergefile",strM
obj.SetValue "mergeposition","bottom"
obj.SetValue "Output", strFile
obj.SetValue "ConfirmOverwrite", "no"
obj.SetValue "ShowSaveAS", "never"
obj.SetValue "ShowSettings", "never"
obj.SetValue "ShowPDF", "no"
obj.SetValue "RememberLastFileName", "no"
obj.SetValue "RememberLastFolderName", "no"
obj.WriteSettings True

Rhino.Command "-print go ",False

'Wait for runonce settings file to disappear
Dim runonce, fso
runonce = obj.GetSettingsFileName(True)
Set fso = CreateObject("Scripting.FileSystemObject")
While fso.FileExists(runonce)=True
Sleep 100
Wend
End Function

July 11, 2008

RhinoScript | Redraw Curve




* 커브 그리기 할때, 폐곡선을 그리려고 했는데 실수로 명령을 끝내버리는 실수를 종종하게 된다. 이러한 경우, 커브의 EndPoint를 옮겨 폐곡선을 만들거나 CloseCrv을 사용하게 되면 Periodic 커브가 아닌 폐곡선이 만들어진다.

* 커브 그리기 할때, 필요한 CP 갯수보다 적은 수로 커브를 만들어 InsertKnot, InsertControlPoint를 이용하여 포인트를 추가하게 된다. 그러나 이 경우 원하는 위치에 CP가 놓이지 않게 되거나 MakeUniform 명령을 추가로 사용해야 하는 경우가 있다.


아래는 위 두가지 경우에 사용할수 있는 간단한 라이노 스크립트이다. 사용법은 위 동영상에서 볼 수 있 듯이 -Runscript ( )를 이용하여 아이콘을 만들면 편리하다.


Option Explicit

Sub CurveRedraw()

   Dim strObject,dblDegree,arrPoints,strCmd,arrPoint,i

   strObject= Rhino.GetObject ("Select curve to redraw",4)
   If IsNull (strObject) Then Exit Sub
     If Rhino.IsCurveClosed(strObject) Then
     Rhino.Print "The object is a closed curve."
   Exit Sub
   End If

   arrPoints = Rhino.CurvePoints(strObject)
   dblDegree = Rhino.CurveDegree(strObject)


   Rhino.DeleteObject strObject
     Dim strE
       strE=" "
     If IsArray(arrPoints) Then
     For Each arrPoint In arrPoints
     If i=UBound(arrPoints) Then strE=""
     strCmd=strCmd&"W"&Pt2str(arrPoint)&strE
     Next
   End If
   Rhino.command "Curve Degree="&CStr(dblDegree)&" "&strCmd, False

End Sub

CurveRedraw

July 9, 2008

Shin guard with FlowAlongSrf



요즘 Shelling 작업 할 것들이 몇 가지 있다보니, 에전에 FlowAlongSrf를 이용했던 모델링이 생각난다. 지금 모델링 해야할 일은 이미 만들어진 모델의 수정이라 FlowAlongSrf를 사용 할 수 없는데다가 외관 데이터를 받아서 두께 작업만 하다보니 유난히 손이 많이 가는 조금은 괴로운 일이다. ㅡㅡ;

FlowAlongSrf를 잘 이용하면 모델링에서도 이 점이 있지만, 두께 작업에서는 정말 편리하다. 평면에서의 모델링은 아무래도 곡면에서 보다는 쉽게 두께 작업을 할 수 있다. FlowAlongSrf를 이러한 방버으로 이용할때 빼기구배(Draft angle)만 곡면에서 미리 확인하여 모델링한다면, 모델링 시간을 많이 줄일 수 있다. 아래 그림에서 보듯이 그림의 모델링은 왼쪽의 평면에서 두께까지 작업되어 FlowAlongSrf를 이용하여 곡면으로 옮겨졌다. 물론 처음 곡면을 펼치고 곡면 위에 드로잉하는 과정에서는 Squish가 활용되었다. 이 파트는 바이크용 부츠의 shin guard 파트 이다.

July 8, 2008

Squish.. FlowAlongSrf



바탕화면 파일을 정리하다가 지난 학기 수업 중에 Squish 와 FlowAlongSrf를 이용해 복곡면 위에 커브를 그리는 과정을 정리해둔 이미지가 있어 올려둔다.

*Squish 커맨드는 Advanced Flattening에서 다운받을 수 있다.아래 이미지는 지금은 중국에 가있는 '꼬질이'님이 예전에 수업 중에 같은 방법을 이용한 예이다. 렌더링은 Flamingo nXt를 이용하였다.

June 23, 2008

Grasshopper | Data culling pattern




Grasshopper 사용시 조건문으로 사용할수 있는 패턴 데이터 컬링에 대한 간단한 사용법이다.
실제 사용에서는 인덱스로 사용하게 되는 경우가 많을 듯 하다.
cull_pattern.wrm