import rhinoscriptsyntax as rs allobjs = rs.AllObjects() rs.DeleteObjects(allobjs) initial1 = "v" initial2 = "w" hgt= 39 size = 32 # draw a closed curve mytext = rs.AddText(initial1,(0,0,0),height=size, font="Arial") crv = rs.ExplodeText(mytext,True)[0] rs.SelectObject(crv) # extrude the curve rs.Command("-_ExtrudeCrv Solid=No DeleteInput=Yes {} _Enter".format(hgt)) srf = rs.FirstObject(select=True) # rebuild shape so the NURBS surface can be edited smoothly rs.Command("-_Rebuild UPointCount=10 VPointCount=4 UDegree=3 VDegree=3 DeleteInput=Yes _Enter") # enable handles and use them to change NURBS shape rs.EnableObjectGrips(srf, True) """ # For orientation, show how points are numbered (dot command) pointlist = rs.ObjectGripLocations(srf) for i,pt in enumerate(pointlist): cmd = "-Dot {} {} _Enter".format(str(i),str(pt)) rs.Command(cmd,False) """ rs.SelectObjectGrip(srf,23) rs.SelectObjectGrip(srf,35) rs.Command("-_Move 0,0,0 0,0,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf,12) rs.Command("-_Move 0,0,0 2,16,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf,32) rs.Command("-_Move 0,0,0 2,20,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf,24) rs.Command("-_Move 0,0,0 0,-20,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf,20) rs.Command("-_Move 0,0,0 5,0,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf,11) rs.Command("-_Move 0,0,0 0,15,0 _Enter") rs.UnselectAllObjects() rs.EnableObjectGrips(srf, False) # create contourlines in z-direction and extrude them rs.SelectObject(srf) rs.Command("Contour 0,0,0 0,0,1 3.0 _Enter") rs.Command("_ExtrudeCrv Solid=Yes 0.3 _Enter") # create contourlines in x-direction and use the pipe command rs.SelectObject(srf) rs.Command("Contour 0,0,0 1,0,0 2.0 _Enter") rs.Command("Pipe 0.2 _Enter") rs.DeleteObject(srf) #initial 2 mytext = rs.AddText(initial2,(35,0,0),height=size, font="Arial") crv = rs.ExplodeText(mytext,True)[0] rs.SelectObject(crv) rs.Command("-_ExtrudeCrv Solid=No DeleteInput=Yes {} _Enter".format(hgt)) srf = rs.FirstObject(select=True) rs.Command("-_Rebuild UPointCount=10 VPointCount=4 UDegree=3 VDegree=3 DeleteInput=Yes _Enter") rs.EnableObjectGrips(srf, True) """ pointlist = rs.ObjectGripLocations(srf) for i,pt in enumerate(pointlist): cmd = "-Dot {} {} _Enter".format(str(i),str(pt)) rs.Command(cmd,False) """ rs.SelectObjectGrip(srf,23) rs.SelectObjectGrip(srf,31) rs.Command("-_Move 0,0,0 4,-10,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf,20) rs.Command("-_Move 0,0,0 2,0,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf,0) rs.Command("-_Move 0,0,0 2,20,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf,8) rs.Command("-_Move 0,0,0 2,20,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf,28) rs.Command("-_Move 0,0,0 2,20,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf,24) rs.Command("-_Move 0,0,0 0,-15,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf,16) rs.Command("-_Move 0,0,0 -10,-10,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf,11) rs.Command("-_Move 0,0,0 0,4,0 _Enter") rs.UnselectAllObjects() rs.EnableObjectGrips(srf, False) rs.SelectObject(srf) rs.Command("Contour 0,0,0 0,0,1 3.0 _Enter") rs.Command("_ExtrudeCrv Solid=Yes 0.3 _Enter") rs.SelectObject(srf) rs.Command("Contour 0,0,0 1,0,0 2.0 _Enter") rs.Command("Pipe 0.2 _Enter") rs.DeleteObject(srf) rs.UnselectAllObjects()