• Login
sketchucation logo sketchucation
  • Login
Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
🫛 Lightbeans Update | Metallic and Roughness auto-applied in SketchUp 2025+ Download

Help with dialog

Scheduled Pinned Locked Moved Developers' Forum
6 Posts 2 Posters 7.0k 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.
  • P Offline
    Pixero
    last edited by 4 May 2019, 15:10

    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
    • T Offline
      TIG Moderator
      last edited by 4 May 2019, 15:58

      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
      • P Offline
        Pixero
        last edited by 4 May 2019, 18:03

        Thank you!

        1 Reply Last reply Reply Quote 0
        • P Offline
          Pixero
          last edited by 29 May 2019, 12:08

          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
          • T Offline
            TIG Moderator
            last edited by 29 May 2019, 12:20

            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
            • P Offline
              Pixero
              last edited by 29 May 2019, 13:45

              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