Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Recent
    • Tags
    • Users
    • Login

    How to Add Files Dir to AddCombobox?PLZ!

    Scheduled Pinned Locked Moved PYTHON Development
    6 Posts 0 Posters 599 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.
    • H Offline
      Helper
      last edited by

      On 20/10/2015 at 08:09, xxxxxxxx wrote:

      Hi Guys!
      How can I show a folder with file names  in side a AddCombobox , like with the FS SDK for 3ds Max and Bender Plug-in, to add effects to the object, its a drop down list of all the files effects names and it attach to the object  on which one you select in the list.

      So like what I want is how can i make it find effects Folder in Fsx folder and show them in the AddComboBox list :
      C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\Effects
      Then Tag with the model or a null, so I guess I make a Command Plug-in generate a Tag or just make a Tag Plug-in for it.

      Example: 

      So how Can i Get File C4d Find the Folder and AddComboBox read it 
              self.format_list = self.AddComboBox(Exporter_Button, c4d.BFH_SCALEFIT, 46, 0, False)
              self.AddChild(Exporter_Button, thee_Ds, '3D Studio (*.3ds)')
              self.AddChild(Exporter_Button, Alembic_abc, 'Alembic (*.abc)')
              self.AddChild(Exporter_Button, DAE_1_4, 'COLLADA 1.4 (*.dae)')
              self.AddChild(Exporter_Button, Direct_3D, 'Direct 3D (*.x)')
              self.AddChild(Exporter_Button, FBX_ALL, 'FBX (*.fbx)')
      #-------------------------------------------------------------------------------------------------------------#

      Now this is i saw from the Guys how made the Blender Python Plugin code :
      if yo want Download to see the whole thing:
      http://www.fsdeveloper.com/wiki/index.php?title=Blender2FSX_Toolset_manual

      (Reason Why i only post a little of the code cause its a lot and he have it broken up in to multi py files for blender, So its best you Download and take a look at it)

      CODE:
      import bpy
      import xml.etree.ElementTree as etree
      from mathutils import Vector
      from os import urandom
      from winreg import OpenKey, QueryValueEx, HKEY_LOCAL_MACHINE, REG_SZ, REG_EXPAND_SZ
      #-----------------------------------------------------------#

      Help or Tips,
      Ashton

      1 Reply Last reply Reply Quote 0
      • H Offline
        Helper
        last edited by

        On 21/10/2015 at 09:14, xxxxxxxx wrote:

        This what I find but its a MaxScript guys. and I don't understand. PlZ help!
        I will try something then show what i come up with.

        	\--Define all of the rollouts possible to use starting with:
        	\--THE EFFECTS ROLLOUT
        	Rollout effectsRollout "Attach Effect"
        	(
        		\--Prompt for the effects directory, then gather all the effects in that directory.
        		fn	defineFXList =
        		(
        			local effectsList = #()
        			local thisFSPath = maxUtils.getRegKey "HKEY_LOCAL_MACHINE" "SOFTWARE\Microsoft\microsoft games\flight simulator\10.0" "SetupPath"
        			global thisEffectsDir = thisFSPath + "effects"
        			if not doesFileExist thisEffectsDir then 
        			(
        				thisEffectsDir = getSavePath caption:"I can't find your Flightsim effects directory.  Please locate the effects directory you want to choose from."
        			)
        			if thisEffectsDir != undefined then
        			(
        				for f in getFiles (thisEffectsDir + "\\\\\*.fx") do
        				(
        					append effectsList (getFilenameFile f)
        				)
        			)
        			return effectsList
        		)
        	
        		dropdownlist attachedEffect "Effect to attach:" items:(defineFXList ()) height:30
        		edittext effectParams "Effect Params:" fieldwidth:184 height:100
        		
        		\--When the effect drop down list is changed, update the name text box to use the name of that effect
        		on attachedEffect selected newAttachedEffect do
        
        1 Reply Last reply Reply Quote 0
        • H Offline
          Helper
          last edited by

          On 26/10/2015 at 05:39, xxxxxxxx wrote:

          Hi Ashton,

          I assume you want to do this in a dialog.
          Then it is actually pretty simple:
          a) Browse the desired directory using standard Python functions. For example os.walk() comes to mind.
          b) Use GeDialog.AddChild() to add the filenames to your combobox.

          1 Reply Last reply Reply Quote 0
          • H Offline
            Helper
            last edited by

            On 26/10/2015 at 17:09, xxxxxxxx wrote:

            i will try that Andreas 
            and thanks man

            1 Reply Last reply Reply Quote 0
            • H Offline
              Helper
              last edited by

              On 30/10/2015 at 04:00, xxxxxxxx wrote:

              Hi Guys and  Andreas,
              It did not work and didn't show up in the plugin lists , what i did wrong?
              Plugin was working and till this happen, when I add this feature.

              CODE:
                  #--------| Imports |-------#
              #-------------------------------------#
              from winreg import HKEY_LOCAL_MACHINE
              #-------------------------------------#

              def EffectsDir(self) :
                  for root, dirs, files, in os.walk("HKEY_LOCAL_MACHINE", "SOFTWARE\\Microsoft\\microsoft games\\flight simulator\10.0") :
                  EffectsDir = thisFSPath
                  global thisEffectsDir = thisFSPath + "effects")

              #------------------| Interface CINEMA 4D to FLIGHT SIM! Layout |----------------------------#
              class C4DtoFlightSimDialog(c4d.gui.GeDialog) :

              def CreateLayout(self) :
                      self.GroupBegin(20078, c4d.BFH_SCALEFIT | c4d.BFV_BOTTOM, 3, 0, "")
                      self.AddCheckbox(Selected_1, c4d.BFH_LEFT, 250, 0, "Selected Object Only")
                      self.SetBool(Selected_1, True)
                      self.AddStaticText(0, c4d.BFH_LEFT, 90, 0, "FORMAT :")
              #---------------------------------------------------------------------------------#
                      self.AddComboBox(Exporter_Button, c4d.BFH_SCALEFIT, 46, 0, False)         
                      self.AddChild(Exporter_Button, EffectsDir)
              self.GroupEnd()
              #-------------------------------------------------------------------------------------------------------------------------#

              Help or Tips,
              Asthon

              1 Reply Last reply Reply Quote 0
              • H Offline
                Helper
                last edited by

                On 30/10/2015 at 04:59, xxxxxxxx wrote:

                Hi Ashton, keep the console open when testing your plugin. You will probably find an IOError there. You can't use the standart filesystem functions for accessing the registry. Use the winreg module instead

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post