Exemplo n.º 1
0
    def create_global_settings_table(self):
        # Select button
        select_center_label = forms.Label(Text='Sun path center point:')
        select_center_label.Size = drawing.Size(140, 10)

        select_center_button = EtoUtil.create_button(
            text='Pick point', click_event_method=self.on_center_button)

        sun_path_label = forms.Label(Text='Sun path scale:')
        self.m_sun_path_updown = EtoUtil.create_numeric_stepper(decimal_places = 2,
                                                 increment = 0.1,
                                                 value = 1,
                                                 change_event_method =\
                                                 self.on_sun_path_scale_changed)

        sun_sphere_label = forms.Label(Text='Sun sphere scale:')
        self.m_sun_sphere_updown = EtoUtil.create_numeric_stepper(decimal_places = 2,
                                                 increment = 0.1,
                                                 value = 1,
                                                 change_event_method =\
                                                 self.on_sun_sphere_scale_changed)

        layout = EtoUtil.create_layout_from_control_matrix(
            [[select_center_label, select_center_button],
             [sun_path_label, self.m_sun_path_updown],
             [sun_sphere_label, self.m_sun_sphere_updown]])

        return layout
Exemplo n.º 2
0
        def date_time_controls(is_enabled, picker_date_event_method,
                               slider_date_event_method,
                               picker_time_event_method,
                               slider_time_event_method):

            current_date_time = System.DateTime.Now
            #date slider and pickers
            date = forms.DateTimePicker()
            date.Mode = forms.DateTimePickerMode.Date
            date.Value = current_date_time
            date.Size = drawing.Size(30, 20)
            date.ValueChanged += picker_date_event_method
            date.Enabled = is_enabled
            #
            date_label = forms.Label(Text='Day of year:')
            date_label.Size = drawing.Size(140, 15)
            date_slider = EtoUtil.create_slider(
                value=current_date_time.Now.DayOfYear,
                min=1,
                max=365,
                snap_to_tick=False,
                tick_frequency=31,
                change_event_method=slider_date_event_method,
                is_enabled=is_enabled)

            # Time slider and picker
            time = forms.DateTimePicker()
            time.Mode = forms.DateTimePickerMode.Time
            time.Value = System.DateTime(1, 1, 1, current_date_time.Hour, 0, 0)
            time.Size = drawing.Size(30, 20)
            time.ValueChanged += picker_time_event_method
            time.Enabled = is_enabled
            #
            time_label = forms.Label(Text='Hour of day:')
            time_label.Size = drawing.Size(140, 15)
            time_slider = EtoUtil.create_slider(
                value=current_date_time.Hour,
                min=0,
                max=23,
                snap_to_tick=True,
                tick_frequency=1,
                change_event_method=slider_time_event_method,
                is_enabled=is_enabled)

            layout = EtoUtil.create_layout_from_control_matrix(
                [[date_label], [date_slider, date], [time_label],
                 [time_slider, time]])

            return layout, date, date_slider, time, time_slider
Exemplo n.º 3
0
    def __init__(self):
        self.Title = "Sample Eto Dialog"
        self.ClientSize = drawing.Size(200, 200)
        self.Padding = drawing.Padding(5)
        self.Resizable = False

        label = forms.Label()
        label.Text = "Hello Rhino.Python!"
        self.Content = label
 def CreateSteppers(self):
     # Create labels
     label0 = forms.Label(Text='Point count:')
     label1 = forms.Label(Text='Degree:')
     label2 = forms.Label(Text='({})'.format(self.Args.PointCount))
     label3 = forms.Label(Text='({})'.format(self.Args.Degree))
     # Create numeric steppers
     self.PointCount = forms.NumericStepper(Value=self.Args.PointCount,
                                            MinValue=2,
                                            MaxValue=32767)
     self.Degree = forms.NumericStepper(Value=self.Args.Degree,
                                        MinValue=1,
                                        MaxValue=11)
     # Create table layout
     layout = forms.DynamicLayout()
     layout.Spacing = drawing.Size(5, 5)
     layout.AddRow(label0, label2, self.PointCount)
     layout.AddRow(label1, label3, self.Degree)
     return layout
Exemplo n.º 5
0
 def CreateFormControls(self):
     # Create table layout
     layout = forms.TableLayout()
     layout.Padding = drawing.Padding(10)
     layout.Spacing = drawing.Size(5, 5)
     # Add controls to layout
     layout.Rows.Add(forms.Label(Text='Rhino Objects:'))
     layout.Rows.Add(self.CreateListBoxRow())
     layout.Rows.Add(self.CreateButtonRow())
     # Set the content
     self.Content = layout
Exemplo n.º 6
0
    def __init__(self):
        # Initialize dialog box
        self.Title = 'Dynamis'
        self.Padding = drawing.Padding(5)
        self.Resizable = False

        self.m_image_view = forms.ImageView()
        self.m_image_view.Size = drawing.Size(400, 225)
        self.m_image_view.Image = drawing.Bitmap("D:\AnimazioneBot\Vect.PNG")
        # Create layout

        self.m_button = forms.Button(Text='Esporta')
        self.m_button.Click += self.LanciaBotton

        self.m_textbox = forms.TextBox()
        self.m_label = forms.Label(Text='Indica il nome del progetto:')
        self.m_textbox.Text = "untitled"

        self.m_foronumero = forms.TextBox()
        self.m_forolabel = forms.Label(Text='Indica la dimensione del foro')
        self.m_foronumero.Text = "10"
        layout = forms.DynamicLayout()
        layout.Padding = drawing.Padding(5)
        layout.Spacing = drawing.Size(5, 5)
        layout.BeginVertical()
        layout.AddSeparateRow(None, self.m_image_view, None)
        layout.EndVertical()
        layout.AddRow(None)
        layout.BeginVertical()
        layout.AddRow(None, self.m_label, None, self.m_textbox, None)
        layout.EndVertical()
        layout.AddRow(None)
        layout.BeginVertical()
        layout.AddRow(None, self.m_forolabel, None, self.m_foronumero, None)
        layout.EndVertical()
        layout.AddRow(None)
        layout.BeginVertical()
        layout.AddRow(None, self.m_button, None, self.CloseButton(), None)
        layout.EndVertical()
        # Set the dialog content
        self.Content = layout
