Esempio n. 1
0
def exportAllPlansToCAD():
    if rs.IsLayer("6_DRAWINGS"):
        children = rs.LayerChildren("6_DRAWINGS")
        items = []
        for child in children:
            items.append(rs.LayerName(child, False))
        #level = rs.ComboListBox(items)
        print rs.DocumentPath()
        pathParts = rs.DocumentPath().split("\\")
        if pathParts[0] == "P:":
            defaultPath = pathParts[0] + "\\" + pathParts[
                1] + "\\" + pathParts[2] + "\\" + pathParts[3]
            folder = rs.BrowseForFolder(
                folder=defaultPath,
                message="Select Folder to export plans.",
                title="Export Plans")
        else:
            folder = rs.BrowseForFolder()
        RhinoFile = rs.DocumentName()
        rhinoName = RhinoFile.split(".")[0] + "_P_"

        for item in items:
            levelNum = item.split("_")[-1]
            fileName = "\\" + rhinoName + levelNum + ".dwg"
            savePath = folder + fileName
            #savePath = rs.SaveFileName("Save", "Autocad (*.dwg)|*.dwg||")
            if savePath is not None:
                exportPlanToCAD(item, savePath)
    else:
        print "No plans currently cut. Use CutPlans."
    return
Esempio n. 2
0
 def Export(Object):
     folder = rs.BrowseForFolder("Questo PC",
                                 "seleziona dove vuoi salvare i tuoi file")
     folder = folder + "\\" + "parafango"
     print str(folder)
     CSVwrite(Object[0], folder)
     exportBrep(Object[1], folder)
Esempio n. 3
0
def GetExportPath(is_interactive):
    if sc.doc.ActiveDoc.Path is None or sc.doc.ActiveDoc.Name is None:
        print("Save document before exporting")
        return

    # NOTE: [:-4] removes ActiveDoc.Name suffix ".3dm"
    name = sc.doc.ActiveDoc.Name[:-4]
    path = sc.doc.ActiveDoc.Path[:-4]
    if is_interactive:
        path = rs.BrowseForFolder(
            folder=os.path.dirname(path),
            title="RePort",
            message="Choose root folder for exported files...")  # Known safe
        if path is None:
            # User cancelled out of location selection
            return
        name = os.path.split(path)[1]
    else:
        shutil.rmtree(path, True)
        os.mkdir(path)
        # BUG: If directory already exists os.mkdir may raise error.
        # NOTE: Directory deletion still succeedes, and subsequent run
        # will not raise an error.

    return path, name
Esempio n. 4
0
def ChooseFolderPath():
    """
    pick a folder to save the renderings to
    return the folder
    """
    folder = rs.BrowseForFolder(rs.DocumentPath, "Browse for folder", "Batch Render")
    return folder
Esempio n. 5
0
def objBatchExport():
    selection = rs.GetObjects(preselect=True)
    folder = rs.BrowseForFolder(rs.WorkingFolder())

    rs.EnableRedraw(False)
    for i, obj in enumerate(selection):
        e_file_name = "{}-{}.obj".format("habibi", i)
        rs.UnselectAllObjects()
        rs.SelectObject(obj)
        rs.Command('-_Export "{}" _Enter'.format(e_file_name), True)
    rs.EnableRedraw(True)
def main():
    path = rs.BrowseForFolder()
    if path is None: return
    
    newFolderName = rs.StringBox(default_value='180710_TEST_01')
    newFolder = os.path.join(path,newFolderName)
    
    if not os.path.exists(newFolder):
        os.mkdir(newFolder)    
    
    objs = rs.VisibleObjects()
    
    #ExportEachLayerAsSat(objs, newFolder, newFolderName)
    #ExportEachLayerAs3DS(objs, newFolder, newFolderName)
    #ExportEachLayerAsDAE(objs, newFolder, newFolderName)
    #ExportEachLayerAsIGES(objs, newFolder, newFolderName)
    #ExportEachLayerAsOBJ(objs, newFolder, newFolderName)
    ExportAsSKP(objs, newFolder, newFolderName)
