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

    Writing a config or temp file in Plugins folder

    Scheduled Pinned Locked Moved Developers' Forum
    20 Posts 7 Posters 937 Views 7 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.
    • Chris FullmerC Offline
      Chris Fullmer
      last edited by

      @notareal said:

      if a strict security policy is in use - user cannot write anything in application folders.

      So what folder does Windows expect people should be able to write to? - somewhere in the users folders probably, right? Could you set it up to write to a special folder in the users MyDocuments or something? And then like Thom suggests, use write_default to save the location of the file.

      Lately you've been tan, suspicious for the winter.
      All my Plugins I've written

      1 Reply Last reply Reply Quote 0
      • thomthomT Offline
        thomthom
        last edited by

        You'd have to make a Win32 API call to get the correct path.

        What about OSX, any restriction there?

        Thomas Thomassen β€” SketchUp Monkey & Coding addict
        List of my plugins and link to the CookieWare fund

        1 Reply Last reply Reply Quote 0
        • jeff hammondJ Offline
          jeff hammond
          last edited by

          @thomthom said:

          What about OSX, any restriction there?

          yeah, there are restrictions there.
          for instance, using fredoscale as an example (which has the default parameter file), i can only change those defaults from my admin account.. if i try doing it from a user acct then the changes don't stick.
          i can however, as an admin, give the user acct. read/write permissions to the entire plugin folder or specific files in which case a user can make changes to fredoscale's parameters which will affect both the user's sketchup and the admin's sketchup.

          [and if i remember correctly, there were some problems with the fredoscale.def file being created in the first place when someone was trying to install from a non-admin acct.. ie- it didn't work]

          dotdotdot

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

            Why does it have to be a file made in the ../Plugins/ folder ?
            There are many places that a user will have access rights - e.g. C:\Temp ?
            You can also get the User's very own 'TEMP' folder using ENV["TEMP"] for PC or ENV["TMPDIR"] for MAC - e.g. C:\Users\TIG\AppData\Local\Temp

            πŸ€“

            TIG

            1 Reply Last reply Reply Quote 0
            • thomthomT Offline
              thomthom
              last edited by

              The temp folder doesn't work well when you want to store persistent config files.

              Thomas Thomassen β€” SketchUp Monkey & Coding addict
              List of my plugins and link to the CookieWare fund

              1 Reply Last reply Reply Quote 0
              • thomthomT Offline
                thomthom
                last edited by

                What we need in the API is a method that will return the path to where one can store application data on each OS.

                Thomas Thomassen β€” SketchUp Monkey & Coding addict
                List of my plugins and link to the CookieWare fund

                1 Reply Last reply Reply Quote 0
                • thomthomT Offline
                  thomthom
                  last edited by

                  On Win7 I see this key:
                  LOCALAPPDATA - C:\Users\Thomas\AppData\Local

                  Is there something on OSX?

                  Thomas Thomassen β€” SketchUp Monkey & Coding addict
                  List of my plugins and link to the CookieWare fund

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

                    My ENV example combined with a simple OS test lets you find the User's own TEMP file...
                    The PC's ENV["LOCALAPPDATA"] would allow you to then make a specific sub-folder to contain the config file - on a MAC what is it ?

                    BUT you can save config info in other ways...

                    To save them
                    If it's entity specific use entity.set_attributes(dict,key,value)
                    If it's model specific use model.set_attributes(dict,key,value)
                    If it's Sketchup specific use Sketchup.write_default(section,variable,value)
                    [if it's a file-path with '' you'll need to use tr("\\","/") before writing it]

                    To retrieve them use
                    entity.get_attributes(dict,key,default)
                    model.get_attributes(dict,key,default)
                    Sketchup.read_default(section,variable,value)
                    [if it's a file-path you'll need to use tr("/","\\") after reading it and before using it]
                    πŸ€“

                    TIG

                    1 Reply Last reply Reply Quote 0
                    • thomthomT Offline
                      thomthom
                      last edited by

                      @tig said:

                      [if it's a file-path with '' you'll need to use tr("\","/") before writing it]

                      Or use File.expand_path

                      @unknownuser said:

                      I have to try if once again. If my memory doesn't deceive me I haven't had good results with it in the past.

                      I use it quite frequently. But beware that it doesn't handle Length objects well - so convert them into floats first. (I made a wrapper to handle conversion of Length and Symbol for write/read_default)

                      Thomas Thomassen β€” SketchUp Monkey & Coding addict
                      List of my plugins and link to the CookieWare fund

                      1 Reply Last reply Reply Quote 0
                      • T Offline
                        tomasz
                        last edited by

                        @tig said:

                        Why does it have to be a file made in the ../Plugins/ folder ?

                        It doesn't have to be. If I would have just a chance to write a path to the config file then it would be ok...
                        I have forgotten about Sketchup.write_default. Thanks Thomas!
                        I have to try it once again. If my memory doesn't deceive me I haven't had good results with it in the past.

                        Author of [Thea Render for SketchUp](http://www.thearender.com/sketchup)

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

                          Note that read/write_defaults is best with Strings - convert then from/to Float [or whatever] afterwards... πŸ˜‰

                          TIG

                          1 Reply Last reply Reply Quote 0
                          • thomthomT Offline
                            thomthom
                            last edited by

                            works fine with floats, integers, even arrays in my experience...

                            Thomas Thomassen β€” SketchUp Monkey & Coding addict
                            List of my plugins and link to the CookieWare fund

                            1 Reply Last reply Reply Quote 0
                            • N Offline
                              notareal
                              last edited by

                              For windows %appdata% ?

                              Welcome to try [Thea Render](http://www.thearender.com/), Thea support | [kerkythea.net](http://www.kerkythea.net/) -team member

                              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