分享 --- 这个两个好用脚本怎么用我在国外找来的

[复制链接]
跳转到指定楼层
204593 justoid 发表于 2017-2-8 01:52:43 楼主
本帖最后由 justoid 于 2017-2-8 02:26 编辑

http://blog.naver.com/PostView.n ... p;logNo=50072330255
*在俯臥的曲線,我試著畫一個封閉的曲線往往是丟棄命令完成錯誤是錯誤的。在這種情況下,通過移動曲線的端點創建閉合曲線或如果使用CloseCrv itjyo一個問題,即曲線不是閉合曲線的週期曲線製成,而不是意圖。

*在劃定曲線,當拉伸在少數的CP曲線做得比必要數量來添加使用InsertKnot,InsertControlPoint分。在這種情況下,然而,可能需要使用一個附加的CP不放置MakeUniform或命令到期望的位置。這裡是可以在上述兩個情況下使用一個簡單的Rhino腳本。當您使用作為-Runscript()圖標可以在視頻中可以看出上面的使用方便。TB haedu附加文件也可以使用污泥裝載文件TB ..


这个画线

-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
)








http://blog.naver.com/hutaisug/50072901663
这个是修剪
3점을 입력하면 그 점을 기준으로 하는 평면으로 오브젝트를 잘라주는 스크립트입니다.

점을 입력할때 클릭하는 방향에 따라 생셩되는 평면의 Normal방향이 달라져 잘려나가는 부분이 바뀌게 됩니다.

Option Explicit
'2008.12.10
'Script by sac3@rhinos.co.kr

CutSolid
Sub CutSolid ()

Dim arrObjects, arrPoints, arrVector1, arrVector2, arrBD, strCut

arrObjects = Rhino.GetObjects ("Select Solids to Cut",8+16,vbTrue,vbTrue)
  If IsNull(arrObjects) Then Exit Sub

arrPoints = Rhino.GetPoints (True, False , "Pick 3 Points",, 3 )
  If IsNull(arrPoints) Then Exit Sub
  If UBound(arrPoints) <2 Then Exit Sub

  Rhino.EnableRedraw False

  arrVector1= Rhino.VectorCreate (arrPoints(0), arrPoints(1) )
  arrVector2= Rhino.VectorCreate (arrPoints(0), arrPoints(2) )
  strCut = Rhino.AddCutPlane (arrObjects, arrPoints(0), arrPoints(1) , arrVector2)
  arrBD = Rhino.BooleanDifference (arrObjects, Array(strCut) )
  
  If IsArray(arrBD) Then
      Rhino.ShrinkTrimmedSurface arrBD(0)  
       Rhino.SelectObjects arrBD
    Else
      Rhino.DeleteObject strCut
      Rhino.Print "Failed to Cut"
  End If

Rhino.EnableRedraw True

End Sub




참고로 평면들이 서로 겹친 부분들이 있는 경우 BooleanUnion을 하고나면, 그 부분이 면이 나눠져 있게되는데 그 부분을 하나의 면으로 합쳐주기 위해서는 MergeAllFaces 커맨드를 사용하면 됩니다.
동영상에서는 두 커맨드를 macro를 이용하여 한번에 실행되도록 해둔것입니다.

! _BooleanUnion pause
_SetRedrawOff _SelLast
_MergeAllFaces _SelNone
_SetRedrawOn



















CurveRedraw.rar

1.19 KB, 下载次数: 207

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
关于大陆地区Rhino原厂培训中心
筑梦NARUTO 发表于 2017-2-8 11:18:33
2
用rhinoscript打开就可以运行了呀
toplay 发表于 2017-2-11 11:24:27
3
果然是国外来的,我看不懂,哈哈
您需要登录后才可以回帖 登录 | 注册成为会员

本版积分规则