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

    [Plugin] SketchUcation Tools 2.6.1

    Scheduled Pinned Locked Moved Plugins
    127 Posts 32 Posters 88.2k Views 32 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

      Can you please substitute the two RBS files in the attached ZIP [you need to extract them and move them manually], with the same named files in the ../Plugins/SketchUcation subfolder...
      And restart SketchUp and retest.
      This version traps for '' in $: folder-paths and makes them all '/' - so rogue paths [like Vray's] in $: don't mess us up...
      If it works we know it's the culprit...
      If not == Plan-B πŸ˜•


      PutIntoSketchUcationSubfolder.zip

      TIG

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

        That method appear to modify the input arguments. I wonder if you are passing around a reference from the system which might have been locked to protect it. The trivial way around that would be to not use the bang version of gsub ensuring that you create a copy when you modify the string.

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

        1 Reply Last reply Reply Quote 0
        • D Offline
          driven
          last edited by

          @tig said:

          If not == Plan-B :?

          isn't the primary error attempting to gsub the frozen string [probably VRay]

          in which case would .dup.gsub be the safer route?

          john

          learn from the mistakes of others, you may not live long enough to make them all yourself...

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

            The attached files redo the method, hopefully avoiding the gsub completely.
            The recode also replaces the '' with '/' in the folder-paths just in case.
            I am unclear how a 'string' passed into the $: could be frozen when pushed into there ?
            The gsub! manipulation occurred in a 'clone' of the $: anyway !
            Let's see what the OP finds...

            TIG

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

              @tig said:

              I am unclear how a 'string' passed into the $: could be frozen when pushed into there ?

              When adding objects to arrays you pass a reference - so the string could have been locked before pushed. That doesn't sound like something Ruby itself does, but it could be an extension that did it. For instance, it could create a constant to it's support folder - and then freeze it in order to protect its constant from inadvertent change. Then it could have pushed it to $; for convenience (all though that would be bad practice IMO).

              In any case - when iterating or fetching values external to your own extension, be careful to use methods that modify the object. Make sure to copy it as Ruby as the objects you pass around will refer to the same memory. http://stackoverflow.com/a/10974116/486990

              So if you iterate $: and use gsub you will be modifying the content of $: which might lead to unexpected result for the rest of the system.

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

              1 Reply Last reply Reply Quote 0
              • C Offline
                caecarvalho
                last edited by

                @unknownuser said:

                Looks like there is nothing odd about your $: πŸ˜•

                Looks like a permissions issue to me...
                Find C:\Users\CAETANO\AppData\Roaming\SketchUp\SketchUp 2015\SketchUp
                then with Admin powers, step up one level and select its folder-icon,
                ensure it has FULL permissions set for ALL those listed under:
                Right-click > Context-menu > Properties > Security > Edit
                OK/Apply
                Repeat the 'FULL' set up for the folders contents - there should be three subfolders Plugins, Classifications, Tools.
                Ensure that the contents of the 'Plugins' folder are all also set 'FULL'.
                The permission changes should automatically apply to a folder's contents, but just double-check...
                If the 'Plugins' folder is missing try making it ??
                try to delete the folder's "cookiejar.xml" file too - it might be corrupted.

                Restart SketchUp and test...

                If this fails...
                I see you have a Vray installation.
                Can you disable that plugin, restart SketchUp and retry - to see if it is somehow conflicting ?

                Hi Guys,

                I've seen a lot have been discussed, but I had the problem solved the hard way... 😞 Uninstalled everything, deleted all the remaining folders and reinstalled everything again...

                I've tryied everything that TIG said above but still no success... So what I did was:

                • Login as admin and ensured full permissions to every user to folder C:\Users\CAETANO\AppData\Roaming\SketchUp\SketchUp 2015\SketchUp and everything inside it.
                  -Deleted the "cookiejar.xml" file.
                  After that, ran SU and didn't work... So I disabled VFS and still didn't work...

                So I got mad and unistalled everything!! 😠

                But I'd like to thank you for your time to try to help!

                All the best,

                Caetano

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

                  @thomthom said:

                  @tig said:

                  I am unclear how a 'string' passed into the $: could be frozen when pushed into there ?

                  When adding objects to arrays you pass a reference - so the string could have been locked before pushed. That doesn't sound like something Ruby itself does, but it could be an extension that did it. For instance, it could create a constant to it's support folder - and then freeze it in order to protect its constant from inadvertent change. Then it could have pushed it to $; for convenience (all though that would be bad practice IMO).

                  In any case - when iterating or fetching values external to your own extension, be careful to use methods that modify the object. Make sure to copy it as Ruby as the objects you pass around will refer to the same memory. http://stackoverflow.com/a/10974116/486990

                  So if you iterate $: and use gsub you will be modifying the content of $: which might lead to unexpected result for the rest of the system.
                  It works on a clone of $:, so can I assume that the locked string still passes through that !
                  I can trap anyway for a gsub, so it's not critical...
                  EDIT:
                  After a little more delving I discovered some other potential pitfalls in $: paths containing \ versus / and 'cloning' of frozen strings etc...
                  The replacement RBS files in the attached ZIP should now avoid these ??


                  PutIntoSketchUcationSubfolder.zip

                  TIG

                  1 Reply Last reply Reply Quote 0
                  • tt_suT Offline
                    tt_su
                    last edited by

                    @tig said:

                    It works on a clone of $:, so can I assume that the locked string still passes through that !

                    How do you clone?

                    If you do call .clone then you clone the Array object itself - but it's a shallow clone. It doesn't clone all it's internal data.

                    <span class="syntaxdefault"><br />x&nbsp;</span><span class="syntaxkeyword">=&nbsp;[</span><span class="syntaxstring">"hello"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"world"</span><span class="syntaxkeyword">]<br />[</span><span class="syntaxstring">"hello"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"world"</span><span class="syntaxkeyword">]<br /><br /></span><span class="syntaxdefault">y&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">.clone<br />[</span><span class="syntaxstring">"hello"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"world"</span><span class="syntaxkeyword">]<br /><br /></span><span class="syntaxdefault">x</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">object_id<br />88135980<br /><br />y</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">object_id<br />90415700<br /><br />x</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">each&nbsp;</span><span class="syntaxkeyword">{&nbsp;|</span><span class="syntaxdefault">n</span><span class="syntaxkeyword">|&nbsp;</span><span class="syntaxdefault">puts&nbsp;n</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">object_id&nbsp;</span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">88136040<br />88136000<br /></span><span class="syntaxkeyword">[</span><span class="syntaxstring">"hello"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"world"</span><span class="syntaxkeyword">]<br /><br /></span><span class="syntaxdefault">y</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">each&nbsp;</span><span class="syntaxkeyword">{&nbsp;|</span><span class="syntaxdefault">n</span><span class="syntaxkeyword">|&nbsp;</span><span class="syntaxdefault">puts&nbsp;n</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">object_id&nbsp;</span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">88136040<br />88136000<br /></span><span class="syntaxkeyword">[</span><span class="syntaxstring">"hello"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"world"</span><span class="syntaxkeyword">]<br />&nbsp;</span><span class="syntaxdefault"></span>
                    
                    1 Reply Last reply Reply Quote 0
                    • tt_suT Offline
                      tt_su
                      last edited by

                      This article expand on the whole pass-reference-by-value nature of Ruby:
                      http://robertheaton.com/2014/07/22/is-ruby-pass-by-reference-or-pass-by-value/

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

                        Is this array.clone versus array.dup ?
                        I have side-stepped that process now anyway, by making a new array and adding items to that...

                        TIG

                        1 Reply Last reply Reply Quote 0
                        • tt_suT Offline
                          tt_su
                          last edited by

                          @tig said:

                          Is this array.clone versus array.dup ?
                          I have side-stepped that process now anyway, by making a new array and adding items to that...

                          Are you cloning the items you add?

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

                            In the format item = (""+d.to_s) where ' d' is the element taken from the array...

                            TIG

                            1 Reply Last reply Reply Quote 0
                            • Dan RathbunD Offline
                              Dan Rathbun
                              last edited by

                              Reminder that obj#clone() copies the frozen state of obj, whilst obj#dup() does not.

                              I'm not here much anymore.

                              1 Reply Last reply Reply Quote 0
                              • Dan RathbunD Offline
                                Dan Rathbun
                                last edited by

                                Back on topic, the person's problems came from the fact that they changed the plugin folder's icon under Windows, which messes up permissions. I've never been able to (comfortably) fix the folder except by re-creating it, copying all it's contents over, and deleting the one the had the changed icon. (...yes even despite the "Repair" button,...)

                                I'm not here much anymore.

                                1 Reply Last reply Reply Quote 0
                                • W Offline
                                  wahoowetzel
                                  last edited by

                                  Hi All,

                                  dumb question maybe, how do I use the plugin store extension with a different profile/how do I change my profile? I want to log into a different account.

                                  1 Reply Last reply Reply Quote 0
                                  • Rich O BrienR Online
                                    Rich O Brien Moderator
                                    last edited by

                                    You can't use multiple accounts on a device.

                                    Download the free D'oh Book for SketchUp πŸ“–

                                    1 Reply Last reply Reply Quote 0
                                    • W Offline
                                      wahoowetzel
                                      last edited by

                                      So I'm rolling out a profile/bundle of plugins as a standard starting point for an office. I've created a Profile for the office that multiple people will be able to log into in order to get the "standard" package of plugins. If they already have a sketchucation plugin store profile is there no way to allow them to log in to the office profile? What if they re-install sketchup?

                                      1 Reply Last reply Reply Quote 0
                                      • Rich O BrienR Online
                                        Rich O Brien Moderator
                                        last edited by

                                        We have a corporate version that is a managed solution whereby it has its own master account and the remaining devices use its installs.

                                        This prevents the users messing up with different bundles etc.

                                        Download the free D'oh Book for SketchUp πŸ“–

                                        1 Reply Last reply Reply Quote 0
                                        • W Offline
                                          wahoowetzel
                                          last edited by

                                          That makes sense, I don't have the same need for control here. I just want everyone to have the same starting point, it can evolve beyond that later. This doesn't help me with a solution if someone already has a profile, ie. "log out". Can you offer any suggestions there? Would re-installing sketchup work or no? I'm hesitant to do a test run and re-install anyone's sketchup before knowing what my options are and what may or may not even have an impact.

                                          1 Reply Last reply Reply Quote 0
                                          • Rich O BrienR Online
                                            Rich O Brien Moderator
                                            last edited by

                                            My memory is a woolly on the corporate/team version.

                                            I do remember that the master users dictates the bundle to be used and anyone else logging in can only use that bundle.

                                            I'd need to chat with Gabor about it.

                                            But reinstalling SU is not needed.

                                            Download the free D'oh Book for SketchUp πŸ“–

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 7
                                            • 5 / 7
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement