import rhinoscriptsyntax as rs #rhino script importieren unter rs (sonst umstaendlich) #es wird "geputzt" vor jedem mal ausfuehren (keine duplikate) allobjects=rs.AllObjects() rs.DeleteObjects(allobjects) #variable definieren fuer gesamthoehe und texthoehe hgt=21 thgt=33 #text schreiben, thgt ist hier texthoehe letter_h=rs.AddText("h", (0,0,0), height=thgt, font="Impact") crv1=rs.ExplodeText(letter_h,True) [0] rs.SelectObject(crv1) rs.Command("_Rotate 0,0,0 10 _Enter") rs.Command("Move 0,0,0 0,23,0 _Enter") #kurve extrudieren mithilfe der variable hgt (hoehe) rs.Command("_ExtrudeCrv Solid=No {} _Enter".format(hgt)) rs.UnselectAllObjects() srf1=rs.FirstObject(select=True) #handles benutzen um die form zu veraendern #- vor dem befehl verhindert eine dialogbox rs.Command("-_Rebuild UPointCount=22 VPointCount=6 UDegree=3 VDegree=3 DeleteInput=Yes _Enter") #explodieren und handles einblenden rs.EnableObjectGrips(srf1,True) """ #loop spaeter wieder ausblenden, weil jetzt sind die nummern der gewuenschten punkte bekannt #object grips index durchnummerieren und in eine liste reinschreiben pointlist1=rs.ObjectGripLocations(srf1) print pointlist1 #loop damit alle punkte nummeriert werden (groessenunabhaengige beschriftung) #i ist der index (die nummer) und pt sind die koordinatenwerte, wo die beschriftung angezeigt wird #false weil dann nicht alles in die kommandozeile geschrieben werden muss for i,pt in enumerate(pointlist1): cmd="-Dot {} {} _Enter".format(str(i),str(pt)) rs.Command(cmd, False) """ #punkte bewegen - form verzerren rs.SelectObjectGrip(srf1,3) rs.Command("_Move 0,0,0 1,0,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf1,2) rs.Command("_Move 0,0,0 1,0,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf1,5) rs.Command("_Move 0,0,0 -1,0,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf1,4) rs.Command("_Move 0,0,0 -1,0,0 _Enter") rs.UnselectAllObjects() #abschliessend alle handles ausschalten rs.EnableObjectGrips(srf1,False) #das gleiche fuer den zweiten buchstaben letter_h=rs.AddText("M", (0,0,0), height=thgt, font="Impact") crv2=rs.ExplodeText(letter_h,True) [0] rs.SelectObject(crv2) rs.Command("_Rotate 0,0,0 10 _Enter") rs.Command("_ExtrudeCrv Solid=No {} _Enter".format(hgt)) rs.UnselectAllObjects() srf2=rs.FirstObject(select=True) rs.Command("-_Rebuild UPointCount=20 VPointCount=6 UDegree=3 VDegree=3 DeleteInput=Yes _Enter") rs.Command("Move 0,0,0 25,23,0 _Enter") rs.EnableObjectGrips(srf2,True) """ pointlist2=rs.ObjectGripLocations(srf2) print pointlist2 for i,pt in enumerate(pointlist2): cmd="-Dot {} {} _Enter".format(str(i),str(pt)) rs.Command(cmd, False) """ rs.SelectObjectGrip(srf2,17) rs.Command("_Move 0,0,0 -3,0,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf2,16) rs.Command("_Move 0,0,0 -3,0,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf2,48) rs.Command("_Move 0,0,0 3,0,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf2,52) rs.Command("_Move 0,0,0 3,0,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf2,56) rs.Command("_Move 0,0,0 2,-1,0 _Enter") rs.UnselectAllObjects() rs.EnableObjectGrips(srf2,False) #konturlinien in der horizontalen erstellen (0,0,1 ist der z-vektor, ergo die richtung) rs.SelectObject(srf1) rs.Command("Contour 0,0,0 0,0,1 3.0 _Enter") rs.Command("_ExtrudeCrv Solid=Yes 0.3 _Enter") #konturlinien in der vertikalen erstellen rs.SelectObject(srf1) rs.Command("Contour 0,0,0 1,0,0 1.2 _Enter") rs.Command("Pipe 0.2 _Enter") #das gleiche fuer den zweiten buchstaben rs.SelectObject(srf2) rs.Command("Contour 0,0,0 0,0,1 3.0 _Enter") rs.Command("_ExtrudeCrv Solid=Yes 0.3 _Enter") rs.SelectObject(srf2) rs.Command("Contour 0,0,0 1,0,0 1.2 _Enter") rs.Command("Pipe 0.2 _Enter") #aufraeumen rs.DeleteObject(srf1) rs.DeleteObject(srf2) open=rs.Command("_SelOpenPolySrf _Enter") rs.Command("_Delete _Enter") crvs=rs.Command("_SelCrv _Enter") rs.Command("_Delete _Enter")