How to run a python script with options?


#1

For example:
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?


#2

Hi @Bogdan_Chipara,

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()

_
c.


#3

Great! I understand, thank you!