sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Help with dialog

    Scheduled Pinned Locked Moved Developers' Forum
    6 Posts 2 Posters 6.9k Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • PixeroP Offline
      Pixero
      last edited by

      I need to make a dialog with three dropdown menus where the user can choose from the scenes materials and one input where the default value would be say 1000 mm.

      I have looked at other scripts and tried to create it but I've messed up somewhere as I haven't done my menus in the exact same way as the examples. Could someone please guide me to a working solution?
      Here is the Dialog part of the script:

      
      	@@first_mat = nil
      	@@second_mat = nil
      	@@third_mat = nil
      	@@distance = nil
      
      	model = Sketchup.active_model  
      	mats = model.materials 
      	ent = model.entities  
      	sel = model.selection  
      	
      	matNames=[]
      	matNstmp=[]
      	mats.each{|m|matNstmp.push(m.display_name)}
      	matNstmp.sort!
      	matNames=matNames+matNstmp
      	matList=matNames.join('|')
      	
      	@@first_mat = matList unless @@first_mat
      	@@second_mat = matList unless @@second_mat
      	@@third_mat = matList unless @@third_mat	  
      	@@distance = 1000.mm unless @@distance	
      	
      	# dialogs
      	info = [matList]
          	prompts = ["Material 1; ", "Material 2; ", "Material 3; ", "Distance; "]
          	results = inputbox(prompts,["", "", "", 1000.mm], [matList, matList, matList, nil],"Settings")
      	results = nil if results and results[0] == ""
      
      
      1 Reply Last reply Reply Quote 0
      • TIGT Offline
        TIG Moderator
        last edited by

        Use this:
        @@first_mat = **matNames**[0] unless @@first_mat @@second_mat = **matNames**[0] unless @@second_mat @@third_mat = **matNames**[0] unless @@third_mat @@distance = 1000.mm unless @@distance

        Then use those in your inputbox's default values etc...
        prompts = ["Material 1: ", "Material 2: ", "Material 3: ", "Distance: "] defaults = [@@first_mat, @@second_mat, @@third_mat, @@distance] pops = [matList, matList, matList, ""] title = "Settings" results = inputbox(prompts, defaults, pops, title)

        After a successful 'result' is returned you need to reset the remembered 'values', thus:
        @@first_mat, @@second_mat, @@third_mat, @@distance = results ###if results

        TIG

        1 Reply Last reply Reply Quote 0
        • PixeroP Offline
          Pixero
          last edited by

          Thank you!

          1 Reply Last reply Reply Quote 0
          • PixeroP Offline
            Pixero
            last edited by

            And another one:

            See how the dropdown menu looks in the attached image.
            I have used drop down menus in scripts before without problem but can't find whats wrong here.

            
            @@axis = "Y" unless @@axis
            prompts = ["Axis; "]
            drops = ["X" '|' "-X" '|' "Y" '|' "-Y" '|' "Z" '|' "-Z"]	
            title = "Settings"
            defaults = @@axis
            results = inputbox(prompts, drops, title, defaults)
            
            

            settings.jpg

            1 Reply Last reply Reply Quote 0
            • TIGT Offline
              TIG Moderator
              last edited by

              It should be
              results = inputbox(prompts, **defaults**, drops, title)
              You have the wrong order... ' defaults' comes second in the list that is passed to the inputbox, AND it must be made as an array - so use defaults = [@@axis] assuming that @@axis is a string- e.g. "X" etc...

              TIG

              1 Reply Last reply Reply Quote 0
              • PixeroP Offline
                Pixero
                last edited by

                Thanks. That worked.

                1 Reply Last reply Reply Quote 0
                • 1 / 1
                • First post
                  Last post
                Buy SketchPlus
                Buy SUbD
                Buy WrapR
                Buy eBook
                Buy Modelur
                Buy Vertex Tools
                Buy SketchCuisine
                Buy FormFonts

                Advertisement