def viewCaptureToFile():
    namedViews = rs.NamedViews()
    items = []
    for view in namedViews:
        items.append([view, False])
    returnedVals = rs.CheckListBox(items, "Select Views to Export", "Extract Views")
    if returnedVals is None: return
    
    chosenViews = []
    for val in returnedVals:
        if val[1]:
            chosenViews.append(val[0])
    if len(chosenViews) < 1: return
    
    path = rs.BrowseForFolder(message = "Choose Folder to export to")
    
    if path is None: return
    
    width = rs.GetInteger("Image Width in Pixels", number = 1920, minimum = 600, maximum = 10000)
    if width is None: return
    height = .625 * width
    
    rs.AddNamedView("temp")
    
    now = datetime.date.today()
    dateList = []
    if len(str(now.month))>1:
        month = str(now.month)
    else:
        month = "0"+str(now.month)
    if len(str(now.day))>1:
        day = str(now.day)
    else:
        day = "0"+str(now.day)
    time = str(now.year)+month+day
    
    for x in chosenViews:
        rs.RestoreNamedView(x)
        fileName = "\\" + str(time) + "_" + x + ".jpg"
        filePath = path + fileName
        rs.Command("_-ViewCaptureToFile  " + str(filePath) + " w " + str(width) + " h " + str(height) + " _Enter")
    rs.RestoreNamedView("temp")
    rs.DeleteNamedView("temp")
Esempio n. 8
0
def RunCommand(is_interactive, distance_to_piece=10):
    # Top part
    hole = cumread.get_polyline('/Users/itq/rhinoscript/hole.nc')
    piece_top = cumread.get_polyline()
    bl = get_bottom_left(piece_top)
    rs.MoveObject(piece_top, [-bl.X+distance_to_piece, 
                              -bl.Y+distance_to_piece,
                              0])

    new_hole = rs.CopyObject(hole)
    tr = get_top_right(piece_top)
    new_hole_x = round_to_next_hole(tr.X+distance_to_piece)
    new_hole_y = round_to_next_hole(tr.Y+distance_to_piece)
    rs.MoveObject(new_hole, [new_hole_x, new_hole_y, 0])

    connected = connect_polylines([hole,new_hole,piece_top])
    dirname = rs.BrowseForFolder("/Users/itq/Dropbox/cam/v2/")
    top_filename = 'shapeoko_top_holeX0_holeY0_holeX{}_holeY{}.nc'.format(hole_index(new_hole_x), hole_index(new_hole_y))
    bottom_filename = 'shapeoko_bottom_holeX0_holeY20_holeX{}_holeY{}.nc'.format(hole_index(new_hole_x), 20-hole_index(new_hole_y))
    cumsave.save(connected, 0, 0, os.path.join(dirname,top_filename))
    # Bottom part
    piece_bottom = cumread.get_polyline()
    rs.MoveObject(piece_bottom, [-bl.X+distance_to_piece, 
                                 bl.Y-distance_to_piece,
                                 0])
    cumsave.save(piece_bottom, 0, 20,  os.path.join(dirname, bottom_filename))

    """
    obj = rs.GetObject("Select a polyline")
    if not rs.IsPolyline(obj):
        return

    filename = rs.SaveFileName ("Save", "CarbideMotion (*.nc)|*.nc||")
    with open(filename,'w') as f:
        program_start(f.write)
        points = rs.PolylineVertices(obj)
        for point in points: 
            f.write("X{:.3f}Y{:.3f}Z{:.3f}\n".format(point.X, point.Y, point.Z))
        program_end(f.write)
    """
    print('file sucessfully saved')
def main ():
    
    #snapshots = sc.doc.Snapshots.Names
    layerstates = sc.doc.NamedLayerStates.Names
    namedviews = sc.doc.NamedViews
    
    view_count = 0

    PIXwidth = rs.GetInteger("Width [px] = ",1600)
    PIXheight = rs.GetInteger("Height [px] = ",900)
    
    folder = rs.BrowseForFolder(message="Select destination folder") 

    for view in namedviews:
    
        namedviews.Restore(view_count,sc.doc.Views.ActiveView.ActiveViewport)
        view_count += 1
        for state in layerstates:
            imagename = (str(state) + "_" + view.Name + ".png")
            imagepath = folder + "\\" + imagename
            Rhino.RhinoApp.RunScript("-_Layerstatemanager _Restore \"" + state + "\" _Enter _Enter", False)
            Capture (imagepath,PIXwidth,PIXheight)
            
    rs.MessageBox("All images were added to " + folder,0,"Congrats")
Esempio n. 10
0
 def Export(Object):
     folder = rs.BrowseForFolder(
         "Questo PC", "seleziona dove vuoi salvare i tuoi file")
     CSVwrite(Object[0], folder)
     exportBrep(Object[1], folder)
#Automating A Tower Massing and Exporting it to separate files

import rhinoscriptsyntax as rs
import Rhino

#Load Grasshopper Plugin as gh
gh = Rhino.RhinoApp.GetPlugInObject("Grasshopper")

#SetSliderValue("GUID",Number)
#BakeDateInObject("GUID")

