# Erklaerung Video von Student """ Schritt 1: geschlossene Kurven in 2D zeichnen Schritt 2: diese geschlossenen Kurven dann mit dem Befehl extrude extrudieren auf beliebige Hoehe Schritt 3: Punkte aktivieren und somit die Form beliebig veraendern Schritt 4: in der Frontansicht Formen aus den bestehenden herausschneiden Schritt 5: die 2 dadurch entstandenen Loecher verbinden und die Verbindung anpassen wie man will Schritt 6: einzelne Geschossplatten machen und bestehende Extrusion loeschen Schritt 7: vertikale Stuetzen machen, damit das Gebaeude nicht zusammenfaellt """ # Anfang hue1 import rhinoscriptsyntax as rs #rhinoscriptsyntax braucht man um Rhinobefehle im Phytonscript verfuegbar zu machen #dient nur zur Abkuerzung, dass man spaeter nicht immer rhinoscriptsyntax schreiben muss allobjs = rs.AllObjects() rs.DeleteObjects(allobjs) #loescht alle Objekte, die vorher da waren initial1 = "L" initial2 = "S" #Variable statt dem Buchstaben selbst hgt=24 #ist die Variable fuer die Extrusion hgt2=30 size = 40 """ rs.Command("_Curve Degree=2 0,0,0 20,-1,0 20,12,0 0,10,0 Close _Enter") #ist zum zeichnen der Kurven #Command ist dasselbe wie die Leiste oben bei Rhino, wenn mans zeichnen wuerde #in die Klammer gibt man genau das, was man gezeichnet haette, ein crv = rs.FirstObject(select=True) #ist zum auswaehlen, damit er auch weiss, was wir extrudieren muessen #haben wir einer Variable zugeordnet """ #statt Kurve kommt jetzt Buchstabe mytext = rs.AddText(initial1,(0,0,0),height=size, font="Goudy Stout") crv = rs.ExplodeText(mytext,True)[0] #damit Text zu einer Kurve wird braucht man ExplodeText Befehl #crv heisst, dass da eine Liste kommt, weil man ja eine Innen und eine Aussenlinie hat, wie z.B. beim B #die 0 in Klammer bedeutet, dass wir nur das nullte Element wollen: also nur 1 Kurve rs.SelectObject(crv) rs.Command("-_ExtrudeCrv Solid=No DeleteInput=Yes {} _Enter".format(hgt)) #DeleteInput=Yes brauche ich wegen Rhino7 --> man muss die Kurve unten vorher loeschen --> sonst checkt rhino nicht #ist zum extrudieren dieser Kurve #ebenfalls genau dasselbe wie man bei der Leiste eingeben wuerde #den Wert von der Extrusion mit geschwungener Klammer ersetzen und eine Variable definieren --> {}.format(Variable) --> Variable oben definieren srf = rs.FirstObject(select=True) #ist zum auswaehlen, damit er auch weiss, was er nehmen muess #haben wir einer Variable zugeordnet rs.Command("-_Rebuild UPointCount=10 VPointCount=4 UDegree=3 VDegree=3 DeleteInput=Yes _Enter") #- vor dem Befehl bedeutet, dass kein Dialogfenster geoeffnet wird; es bleibt in der Commandzeile rs.EnableObjectGrips(srf, True) #um Punkte einzuschalten """ pointlist = rs.ObjectGripLocations(srf) print pointlist #brauchen wir um die Punkte in eine Liste zu bringen for i,pt in enumerate(pointlist): cmd = "-_Dot {} _Enter".format(str(i),str(pt)) rs.Command(cmd,False) #ist eine Schleife fuer alle Punkte unseres Objekts #enumerate nummeriert die Punkte auch noch zusaetzlich #ist um uns die Punkte auzuzeigen """ rs.SelectObjectGrip(srf,23) rs.SelectObjectGrip(srf,35) #Auswaehlen eines Punktes an unserem Objekt rs.Command("-_Move 0,0,0 0,10,0 _Enter") #Bewegung dieses Punktes rs.UnselectAllObjects() #dasselbe mit einem anderen Punkt rs.SelectObjectGrip(srf,20) rs.Command("_Move 0,0,0 15,0,0 _Enter") rs.UnselectAllObjects() rs.SelectObject(srf) rs.Command("_Contour 0,0,0 0,0,1 3.0 _Enter") #ist fuer die Geschossplatten fuer die Position rs.Command("_ExtrudeCrv Solid=Yes 0.3 _Enter") #kopiert von oben --> ist fuer die Dicke der Geschossplatten rs.SelectObject(srf) #auswaehlen vom Objekt mit zugeordneter Variable rs.Command("_Contour 0,0,0 1,0,0 2.0 _Enter") #ist fuer die vertikalen Stuetzen rs.Command("_Pipe 0.2 _Enter") #um die Stuetzen rund zu machen rs.DeleteObject(srf) #loescht die Huelle, die wir uns zur Hilfe genommen haben #dasselbe mit Buchstabe S rs.UnselectAllObjects() mytext = rs.AddText(initial2,(46,23,0),height=45, font="Magneto") crv = rs.ExplodeText(mytext,True)[0] rs.SelectObject(crv) rs.Command("_ExtrudeCrv Solid=No DeleteInput=Yes {} _Enter".format(hgt2)) srf = rs.FirstObject(select=True) rs.Command("-_Rebuild UPointCount=16 VPointCount=7 UDegree=3 VDegree=3 DeleteInput=Yes _Enter") rs.EnableObjectGrips(srf, True) rs.SelectObjectGrip(srf,29) rs.Command("-_Move 0,0,0 -10,0,0 _Enter") rs.UnselectAllObjects() rs.SelectObjectGrip(srf,57) rs.SelectObjectGrip(srf,107) rs.Command("_Move 0,0,0 0,-15,0 _Enter") rs.UnselectAllObjects() rs.SelectObject(srf) rs.Command("_Contour 0,0,0 0,0,1 3.0 _Enter") rs.Command("_ExtrudeCrv Solid=Yes 0.4 _Enter") rs.SelectObject(srf) rs.Command("_Contour 0,0,0 1,0,0 3.0 _Enter") rs.Command("_Pipe 0.2 _Enter") rs.DeleteObject(srf)