sketchucation logo sketchucation
    • Login
    πŸ›£οΈ Road Profile Builder | Generate roads, curbs and pavements easily Download

    Writing a config or temp file in Plugins folder

    Scheduled Pinned Locked Moved Developers' Forum
    20 Posts 7 Posters 1.1k 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.
    • 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