rs.EnableRedraw(True)

#set working directory
workingDir = rs.BrowseForFolder(None, "Pick a foler to save your files in")
rs.WorkingFolder(workingDir)

#create variable for file naming
num = 0

for i in range(1, 3, 1):
    #BaseSize Slider
    gh.SetSliderValue("GUID_FOR_SLIDER_1", i)
    for j in range(0, 4, 1):
        #Rotation Slider
        gh.SetSliderValue("GUID_FOR_SLIDER_2", j)
        for k in range(3, 5, 1):
            #NumberOfSides Slider
            gh.SetSliderValue("GUID_FOR_SLIDER_3", k)
            gh.RunSolver("FILENAME.gh")
def setup():
    cfg = {}
    cfg['do_capture_fill'] = True
    delete_residual_display_modes()

    ## properties dialog
    #
    props = [("view_count", DEFAULT_VIEW_COUNT), ("image_size", 512),
             ("zoom_padding_percent", "-10,10,75"),
             ("iso (NE, NW, SE, or SW)", "SE"), ("do_scale_1d", "y"),
             ("do_scale_2d", "y"), ("do_shear", "n"),
             ("render_or_capture", "capture"), ("worms_eye?", "n")]
    prop_box_results = False
    if DEBUG: prop_box_results = [p[1] for p in props]
    if not prop_box_results:
        itms, vals = [p[0] for p in props], [p[1] for p in props]
        prop_box_results = rs.PropertyListBox(
            itms, vals, "Please set the following properties.",
            "Rhino Batch Render")
        if prop_box_results is None: exit()

    try:
        cfg['view_count'] = int(prop_box_results[0])
        cfg['size'] = int(prop_box_results[1])
        cfg['obj_bbox_pads'] = [
            int(s) * 0.01 for s in prop_box_results[2].split(',')
        ]
        cfg['iso_select'] = str(prop_box_results[3]).lower()
        cfg["do_scale_1d"] = str(prop_box_results[4]).lower() in ("y", "yes",
                                                                  "true", "t",
                                                                  "1")
        cfg["do_scale_2d"] = str(prop_box_results[5]).lower() in ("y", "yes",
                                                                  "true", "t",
                                                                  "1")
        cfg["do_shear"] = str(prop_box_results[6]).lower() in ("y", "yes",
                                                               "true", "t",
                                                               "1")
        cfg["do_render_via_view_cap"] = str(
            prop_box_results[7]).lower().startswith("c")
        cfg["do_worms_eye"] = str(prop_box_results[8]).lower() in ("y", "yes",
                                                                   "true", "t",
                                                                   "1")

    except Exception as e:
        big_problem(
            "There was a problem parsing the values given in the properties dialog.\n{}"
            .format(e))

    ## groups to draw
    #
    setup_groups(cfg)

    ## layers
    #
    setup_layers(cfg)

    ## xforms
    #
    fake_xf = xforms_to_apply(cfg['groups_info'][0]['bbox'], cfg, DEBUG)
    cfg['xform_count'] = len(fake_xf)

    ## root path
    #
    pth_root = False
    if DEBUG: pth_root = DEFAULT_SAVE_PATH
    if not pth_root:
        pth_root = rs.BrowseForFolder(message="where should we save this?",
                                      title="Where to Save?")
    dir_cfg = initialize_directory(pth_root, cfg['do_capture_fill'])
    cfg.update(dir_cfg)

    ## view
    #
    cam_height = 0.75
    if cfg["do_worms_eye"]: cam_height *= -1
    poss = {
        "ne": (1, 1, cam_height),
        "nw": (-1, 1, cam_height),
        "se": (1, -1, cam_height),
        "sw": (-1, -1, cam_height)
    }

    if cfg["iso_select"] not in poss:
        big_problem(
            "There was a problem with the selected isometric view.\n'{}' is not a valid selection."
            .format(cfg["iso_select"]))
    cfg["iso_cam_pos"] = poss[cfg["iso_select"]]

    ## tidy up and save settings JSON
    #
    cfg['total_image_count'] = cfg['view_count'] * len(
        cfg['obj_bbox_pads']) * cfg['xform_count'] * len(cfg['groups_info'])
    with open(os.path.join(cfg['pth_save'], 'settings.json'),
              'w') as json_file:
        json.dump(
            {
                k: "{}".format(str(v))
                for k, v in cfg.items() if k != "groups_info"
            },
            json_file,
            sort_keys=True,
            indent=4)

    ## SETUP RHINO
    #
    rs.UnselectAllObjects()
    setup_display_modes(cfg)
    setup_floating_viewport(cfg)
    setup_render_settings(cfg)

    # padding objects
    wbbox = False
    for gp in cfg['groups_info']:
        if not wbbox: wbbox = gp['bbox']
        else: wbbox.Union(gp['bbox'])

    wbbox = pad_bbox(wbbox, 10)
    cfg['pad_obj_ids'] = []
    cfg['pad_obj_ids'].append(rs.AddPoint(wbbox.Min))
    cfg['pad_obj_ids'].append(rs.AddPoint(wbbox.Max))
    return cfg
Esempio n. 13
0
def browse_for_folder(message=None, default=None):
    return rs.BrowseForFolder(folder=default, message=message, title='compas')
What it does is exporting drawings uniformly arranged on the plan to each .dwg file
'''

#This part defines start position of drawings
X_ST = 0
Y_ST = 0

#Change the girdsize based on your project
X_Step = 9000
Y_Step = 10000

#Define the prefix of each file
Sail_Name = rs.GetString("Input Sail Number")
x = rs.GetInteger("Number of Drawings in X direction")
y = rs.GetInteger("Number of Drawings in Y direction")
direct = rs.BrowseForFolder(None, "Choose a folder", None)

#Define color to exort geometry to DWG cause cannot see black in DWG
Black = Color.Black
White = Color.White

#Change black color to white
layers = rs.LayerIds()
for layer in layers:
    print rs.LayerColor(layer)
    if rs.LayerColor(layer) == Black:
        rs.LayerColor(layer, White)

#Select the drawings which are in grid and export.
for j in range(y):
    for i in range(x):
Esempio n. 15
0
import rhinoscriptsyntax as rs
import createBox
import exportObjs

xNum = rs.GetInteger("X number", 5, 1)
yNum = rs.GetInteger("Y number", 5, 1)
boxes = createBox.Run(xNum, yNum)
if boxes is None or len(boxes) == 0:
    rs.MessageBox("No objects to export")
else:
    dir = rs.BrowseForFolder(None, "Select a folder to save files")
    exportObjs.Run(boxes, dir, "3dm")
Esempio n. 16
0
######################################################################
#
# DO NOT CANCEL THIS PART
# Author: Paolo Cappelletto
# e-mail: [email protected]
# skype: flecheria
# Date: 191014
# Version: 1.0
# 
# Copyright: MIT License
#
######################################################################

import rhinoscriptsyntax as rs

if __name__ == "__main__":

    objs = rs.GetObjects("Select objects for exporting", select = True, preselect = True)
    folder_path = rs.BrowseForFolder(message = "Select folder for the export:", title = "Multiple SAT exporting")
    file_name = rs.GetString("Write the file name:", "file")
    
    print(folder_path)
    
    for i, obj in enumerate(objs):
        print( "{} {}".format(i, obj) )
        path = "-_Export {}\{}_{}.sat Type Default".format(folder_path, file_name, i)
        rs.Command(path)
import rhinoscriptsyntax as rs
import importObjs
import exportObjs

dir = rs.BrowseForFolder(None, "Select folder which contains objects you want to import")
objs = importObjs.Run(dir, "3dm")
exportObjs.Run(objs, dir, "obj")
rs.DeleteObjects(objs)
Esempio n. 18
0
     importTEN_CAD()
 elif (type == 2):
     #Export All plans
     if rs.IsLayer("6_DRAWINGS"):
         children = rs.LayerChildren("6_DRAWINGS")
         items = []
         for child in children:
             items.append(rs.LayerName(child, False))
         level = rs.ComboListBox(items)
         print rs.DocumentPath()
         pathParts = rs.DocumentPath().split("\\")
         if pathParts[0] == "P:":
             defaultPath = pathParts[0] + "\\" + pathParts[
                 1] + "\\" + pathParts[2] + "\\" + pathParts[3]
             folder = rs.BrowseForFolder(
                 folder=defaultPath,
                 message="Select Folder to export plan.",
                 title="Export Plan")
         else:
             folder = rs.BrowseForFolder()
         RhinoFile = rs.DocumentName()
         rhinoName = RhinoFile.split(".")[0] + "_P_"
         levelNum = level.split("_")[-1]
         fileName = "\\" + rhinoName + levelNum + ".dwg"
         savePath = folder + fileName
         #savePath = rs.SaveFileName("Save", "Autocad (*.dwg)|*.dwg||")
         if savePath is not None:
             exportPlanToCAD(level, savePath)
     else:
         print "No plans currently cut. Use CutPlans."
 elif (type == 3):
     exportAllPlansToCAD()