""" NOTE: - Reference to RhinoCommmon.dll is added by default - You can specify your script requirements like: # r: [, ] # requirements: [, ] For example this line will ask the runtime to install the listed packages before running the script: # requirements: pytoml, keras You can install specific versions of a package using pip-like package specifiers: # r: pytoml==0.10.2, keras>=2.6.0 - Use env directive to add an environment path to sys.path automatically # env: /path/to/your/site-packages/ """ #! python3 import rhinoscriptsyntax as rs import scriptcontext as sc import math import System import System.Collections.Generic import Rhino allobj = rs.AllObjects() rs.DeleteObjects(allobj) hgt = 120 # draw a closed curve # L: rs.Command("_Polyline 0,0,0 0,100,0 20,100,0 20,20,0 60,20,0 60,0,0 0,0,0 _Close _Enter") crvL = rs.FirstObject(select=True) # extrude rs.Command("-_ExtrudeCrv Solid=No DeleteInput=Yes {} _Enter".format(hgt)) srfL = rs.FirstObject(select=True) #rs.Command("_ExtrudeCrv Solid=No 140 _Enter") #srfL = rs.FirstObject(select=True) #handles rs.Command("-_Rebuild UPointCount=10 VPointCount=4 UDegree=3 VDegree=3 DeleteInput=Yes _Enter") rs.EnableObjectGrips(srfL, True) #pointlist = rs.ObjectGripLocations(srfL) #print pointlist #for i,pt in enumerate(pointlist): # cmd = "-Dot {} {} _Enter".format(str(i),str(pt)) # rs.Command(cmd,False) rs.SelectObjectGrip(srfL,16) rs.Command("-_Move 0,0,0 120,40,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srfL,35) rs.Command("-_Move 0,0,0 50,80,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srfL,24) rs.Command("-_Move 0,0,0 20,50,0 _Enter") rs.UnselectAllObjects() rs.EnableObjectGrips(srfL, False) # Lines Z-Direction + Extrude rs.Command("_Contour 0,0,0 0,0,1 3.0 _Enter") rs.Command("_ExtrudeCrv Solid=Yes 1.4 _Enter") # Lines X-Direction + Pipe rs.SelectObject(srfL) rs.Command("_Contour 0,0,0 1,0,0 2.0 _Enter") rs.Command("_Pipe 0.2 _Enter") rs.DeleteObject(srfL) # K: rs.Command("_Polyline 80,0,0 80,100,0 100,100,0 100,60,0 120,100,0 145,100,0 120,50,0 145,0,0 120,0,0 100,40,0 100,0,0 80,0,0 _Close _Enter")