Exemplo n.º 7
0
    def create_global_settings_table(self):
        #project path and name
        project_path_label = forms.Label(Text = 'Project folder:') 
        self.m_project_path_picker = EtoUtil.create_file_picker(
                                            title = "Select project folder") 
                                             
                                             
        self.m_project_path_picker.FilePath = 'c:\ladybug'       
        self.m_project_path_picker.FileAction = FileAction.SelectFolder
        self.m_project_path = "c:\ladybug"        
        layout_a = EtoUtil.create_layout_from_control_matrix([
                                                    [project_path_label],
                                                    [self.m_project_path_picker]],
                                                    drawing.Padding(5, 30, 5, 0))

        project_name_label = forms.Label(Text = 'Project name:')  
        project_name_label.Size = drawing.Size(140, 14)
        self.m_project_name_text_box = forms.TextBox()   
        self.m_project_name_text_box.Text = "Project1" 
        
        self.m_save_file_check_box = forms.CheckBox()
        self.m_save_file_check_box.Text = "Write file only"

        self.m_run_analysis_button = EtoUtil.create_button(
                            text = 'Run Analysis',
                            size = drawing.Size(140, 24), 
                            click_event_method = self.on_click_run_analysis)
                            
        layout_b = EtoUtil.create_layout_from_control_matrix([
                                                    [project_name_label, None],
                                                    [self.m_project_name_text_box]],
                                                     drawing.Padding(5, 0, 5, 5))
        layout_c = EtoUtil.create_layout_from_control_matrix([
                                                     [self.m_run_analysis_button,
                                                      self.m_save_file_check_box,]],
                                                      drawing.Padding(5, 10, 5, 5))
                                                     
        return EtoUtil.create_layout_from_control_matrix([[layout_a],
                                                          [layout_b],
                                                          [layout_c]],
                                                          drawing.Padding(0,5))
Exemplo n.º 8
0
 def __init__(self):
     # create a control
     label = forms.Label()
     label.Text = "Text Label"
     # create a layout
     layout = forms.DynamicLayout()
     layout.DefaultSpacing = drawing.Size(5, 5)
     layout.Padding = drawing.Padding(10)
     # add the control to the layout
     layout.Add(label)
     # set the panel content
     self.Content = layout
Exemplo n.º 9
0
 def create_form_controls(self):
     """Create all of the controls used by the form."""
     # Create table layout
     layout = forms.TableLayout()
     layout.Padding = drawing.Padding(10)
     layout.Spacing = drawing.Size(5, 5)
     # Add controls to layout
     layout.Rows.Add(forms.Label(Text='Location:'))
     layout.Rows.Add(self.create_list_box())
     layout.Rows.Add(self.create_button_row())
     # Set the content
     self.Content = layout
Exemplo n.º 10
0
    def create_north_table(self):
        northLabel = forms.Label(Text='North:')
        self.m_north_updown = EtoUtil.create_numeric_stepper(decimal_places = 0,
                                                 increment = 1,
                                                 value = 0,
                                                 min = 0,
                                                 max = 360,
                                                 format_string = "{0}\N{DEGREE SIGN}",
                                                 change_event_method =\
                                                  self.on_north_value_changed)

        #layout.Rows.Add(forms.TableRow()
        return EtoUtil.create_layout_from_control_matrix(
            [[northLabel, self.m_north_updown, None]], drawing.Padding(10, 0))
 def __init__(self, collection):
     self.m_collection = collection
     # Initialize dialog box properties
     self.Title = 'Sample Eto ListBox'
     self.Padding = drawing.Padding(5)
     self.Resizable = True
     # Create a label control
     label = forms.Label()
     label.Text = 'Select a fruit:'
     # Create dynamic layout control
     layout = forms.DynamicLayout()
     layout.Padding = drawing.Padding(5)
     layout.Spacing = drawing.Size(5, 5)
     # Add controls to layout
     layout.AddRow(label)
     layout.AddRow(self.CreateListBox())
     layout.AddRow(None) # spacer
     layout.AddRow(self.CreateButtons())
     # Set the dialog content
     self.Content = layout
Exemplo n.º 12
0
        def labels():
            self.lblProj = forms.Label()
            self.lblProj.Text = "Project"
            self.labelList.append(self.lblProj)

            self.lblVersion = forms.Label()
            self.lblVersion.Text = "Version"
            self.labelList.append(self.lblVersion)

            self.lblProjName = forms.Label()
            self.lblProjName.Text = "Name"
            self.labelList.append(self.lblProjName)

            self.lblProjNum = forms.Label()
            self.lblProjNum.Text = "Number"
            self.labelList.append(self.lblProjNum)

            self.lblClientName = forms.Label()
            self.lblClientName.Text = "Client Name"
            self.labelList.append(self.lblClientName)

            self.lblProjCity = forms.Label()
            self.lblProjCity.Text = "City"
            self.labelList.append(self.lblProjCity)

            self.lblProjState = forms.Label()
            self.lblProjState.Text = "State"
            self.labelList.append(self.lblProjState)

            self.lblProjCountry = forms.Label()
            self.lblProjCountry.Text = "Country"
            self.labelList.append(self.lblProjCountry)

            for eachLabel in self.labelList:
                eachLabel.VerticalAlignment = forms.VerticalAlignment.Center
                eachLabel.TextAlignment = forms.TextAlignment.Right
                if eachLabel.Text == "Project" or eachLabel.Text == "Database Version":
                    continue
                eachLabel.Enabled = False
Exemplo n.º 13
0
    def create_location_group(self):

        #location name layout
        self.m_loc_name_text_box = forms.TextBox()
        self.m_loc_name_text_box.PlaceholderText = "Location name"
        layout_a = EtoUtil.create_layout_from_control_matrix(
            [[self.m_loc_name_text_box]])
        #
        # lat/long layout
        lat_label = forms.Label(Text='Lat:')
        self.m_numeric_lat_updown = EtoUtil.create_numeric_stepper(decimal_places = 3,
                                                 increment = 1,
                                                 value = 0,
                                                 min = -90,
                                                 max = 90,
                                                 format_string = "{0:f3}\N{DEGREE SIGN}",
                                                 change_event_method =\
                                                  self.on_latitude_value_changed)

        long_label = forms.Label(Text='   Long:')
        self.m_numeric_long_updown = EtoUtil.create_numeric_stepper(decimal_places = 3,
                                                 increment = 1,
                                                 value = 0,
                                                 min = -90,
                                                 max = 90,
                                                 format_string = "{0:f3}\N{DEGREE SIGN}",
                                                 change_event_method =\
                                                  self.on_longitude_value_changed)

        layout_b = EtoUtil.create_layout_from_control_matrix([[
            lat_label, self.m_numeric_lat_updown, long_label,
            self.m_numeric_long_updown
        ]], drawing.Padding(5, 15, 5, 0))
        #
        # time zone layout
        timezone_label = forms.Label(Text='Time zone:')
        self.m_timezone_dropdown = forms.DropDown()
        time_zones = [
            '(UTC -12:00)', '(UTC -11:00)', '(UTC -10:00)', '(UTC -09:00)',
            '(UTC -08:00)', '(UTC -07:00)', '(UTC -06:00)', '(UTC -05:00)',
            '(UTC -04:00)', '(UTC -03:00)', '(UTC -02:00)', '(UTC -01:00)',
            '(UTC 00:00)', '(UTC 01:00)', '(UTC 02:00)', '(UTC 03:00)',
            '(UTC 04:00)', '(UTC 05:00)', '(UTC 06:00)', '(UTC 07:00)',
            '(UTC 08:00)', '(UTC 09:00)', '(UTC 10:00)', '(UTC 11:00)',
            '(UTC 12:00)'
        ]
        self.m_timezone_dropdown.DataStore = time_zones
        self.m_timezone_dropdown.SelectedIndex = 12
        self.m_timezone_dropdown.DropDownClosed += self.on_timezone_drop_down_closed
        layout_c = EtoUtil.create_layout_from_control_matrix(
            [[timezone_label], [self.m_timezone_dropdown]])
        #
        # elevation layout
        elev_label = forms.Label(Text='Elevation:')
        elev_label.Size = drawing.Size(140, 10)
        self.m_elev_updown = EtoUtil.create_numeric_stepper(decimal_places = 3,
                                                 increment = 1,
                                                 value = 0,
                                                 change_event_method =\
                                                  self.on_elevation_value_changed)
        layout_d = EtoUtil.create_layout_from_control_matrix(
            [[elev_label, self.m_elev_updown]])

        #Import location from epw layout
        epw_file_label = forms.Label(Text='Import location from epw file:')
        self.m_epw_file_picker = EtoUtil.create_file_picker(
            title="Select epw file",
            filter='epw',
            file_path_changed_event_method=self.on_epw_file_path_changed)
        self.m_epw_file = ""

        layout_e = EtoUtil.create_layout_from_control_matrix(
            [[epw_file_label], [self.m_epw_file_picker]])

        #
        # return group with created layout
        group_layout = EtoUtil.create_layout_from_control_matrix([[layout_a],
                                                                  [layout_b],
                                                                  [layout_c],
                                                                  [layout_d],
                                                                  [layout_e]])

        return EtoUtil.create_group_from_layout('Location', group_layout)
Exemplo n.º 14
0
    def from_settings(cls, object_name, settings):
        tab = cls()
        tab.Text = object_name
        layout = forms.StackLayout()
        layout.Spacing = 2
        layout.HorizontalContentAlignment = forms.HorizontalAlignment.Stretch
        tab.Content = layout

        # link to original setting and keep a temporary new settings holder
        tab.settings = settings
        tab.new_settings = settings.copy()

        # create sections
        sections = {}
        for key in settings:
            split = key.split('.')
            prefix = split[0]
            postfix = '.'.join(split[1:])

            if prefix[0] == "_":
                continue

            if prefix not in sections:
                sections[prefix] = {}
            sections[prefix][postfix] = (key, settings[key])

        for prefix in sections:

            groupbox = forms.GroupBox(Text=prefix)
            groupbox.Padding = drawing.Padding(5)
            grouplayout = forms.DynamicLayout()
            grouplayout.Spacing = drawing.Size(3, 3)

            postfixies = list(sections[prefix].keys())
            postfixies.sort()
            for postfix in postfixies:
                key, value = sections[prefix][postfix]

                if type(value) == bool:
                    control = forms.CheckBox()
                    control.Checked = value
                    control.CheckedChanged += tab.EditEvent(key)
                elif (type(value) == list or type(value) == tuple) and len(value) == 3:
                    control = forms.ColorPicker()
                    control.Value = drawing.Color.FromArgb(*value)
                    control.ValueChanged += tab.EditEvent(key)
                elif type(value) == float or type(value) == int:
                    control = forms.NumericUpDown()
                    if type(value) == float:
                        digits = len(str(value).split('.')[-1])
                        control.DecimalPlaces = (digits + 1)
                        control.Increment = 0.1 ** (digits + 1)
                    control.Value = value
                    control.ValueChanged += tab.EditEvent(key)
                else:
                    control = forms.TextBox()
                    control.Text = str(value)
                    control.TextChanged += tab.EditEvent(key)

                label = forms.Label(Text=postfix)
                if postfix != '':
                    grouplayout.AddRow(label, None, control)
                else:
                    grouplayout.AddRow(control)

            groupbox.Content = grouplayout
            layout.Items.Add(groupbox)

        return tab
Exemplo n.º 15
0
    def create_analysis_objects_group(self):
        
        #Analyisis grid controls
        gridsurfs_label = forms.Label(Text = 'Analysis grid surfaces:') 
        gridsurfs_label.Size = drawing.Size(140, 15)         
        self.m_gridsurfs_list_box =  EtoUtil.create_list_box(
                    self,
                    size = drawing.Size(140, 60),
                    selected_event_method = self.on_selected_grid_item_changed)
        # 
        gridsize_label = forms.Label(Text = 'Grid size:') 
        gridsize_label.Size = drawing.Size(30, 15) 
        self.m_numeric_gridsize_updown = EtoUtil.create_numeric_stepper(
                                                 decimal_places = 2,
                                                 increment = 0.1,
                                                 value = 5, 
                                                 change_event_method =\
                                                  self.on_gridsize_value_changed)                                                
        
        distsurf_label = forms.Label(Text = 'Distance:') 
        self.m_numeric_distsurf_updown = EtoUtil.create_numeric_stepper(
                                                 decimal_places = 2,
                                                 increment = 0.1,
                                                 value = 0.1, 
                                                 change_event_method =\
                                                  self.on_distsurf_value_changed) 
                                                  
        self.m_add_object_button = EtoUtil.create_button(
                            text = 'Add',
                            size = drawing.Size(65, 21),  
                            click_event_method = self.on_click_add_grid_object)
                          
        self.m_remove_object_button = EtoUtil.create_button(
                            text = 'Remove',
                            size = drawing.Size(65, 21),
                            click_event_method = self.on_click_remove_grid_object)   
        
        layout_a1 = EtoUtil.create_layout_from_control_matrix([
                                                [gridsurfs_label],
                                                [self.m_gridsurfs_list_box]],
                                                padding=drawing.Padding(5, 5, 5, 0))

                                            
        layout_a2 = EtoUtil.create_layout_from_control_matrix([
                                                [gridsize_label], 
                                                [self.m_numeric_gridsize_updown],
                                                [distsurf_label], 
                                                [self.m_numeric_distsurf_updown]])
                                                  
        layout_a3 = EtoUtil.create_layout_from_control_matrix([
                                                [self.m_add_object_button,
                                                 self.m_remove_object_button]],
                                                 padding=drawing.Padding(5, 0, 5, 5))
                                                 
        layout_a = EtoUtil.create_layout_from_control_matrix([
                                                    [layout_a1, layout_a2],
                                                    [layout_a3, None]],
                                                    padding=drawing.Padding(0, 0, 0, 5))
        
        #HB Objects controls
        hb_objects_label = forms.Label(Text = 'HB surfaces:')   
        self.m_hb_object_ids = []  
        self.m_hb_column_cell_type = ['TextBox', 'DropDown', 'DropDown']
        column_headers = ['Object', 'Type', 'Material'] 
        self.m_hb_type_items = ['Auto','Wall', 'Und.Wall', 'Roof', 'Und.Ceiling',
                                'Floor','Und.Slab', 'SlabOnGrade', 'Exp.Floor',
                                'Ceiling','AirWall', 'Window', 'Context']
        self.m_hb_material_items = ['Refl.0.3','Refl.0.0', 'Refl.0.5', 'Refl.0.8',
                                    'Glass.0.3','Glass.0.6','Glass.0.9']
        column_widths = [85, 75, 75]   
        column_editables = [False, True, True]
        data_matrix = []   
                                       
        self.m_hb_objects_gridview = GridViewUtil.create_grid_view(
                                                3,
                                                self.m_hb_column_cell_type,                                                
                                                data_matrix,
                                                column_headers,
                                                column_widths,
                                                column_editables,
                                                self.on_hb_gridview_cell_changed)                                                
                                                                                    
        self.m_hb_objects_gridview.Size = drawing.Size(-1, 200)  
        
        self.m_add_hb_object_button = EtoUtil.create_button(
                            text = 'Add',
                            size = drawing.Size(65, 21), 
                            click_event_method = self.on_click_add_hb_object)
                            
        self.m_remove_hb_object_button = EtoUtil.create_button(
                            text = 'Remove',
                            size = drawing.Size(65, 21),  
                            click_event_method = self.on_click_remove_hb_object)  
                            
        self.m_props_hb_object_button = EtoUtil.create_button(
                            text = 'Properties',
                            size = drawing.Size(65, 21),  
                            click_event_method = self.on_click_props_hb_object,
                            is_enabled = False)
                            
        layout_b1 = EtoUtil.create_layout_from_control_matrix([
                                                [self.m_add_hb_object_button,
                                                 self.m_remove_hb_object_button,
                                                 self.m_props_hb_object_button]],
                                                 drawing.Padding(0, 0, 0, 5))
                                                      
        layout_b = EtoUtil.create_layout_from_control_matrix([
                                                     [hb_objects_label],
                                                     [self.m_hb_objects_gridview],
                                                     [layout_b1]],
                                                     drawing.Padding(5, 20, 5, 20))
                                                     
                                                     
        layout_main = EtoUtil.create_layout_from_control_matrix([[layout_a],
                                                                [layout_b]])
                         
        # return group with created layout       
        return EtoUtil.create_group_from_layout('Objects', layout_main)
Exemplo n.º 16
0
    def __init__(self):
        self.Title = "EasyCut"
        self.selected = []
        self.edgeshighlightMode = -1
        self.m_gridview = forms.GridView()
        self.m_gridview.ShowHeader = True
        self.Padding = drawing.Padding(10)
        self.Resizable = True
        num = 0
        for idx in range(len(ATTRS)):
            if num == QUANTITY_COLUMN_POS:
                attr = QUANT_FIELD
                column = forms.GridColumn()
                column.HeaderText = attr.name
                column.Editable = attr.isEditable
                column.DataCell = forms.TextBoxCell(num)
                self.m_gridview.Columns.Add(column)
                num += 1
            attr = ATTRS[idx]
            if attr.isOn:

                column = forms.GridColumn()
                column.HeaderText = attr.name
                column.Editable = attr.isEditable
                column.DataCell = forms.TextBoxCell(num)
                self.m_gridview.Columns.Add(column)
                num += 1

        self.precision_dropdownlist = forms.DropDown()
        self.precision_dropdownlist.DataStore = [
            '1', '0.1', '0.01', '0.001', '0.0001', '0.00001'
        ]
        self.precision_dropdownlist.SelectedIndex = DIM_PRECISION
        self.precision_label = forms.Label(Text="Dimensions precision ")
        self.precision_dropdownlist.DropDownClosed += self.changePrecisionVal

        layout0 = forms.TableLayout()
        cell = forms.TableCell(self.precision_label, scaleWidth=False)
        cell.ScaleWidth = False
        cell2 = forms.TableCell(self.precision_dropdownlist, scaleWidth=False)
        cell2.ScaleWidth = False
        row = forms.TableRow(None, cell, cell2)
        row.ScaleHeight = False
        layout0.Rows.Add(row)

        self.m_gridview.CellClick += self.gridClick
        self.m_gridview.SelectionChanged += self.gridSelChanged
        self.m_gridview.CellEdited += self.gridEdited
        self.m_gridview.CellFormatting += self.OnCellFormatting
        self.buttonAutoNum = forms.Button(self.buttonAutoNumClick)
        self.buttonAutoNum.Text = "Auto number"
        self.button = forms.Button(self.buttonClick)
        self.button.Text = "Export"
        layout = forms.TableLayout()
        layout.Spacing = drawing.Size(5, 5)
        cell = forms.TableCell(self.m_gridview)
        row = forms.TableRow(cell)
        row.ScaleHeight = True
        layout.Rows.Add(layout0)
        layout.Rows.Add(row)

        layout2 = forms.TableLayout()
        layout2.Spacing = drawing.Size(5, 5)

        cell = forms.TableCell(self.button, True)
        cell2 = forms.TableCell(self.buttonAutoNum, True)
        row = forms.TableRow([cell, cell2])

        layout2.Rows.Add(row)
        layout.Rows.Add(layout2)
        layout2 = forms.TableLayout()
        layout2.Spacing = drawing.Size(5, 5)
        self.m_linkbutton = forms.LinkButton(Text='Easycut')
        self.m_linkbutton.Click += self.OnLinkButtonClick
        self.m_donatebutton = forms.LinkButton(Text='Donate',
                                               Style="right-align")
        self.m_donatebutton.Click += self.OnDonateButtonClick
        cell = forms.TableCell(self.m_linkbutton, True)
        cell2 = forms.TableCell(None, False)
        cell3 = forms.TableCell(self.m_donatebutton, False)
        row = forms.TableRow([cell, cell2, cell3])
        layout2.Rows.Add(row)

        layout.Rows.Add(layout2)

        self.Content = layout
    def __init__(self):

        # Initialize dialog box
        self.Title = 'Render Settings'
        self.Padding = drawing.Padding(5)
        self.Resizable = False

        settings = self.readSettings()

        dirname = os.path.dirname
        script_path = dirname(os.path.realpath(__file__)) + "\\"

        self.HDRIs = ["Colour"]
        for r, d, f in os.walk(script_path + "HDRI\\"):
            for file in f:
                if '.hdr' in file: self.HDRIs.append(file)

        self.render_engine = forms.ComboBox()
        self.render_engine.DataStore = ["CYCLES", "EEVEE"]
        self.render_engine.SelectedIndex = 0
        self.render_scale = forms.NumericUpDown()
        self.render_samples = forms.NumericStepper()

        self.camera_exposure = forms.NumericUpDown()
        self.camera_exposure.DecimalPlaces = 3
        self.camera_exposure.Increment = 0.1
        self.camera_exposure.MinValue = -10.000
        self.camera_exposure.MaxValue = 10.000
        self.camera_transparent = forms.CheckBox()

        self.world_HDRI = forms.ComboBox()
        self.world_HDRI.DataStore = self.HDRIs
        self.world_HDRIRotation = forms.NumericStepper()
        self.world_HDRIRotation.DecimalPlaces = 2
        self.world_HDRIBlur = forms.NumericStepper()
        self.world_HDRIBlur.DecimalPlaces = 2
        self.world_HDRIBlur.MinValue = 0.000
        self.world_HDRIBlur.MaxValue = 1.000
        self.world_HDRIBlur.Width = 50
        self.world_HDRIPower = forms.NumericStepper()
        self.world_HDRIPower.DecimalPlaces = 2
        self.world_HDRIPower.MinValue = 0.000
        self.world_HDRIPower.Width = 50

        self.render_bouncesTotal = forms.NumericStepper()
        self.render_bouncesDiffuse = forms.NumericStepper()
        self.render_bouncesGlossy = forms.NumericStepper()
        self.render_bouncesTransparency = forms.NumericStepper()
        self.render_bouncesTransmission = forms.NumericStepper()
        self.render_bouncesVolume = forms.NumericStepper()
        self.render_clampingDirect = forms.NumericUpDown()
        self.render_clampingDirect.DecimalPlaces = 2
        self.render_clampingDirect.Increment = 0.01
        self.render_clampingDirect.MinValue = 0.00
        self.render_clampingIndirect = forms.NumericUpDown()
        self.render_clampingIndirect.DecimalPlaces = 2
        self.render_clampingIndirect.MinValue = 0.00
        self.render_Denoising = forms.CheckBox()

        self.open = forms.CheckBox()
        self.save = forms.CheckBox()
        self.render = forms.CheckBox()
        self.showRender = forms.CheckBox()

        if settings:
            self.render_engine.SelectedIndex = self.render_engine.DataStore.index(
                settings["settings"]["render_engine"])
            self.render_scale.Value = float(
                settings["settings"]["render_scale"])
            self.render_samples.Value = int(
                settings["settings"]["render_samples"])

            self.camera_exposure.Value = float(
                settings["camera"]["camera_exposure"])
            self.camera_transparent.Checked = bool(
                settings["camera"]["camera_transparent"])

            self.world_HDRI.SelectedIndex = self.world_HDRI.DataStore.index(
                settings["world"]["world_HDRI"])
            self.world_HDRIRotation.Value = float(
                settings["world"]["world_HDRIRotation"])
            self.world_HDRIBlur.Value = float(
                settings["world"]["world_HDRIBlur"])
            self.world_HDRIPower.Value = float(
                settings["world"]["world_HDRIPower"])

            self.render_bouncesTotal.Value = int(
                settings["settings"]["render_bouncesTotal"])
            self.render_bouncesDiffuse.Value = int(
                settings["settings"]["render_bouncesDiffuse"])
            self.render_bouncesGlossy.Value = int(
                settings["settings"]["render_bouncesGlossy"])
            self.render_bouncesTransparency.Value = int(
                settings["settings"]["render_bouncesTransparency"])
            self.render_bouncesTransmission.Value = int(
                settings["settings"]["render_bouncesTransmission"])
            self.render_bouncesVolume.Value = int(
                settings["settings"]["render_bouncesVolume"])
            self.render_clampingDirect.Value = float(
                settings["settings"]["render_clampingDirect"])
            self.render_clampingIndirect.Value = float(
                settings["settings"]["render_clampingIndirect"])
            self.render_Denoising.Checked = bool(
                settings["settings"]["render_Denoising"])

            self.open.Checked = bool(settings["settings"]["open"])
            self.save.Checked = bool(settings["settings"]["save"])
            self.render.Checked = bool(settings["settings"]["render"])
            self.showRender.Checked = bool(settings["settings"]["showRender"])

            loc = settings["settings"]["render_settingWindowPosition"]
            loc = loc.split(",")
            self.Location = drawing.Point(int(loc[0]), int(loc[1]))

        self.DefaultButton = forms.Button(Text='OK')
        self.DefaultButton.Click += self.OnOKButtonClick

        self.AbortButton = forms.Button(Text='Cancel')
        self.AbortButton.Click += self.OnCloseButtonClick

        layout = forms.DynamicLayout()
        layout.Spacing = drawing.Size(0, 1)
        """Box 1: Render"""
        box_1 = forms.GroupBox()
        box_1.Padding = drawing.Padding(1)
        box_1_layout = forms.DynamicLayout()
        box_1_layout.Spacing = drawing.Size(3, 3)
        box_1.Content = box_1_layout

        box_1_layout.AddRow("render_engine", self.render_engine)
        box_1_layout.AddRow("render_scale", self.render_scale)
        box_1_layout.AddRow("samples", self.render_samples)
        """Box 2: Camera"""
        box_2 = forms.GroupBox(Text='Camera')
        box_2.Padding = drawing.Padding(1)
        box_2_layout = forms.DynamicLayout()
        box_2_layout.Spacing = drawing.Size(3, 3)
        box_2.Content = box_2_layout

        box_2_layout.AddRow("Exposure", self.camera_exposure)
        box_2_layout.AddRow("Transparent", self.camera_transparent)
        """Box 3: World"""
        box_3 = forms.GroupBox(Text='World')
        box_3.Padding = drawing.Padding(1)
        box_3_layout = forms.DynamicLayout()
        box_3_layout.Spacing = drawing.Size(3, 3)
        box_3.Content = box_3_layout

        box_3_layout.BeginVertical()
        box_3_layout.AddRow("HDRI", self.world_HDRI)
        box_3_layout.AddRow("HDRI Rotation", self.world_HDRIRotation)
        box_3_layout.EndVertical()
        box_3_layout.AddSeparateRow("Blur", self.world_HDRIBlur, None, "Power",
                                    self.world_HDRIPower)
        """Box 4: Samples"""
        box_4 = forms.GroupBox(Text='Sampling')
        box_4.Padding = drawing.Padding(1)
        box_4_layout = forms.DynamicLayout()
        box_4_layout.Spacing = drawing.Size(3, 3)
        box_4.Content = box_4_layout

        self.box_4_hidden = forms.DynamicLayout(Visible=False)
        self.box_4_hidden.Spacing = drawing.Size(3, 3)

        self.box_4_hidden.AddRow("bouncesTotal", self.render_bouncesTotal)
        self.box_4_hidden.AddRow("bouncesDiffuse", self.render_bouncesDiffuse)
        self.box_4_hidden.AddRow("bouncesGlossy", self.render_bouncesGlossy)
        self.box_4_hidden.AddRow("bouncesTransparency",
                                 self.render_bouncesTransparency)
        self.box_4_hidden.AddRow("bouncesTransmission",
                                 self.render_bouncesTransmission)
        self.box_4_hidden.AddRow("bouncesVolume", self.render_bouncesVolume)
        self.box_4_hidden.AddRow("clampingDirect", self.render_clampingDirect)
        self.box_4_hidden.AddRow("clampingIndirect",
                                 self.render_clampingIndirect)

        self.dropdown_text = forms.Label(Text="Show Sampling Properties")
        self.dropdown_samples = forms.Button(Size=drawing.Size(16, 16))
        self.dropdown_samples.Text = "▼"
        self.dropdown_samples.Font = drawing.Font("Arial", 5)
        self.dropdown_samples.Click += self.dropdown_samples_Click

        box_4_layout.AddSeparateRow(None, self.dropdown_text, None,
                                    self.dropdown_samples, None)
        box_4_layout.AddRow(self.box_4_hidden)
        """Box 5: Output"""
        box_5 = forms.GroupBox(Text='Output')
        box_5.Padding = drawing.Padding(1)
        box_5_layout = forms.DynamicLayout()
        box_5_layout.Spacing = drawing.Size(3, 3)
        box_5.Content = box_5_layout

        box_5_layout.AddRow(self.save, "Save File", self.open, "Open File")
        box_5_layout.AddRow(self.render_Denoising, "Denoising")
        box_5_layout.AddRow(self.render, "Render")
        box_5_layout.AddRow(self.showRender, "Show Render")

        #Add the group boxes to the main interface
        layout.AddRow(box_1)
        layout.AddRow(box_2)
        layout.AddRow(box_3)
        layout.AddRow(box_4)
        layout.AddRow(box_5)
        layout.AddSeparateRow(self.DefaultButton, None, self.AbortButton)

        self.Content = layout
