DivideAlongCreases in script

Hi @dale

How do I get the functionality of DivideAlongCreases command from RhinoCommon or rhinoscriptsyntax?

Hi @eirannejad,

Something like this should work:

#! python 3
import Rhino
import scriptcontext as sc
import System

def DivideAlongCreases():

    # Divides surfaces at tangent locations
    split_at_kinks = True
    # Divides surfaces at kinks
    split_at_tangents = True

    obj_type = Rhino.DocObjects.ObjectType.Surface | Rhino.DocObjects.ObjectType.PolysrfFilter
    rc, obj_ref = Rhino.Input.RhinoGet.GetOneObject("Select surfaces or polysurfaces to divide along creases", False, obj_type)
    if rc != Rhino.Commands.Result.Success: 
        return

    brep = obj_ref.Brep()
    if brep is None: 
        return

    brep_copy = brep.DuplicateBrep()
    face_count = brep_copy.Faces.Count
    if split_at_kinks:
        brep_copy.Faces.SplitKinkyFaces(System.Math.PI / 180.0, False)
    if split_at_tangents:
        brep_copy.Faces.SplitFacesAtTangents()
    if brep_copy.Faces.Count != face_count:
        brep_copy.Compact()
        sc.doc.Objects.AddBrep(brep_copy, None, None, False, False)
        sc.doc.Views.Redraw()

if __name__ == "__main__":
    DivideAlongCreases()    

DivideAlongCreases.py (1.0 KB)

– Dale