Skip to content

Instantly share code, notes, and snippets.

@Flobin
Created February 8, 2017 20:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Flobin/8901e6146d2efd123baa4cef6d1c09e9 to your computer and use it in GitHub Desktop.
Save Flobin/8901e6146d2efd123baa4cef6d1c09e9 to your computer and use it in GitHub Desktop.
import rhinoscriptsyntax as rs
ribs_1 = rs.GetObjects("Select Ribs_1", 16)
ribs_2 = rs.GetObjects("Select Ribs_2", 16)
thickness = rs.GetReal("Material thickness")
length_ribs_1 = len(ribs_1)
length_ribs_2 = len(ribs_2)
print length_ribs_1
print length_ribs_2
for i in range(0,length_ribs_1):
for j in range(0,length_ribs_2):
int_line = rs.IntersectBreps(ribs_1[i],ribs_2[j])
if int_line:
check_int = rs.IsLine(int_line)
if check_int:
length_line = rs.CurveLength(int_line)
if length_line > 0.01:
extend_line = rs.ExtendCurveLength(int_line, 0, 2, length_line)
mid_point = rs.DivideCurve(extend_line, 2, False)
cylinder_1 = rs.AddCylinder(mid_point[1], mid_point[2], thickness/2, True)
cylinder_2 = rs.AddCylinder(mid_point[1], mid_point[0], thickness/2, True)
rs.CurrentLayer("Ribs_2")
split_1 = rs.SplitBrep(ribs_2[j], cylinder_1, True)
ribs_2[j] = split_1[0]
rs.CurrentLayer("Ribs_1")
split_2 = rs.SplitBrep(ribs_1[i], cylinder_2, True)
ribs_1[i] = split_2
delete_cylinder_1 = rs.DeleteObject(cylinder_1)
delete_cylinder_2 = rs.DeleteObject(cylinder_2)
delete_surface_1 = rs.DeleteObject(split_1[1])
delete_surface_2 = rs.DeleteObject(split_2[1])
delete_line = rs.DeleteObject(extend_line)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment