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