Return info on selected object

Maybe something like this?

import rhinoscriptsyntax as rs

def TestExportObjectData():
    lenght=0.0
    msg="Select curves/surfaces to export data"
    objs = rs.GetObjects(msg,4+8+16,preselect=True)
    if not objs: return

    filter = "CSV File (*.csv)|*.csv||"
    filename = rs.SaveFileName("Save data file as", filter)
    if not filename: return

    file = open(filename, "w")
    for obj in objs:
        ID=str(obj)
        name=rs.ObjectName(obj)
        if rs.IsCurve(obj):
            length=rs.CurveLength(obj)
            file.write("{};{};{}\n".format(ID,name,length))
        else:
            area=rs.SurfaceArea(obj)
            vol=rs.SurfaceVolume(obj)
            acent=rs.SurfaceAreaCentroid(obj)
            vcent=rs.SurfaceVolumeCentroid(obj)
            if area:aa=area[0]
            else: aa=""
            if vol: vv=vol[0]
            else: vv=""
            if acent:ac=acent[0]
            else: ac=""
            if vcent: vc=vcent[0]
            else: vc=""
            file.write("{};{};{};{};{};{}\n".format(ID,name,aa,vv,ac,vc))
    file.close()

TestExportObjectData()
1 Like