Curved Box
3 Aks ile şişirilmiş bir kutu oluşturan script.
Option Explicit
Sub InflatedBox()
 Dim recIn, dblValue, boxOut
 Dim strResult, arrOptions(3)
 recIn = Rhino.GetBox()
 If IsNull(recIn) Then Exit Sub
 strResult = Rhino.GetSettings(Rhino.InstallFolder & "Gelfling.ini", "InflatedBox", "Pressure")
 If IsNull(strResult) Then dblValue = 50 Else dblValue = CDbl(strResult)
 arrOptions(0) = "Pressure"
 arrOptions(1) = "Pick"
 arrOptions(2) = "Accept"
 arrOptions(3) = "Quit"
 boxOut = "Nothing"
 Do
  Rhino.EnableRedraw vbFalse
  Rhino.DeleteObject boxOut
  boxOut = AddInflatedBox(recIn, dblValue/100)
  Rhino.EnableRedraw vbTrue
  If IsNull(boxOut) Then Exit Sub
  strResult = Rhino.GetString("Inflated box [" & dblValue & "]", "Accept", arrOptions)
  If IsNull(strResult) Then strResult = "Quit"
  If IsNumeric(strResult) Then
   dblValue = CDbl(strResult)
  Else
   Select Case UCase(Left(strResult, 2))
   Case "PR"
    strResult = Rhino.GetReal("Specify a new pressure", dblValue)
    If Not IsNull(strResult) Then dblValue = strResult
   Case "PI"
    recIn = Rhino.GetBox()
    If IsNull(recIn) Then Exit Sub
   Case "AC"
    Exit Do
   Case "QU"
    Rhino.DeleteObject boxOut
    Exit Sub
   End Select
  End If
 Loop
 Rhino.SaveSettings Rhino.InstallFolder & "Gelfling.ini", "InflatedBox", "Pressure", CStr(dblValue)
End Sub
InflatedBox
Function AddInflatedBox(BBox, dblFactor)
 AddInflatedBox = Null
 Dim Sides(5), jBox
 Dim X, Y, Z
 
 X = Rhino.Distance(BBox(0),BBox(1))
 Y = Rhino.Distance(BBox(0),BBox(3))
 Z = Rhino.Distance(BBox(0),BBox(4))
 Sides(0) = CreateBlankFace(X, Y, dblFactor): If IsNull(Sides(0)) Then Exit Function
 Sides(1) = CreateBlankFace(X, Y, dblFactor): If IsNull(Sides(0)) Then Exit Function
 Sides(2) = CreateBlankFace(X, Z, dblFactor): If IsNull(Sides(0)) Then Exit Function
 Sides(3) = CreateBlankFace(X, Z, dblFactor): If IsNull(Sides(0)) Then Exit Function
 Sides(4) = CreateBlankFace(Y, Z, dblFactor): If IsNull(Sides(0)) Then Exit Function
 Sides(5) = CreateBlankFace(Y, Z, dblFactor): If IsNull(Sides(0)) Then Exit Function
 
 Rhino.OrientObject Sides(0), Array(Array(0,0,0), Array(X,0,0), Array(X,Y,0)), Array(BBox(4), BBox(5), BBox(6))
 Rhino.OrientObject Sides(1), Array(Array(0,0,0), Array(X,0,0), Array(X,Y,0)), Array(BBox(1), BBox(0), BBox(3))
 Rhino.OrientObject Sides(2), Array(Array(0,0,0), Array(X,0,0), Array(X,Y,0)), Array(BBox(0), BBox(1), BBox(5))
 Rhino.OrientObject Sides(3), Array(Array(0,0,0), Array(X,0,0), Array(X,Y,0)), Array(BBox(7), BBox(6), BBox(2))
 Rhino.OrientObject Sides(4), Array(Array(0,0,0), Array(X,0,0), Array(X,Y,0)), Array(BBox(1), BBox(2), BBox(6))
 Rhino.OrientObject Sides(5), Array(Array(0,0,0), Array(X,0,0), Array(X,Y,0)), Array(BBox(3), BBox(0), BBox(4))
 jBox = Rhino.JoinSurfaces(Array(Sides(0), Sides(2), Sides(3), Sides(4), Sides(5), Sides(1)), vbTrue)
 AddInflatedBox = jBox
End Function
Function CreateBlankFace(X, Y, dblFactor)
 CreateBlankFace = Null
 If dblFactor = 0 Then
  CreateBlankFace = Rhino.AddSrfPt(Array(Array(0,0,0), _
              Array(X,0,0), _
              Array(X,Y,0), _
              Array(0,Y,0)))
  Exit Function
 End If
 Dim Arcs(3), PtS, ptE, ptM
 Dim lastID, newID
lastID = Rhino.FirstObject
 ptS = Array(0,0,0) : ptE = Array(X,0,0)
 ptM = Array(X/2, 0-dblFactor, dblFactor)
 Arcs(0) = Rhino.AddArc3Pt(ptS, ptE, ptM)
 ptS = Array(X,0,0) : ptE = Array(X,Y,0)
 ptM = Array(X+dblFactor, Y/2, dblFactor)
 Arcs(1) = Rhino.AddArc3Pt(ptS, ptE, ptM)
 ptS = Array(X,Y,0) : ptE = Array(0,Y,0)
 ptM = Array(X/2, Y+dblFactor, dblFactor)
 Arcs(2) = Rhino.AddArc3Pt(ptS, ptE, ptM)
 ptS = Array(0,Y,0) : ptE = Array(0,0,0)
 ptM = Array(0-dblFactor, Y/2, dblFactor)
 Arcs(3) = Rhino.AddArc3Pt(ptS, ptE, ptM)
 Rhino.UnselectAllObjects
 Rhino.SelectObjects Arcs
 Rhino.Command "-_EdgeSrf", vbFalse
 Rhino.DeleteObjects Arcs
 newID = Rhino.FirstObject
 If newID = lastID Then newID = Null
 CreateBlankFace = newID
End Function
Ekleyen: Mad_Max
Kapalı
Eklediğim Dersler
Ders Kategorileri
Yeni Dersler (Tutorials)
 Armor Modelleme Armor Modelleme
 Ekleyen: Dereli
 Ücretsiz Zbrush Dersi. Ücretsiz Zbrush Dersi.
 Ekleyen: BurakB
 Corona Render ile Salon Görselleştirme Corona Render ile Salon Görselleştirme
 Ekleyen: barcelona1988
 Tek Bir Resimle Nasıl Sinematik Görüntü Ala Biliriz? Tek Bir Resimle Nasıl Sinematik Görüntü Ala Biliriz?
 Ekleyen: PixlandPictures
 After Effects - Script kullanmadan karakter rigleme After Effects - Script kullanmadan karakter rigleme
 Ekleyen: PixlandPictures
 3dsmax landscape_  Making of Part1 3dsmax landscape_  Making of Part1
 Ekleyen: altıneldiven
 Oyun yapımı dersleri 5 - Unity3D Sahne Duzeni Oyun yapımı dersleri 5 - Unity3D Sahne Duzeni
 Ekleyen: drekon