• Login
sketchucation logo sketchucation
  • Login
🤑 SketchPlus 1.3 | 44 Tools for $15 until June 20th Buy Now

Help with dialog

Scheduled Pinned Locked Moved Developers' Forum
6 Posts 2 Posters 6.9k Views
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