In a macro I can run: “line b”, and i will run the line function with the both sides option, in one step.
But if I have a python script and I execute it using an alias like “myline”, can I have “myline 100” where 100 is a variable used inside the script?
yes, if your python script is asking for a variable eg. a number, this number can be used as a variable. Below example asks for a length, if you enter it or pass it after your command alias, a vertical line is created at the origin with the entered or passed length:
import Rhino import scriptcontext import rhinoscriptsyntax as rs def DoSomething(): '''prompt for a number and create vertical line at origin''' # prompt for a line length tolerance = scriptcontext.doc.ModelAbsoluteTolerance length = rs.GetReal("LineLength", 10.0, minimum=tolerance) if not length: return # create a line p0 = Rhino.Geometry.Point3d(0, 0, 0) p1 = Rhino.Geometry.Point3d(0, 0, length) line = Rhino.Geometry.Line(p0, p1) # add to document scriptcontext.doc.Objects.AddLine(line) scriptcontext.doc.Views.Redraw() if __name__=="__main__": DoSomething()
Great! I understand, thank you!