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
Пример #2
0
 def create_numeric_stepper(decimal_places = 2, increment = 1, value = 0, 
                            min = None, max = None, format_string = None,
                            change_event_method = None):
                                
     numeric_stepper = forms.NumericStepper()
     numeric_stepper.DecimalPlaces = decimal_places
     numeric_stepper.Increment = increment
     numeric_stepper.Value = value
     if max:
         numeric_stepper.MaxValue = max
     if min:
         numeric_stepper.MinValue = min      
     if format_string:
         numeric_stepper.FormatString = format_string
     if change_event_method:
         numeric_stepper.ValueChanged += change_event_method      
     return numeric_stepper
    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
Пример #4
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