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.
    • 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