Exemplo n.º 18
0
        def __init__(self):
            # Initialize dialog box
            self.Title = 'LandArchTools: Stair Generator'
            self.Padding = drawing.Padding(10)
            self.Resizable = False
            self.Closing += self.OnFormClosed
    ################################################################################

            # Create controls for the dialog
            # Stair gen label
            self.stairGenLabel = forms.Label(Text='STAIR GENERATOR')

            # Gen Handrail label
            self.genStairLabel = forms.Label(Text='Generate Stair?:')
            # Gen Handrail control
            self.genStairBool = forms.CheckBox()
            self.genStairBool.Checked = False
            self.genStairBool.CheckedChanged += self.stairGen

            # Number of Steps Label
            self.numStepsLabel = forms.Label(Text='Number of steps:')
            # Number of Steps control
            self.numStepsC = forms.NumericStepper()
            self.numStepsC.DecimalPlaces = 0
            self.numStepsC.Increment = 1
            self.numStepsC.MaxValue = 100
            self.numStepsC.MinValue = 2
            self.numStepsC.Value = 3
            self.numStepsC.ValueChanged += self.stairGen
            self.numStepsC.ValueChanged += self.handrailGen

            # Tread label
            self.treadLabel = forms.Label(Text='Tread (mm):')
            # Tread length control
            self.treadC = forms.NumericStepper()
            self.treadC.DecimalPlaces = 0
            self.treadC.Increment = 1
            self.treadC.MaxValue = 1000
            self.treadC.MinValue = 1
            self.treadC.Value = 300
            self.treadC.ValueChanged += self.stairGen
            self.treadC.ValueChanged += self.handrailGen

            # Riser Label
            self.riserLabel = forms.Label(Text='Riser (mm):')
            # Tread length control
            self.riserC = forms.NumericStepper()
            self.riserC.DecimalPlaces = 0
            self.riserC.Increment = 1
            self.riserC.MaxValue = 1000
            self.riserC.MinValue = 1
            self.riserC.Value = 150
            self.riserC.ValueChanged += self.stairGen
            self.riserC.ValueChanged += self.handrailGen

            # Flip label
            self.flipLabel = forms.Label(Text='Flip direction of stairs:')
            # Flip control
            self.flipC = forms.CheckBox()
            self.flipC.CheckedChanged += self.stairGen
            self.flipC.CheckedChanged += self.handrailGen

            ###########################################
            # Handrail Gen Label
            self.handrailGenLabel = forms.Label(Text='HANDRAIL GENERATOR')
            # self.handrailGenLabel.VerticalAlignment.Center

            # Gen Handrail label
            self.genHandrailLabel = forms.Label(Text='Generate Handrail?:')
            # Gen Handrail control
            self.genHandrailBool = forms.CheckBox()
            self.genHandrailBool.Checked = False
            self.genHandrailBool.CheckedChanged += self.handrailGen

            # Handrail Type Label
            self.handrailTypeLabel = forms.Label(Text='Handrail type:')
            # Handrail Type Dropdown
            self.handrailTypeC = forms.DropDown()
            self.handrailTypeC.DataStore = [
                '180 No Return', '180 Full Return', 'Ground Triangular Return', 'Ground Return', 'Wall Return']
            self.handrailTypeC.SelectedIndex = 0
            self.handrailTypeC.SelectedIndexChanged += self.handrailGen

            # Handrail Height Label
            self.handrailHeightLabel = forms.Label(
                Text='Handrail height (mm):')
            # Handrail Height control
            self.handrailHeightC = forms.NumericStepper()
            self.handrailHeightC.DecimalPlaces = 0
            self.handrailHeightC.Increment = 1
            self.handrailHeightC.MaxValue = 5000
            self.handrailHeightC.MinValue = 100
            self.handrailHeightC.Value = 900
            self.handrailHeightC.ValueChanged += self.handrailGen

            # Handrail offset label
            self.handrailOffsetLabel = forms.Label(
                Text='Handrail offset from edges (mm):')
            # Handrail offset control
            self.handrailOffsetC = forms.NumericStepper()
            self.handrailOffsetC.DecimalPlaces = 0
            self.handrailOffsetC.Increment = 1
            self.handrailOffsetC.MaxValue = 5000
            self.handrailOffsetC.MinValue = 50
            self.handrailOffsetC.Value = 150
            self.handrailOffsetC.ValueChanged += self.handrailGen

            # Handrail extension Label
            self.handrailExtensionLabel = forms.Label(
                Text='Handrail extension (mm):')
            # Handrail extension Control
            self.handrailExtensionC = forms.NumericStepper()
            self.handrailExtensionC.DecimalPlaces = 0
            self.handrailExtensionC.Increment = 1
            self.handrailExtensionC.MaxValue = 5000
            self.handrailExtensionC.MinValue = 300
            self.handrailExtensionC.Value = 300
            self.handrailExtensionC.ValueChanged += self.handrailGen

            # Handrail Diameter Label
            self.handrailDiameterLabel = forms.Label(
                Text='Handrail diameter (mm):')
            # Handrail Diameter control
            self.handrailDiameterC = forms.NumericStepper()
            self.handrailDiameterC.DecimalPlaces = 0
            self.handrailDiameterC.Increment = 1
            self.handrailDiameterC.MaxValue = 50
            self.handrailDiameterC.MinValue = 30
            self.handrailDiameterC.Value = 30
            self.handrailDiameterC.ValueChanged += self.handrailGen

            # Create the default button
            self.DefaultButton = forms.Button(Text='OK')
            self.DefaultButton.Click += self.OnOKButtonClick

            # Create the abort button
            self.AbortButton = forms.Button(Text='Cancel')
            self.AbortButton.Click += self.OnCloseButtonClick

    ################################################################################

            # Create a table layout and add all the controls
            layout = forms.DynamicLayout()
            layout.Spacing = drawing.Size(5, 5)

            layout.AddRow(None)
            layout.AddRow(self.stairGenLabel)
            layout.AddRow(None)
            layout.AddRow(None)
            layout.AddRow(self.genStairLabel, self.genStairBool)
            layout.AddRow(self.numStepsLabel, self.numStepsC)
            layout.AddRow(self.treadLabel, self.treadC)
            layout.AddRow(self.riserLabel, self.riserC)
            layout.AddRow(self.flipLabel, self.flipC)
            layout.AddRow(None)
            layout.AddRow(None)
            layout.AddRow(None)
            layout.AddRow(None)
            layout.AddRow(self.handrailGenLabel)
            layout.AddRow(None)
            layout.AddRow(None)
            layout.AddRow(self.genHandrailLabel, self.genHandrailBool)
            layout.AddRow(self.handrailTypeLabel, self.handrailTypeC)
            layout.AddRow(self.handrailHeightLabel, self.handrailHeightC)
            layout.AddRow(self.handrailOffsetLabel, self.handrailOffsetC)
            layout.AddRow(self.handrailExtensionLabel, self.handrailExtensionC)
            layout.AddRow(self.handrailDiameterLabel, self.handrailDiameterC)
            layout.AddRow(self.DefaultButton, self.AbortButton)

            # Set the dialog content
            self.Content = layout
    def __init__(self, osStandards):
        self.toggleButton = forms.ToggleButton
        self.textField = forms.TextBox
        self.objfilter = sum([16,8,32,1073741824])
        self.obj = rs.GetObject("Select Object to Apply Zone Data to:", filter=self.objfilter, preselect=True)
        self.osStandards = osStandards['space_types']['90.1-2007']['ClimateZone 1-8']
        self.bldg = ''
        self.zone = ''
        self.Standards = []
        self.Title = "Zone Load Data"
        self.Padding = drawing.Padding(10)
        self.Resizeable = False
        self.fieldsDict = {
            'bldgProgram': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")],
            'zoneProgram': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")],
            'equipmentLoadPerArea': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")],
            'infilRatePerArea_Facade': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")],
            'lightingDensityPerArea':[ forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")],
            'numOfPeoplePerArea': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")],
            'ventilationPerArea': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")],
            'ventilationPerPerson': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")],
            'recirculatedAirPerArea': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")],
            'isConditioned': [forms.ToggleButton(Text = 'Yes'), forms.CheckBox(Text = "Lock")],
            'maxRoofAngle': [forms.TextBox(Text = None), forms.CheckBox(Text = "Lock")],
        }
        self.GetExistingValues()
        self.bldg_dropdownlist = forms.DropDown()
        self.bldg_dropdownlist.DataStore = self.osStandards  
        self.bldg_dropdownlist.DropDownClosed += self.Bldg_DD_Close
        
        self.zone_dropdownlist = forms.DropDown()
        self.zone_dropdownlist.DropDownClosed += self.Zone_DD_Close
        
        self.ApplyStandardsButton = forms.Button(Text = "Apply")
        self.ApplyStandardsButton.Click += self.OnApplyButtonClick
        
        self.DefaultButton = forms.Button(Text = "OK")
        self.DefaultButton.Click += self.OnOKButtonClick
        
        self.AbortButton = forms.Button(Text = "Cancel")
        self.AbortButton.Click += self.OnCloseButtonClick
        
        # Add Toggle Events 
        for k,v in self.fieldsDict.items():
            if isinstance(v[0], self.toggleButton):
                v[0].Click += self.ToggleClick

        #Create Layout
        layout = forms.DynamicLayout()
        layout.Spacing = drawing.Size(5,5)
        
        # Add Drop Down list
        layout.AddRow(self.bldg_dropdownlist, self.zone_dropdownlist)

        # Add Apply Standards
        layout.AddRow(self.ApplyStandardsButton)
        self.ApplyStandardsButton.Enabled = False
        
        # Add Fields
        for k,v in self.fieldsDict.items():
            self.m_label = forms.Label(Text = str(k))
            layout.AddRow(self.m_label, v[0], v[1])
            layout.AddRow(None)
            
        #Add Ok Close buttons
        layout.AddRow(self.DefaultButton, self.AbortButton)
        
        #Apply Layout to Form
        self.Content = layout