I installed Sketchup 2024 and one of my plugins does not load anymore. It’s the Snap Connector Tool by CADMan. I was hoping someone knew of a workaround. I have pasted the error log below. Thanks in advance.
Extension Errors Report
SketchUp: 24.0.484
OS: Windows 10
Ruby: 3.2.2
Extension: Snap Connector (2.1.10)
Error: NoMethodError (undefined method exists?' for File:Class) c:/users/jdkoll/appdata/roaming/sketchup/sketchup 2024/sketchup/plugins/cadman_snapconnector/main.rbe:860:in
block in module:SnapConnector2’
c:/users/jdkoll/appdata/roaming/sketchup/sketchup 2024/sketchup/plugins/cadman_snapconnector/main.rbe:9:in initialize' c:/users/jdkoll/appdata/roaming/sketchup/sketchup 2024/sketchup/plugins/cadman_snapconnector/main.rbe:9:in
new’
c:/users/jdkoll/appdata/roaming/sketchup/sketchup 2024/sketchup/plugins/cadman_snapconnector/main.rbe:9:in <module:SnapConnector2>' c:/users/jdkoll/appdata/roaming/sketchup/sketchup 2024/sketchup/plugins/cadman_snapconnector/main.rbe:7:in
module:Cadman’
c:/users/jdkoll/appdata/roaming/sketchup/sketchup 2024/sketchup/plugins/cadman_snapconnector/main.rbe:6:in <main>' C:/Program Files/SketchUp/SketchUp 2024/Tools/extensions.rb:197:in
eval’
C:/Program Files/SketchUp/SketchUp 2024/Tools/extensions.rb:197:in require' C:/Program Files/SketchUp/SketchUp 2024/Tools/extensions.rb:197:in
load’
C:/Users/jdkoll/AppData/Roaming/SketchUp/SketchUp 2024/SketchUp/Plugins/Cadman_SnapConnector.rb:34:in register_extension' C:/Users/jdkoll/AppData/Roaming/SketchUp/SketchUp 2024/SketchUp/Plugins/Cadman_SnapConnector.rb:34:in
<top (required)>’
I believe “exists?” needs to be changed to “exist?”. There was a discussion about this here recently but I didn’t find it in a quick search.
Thanks for the reply. How would I go about changing this? Opening the RBE file in Notepad results in gibberish.
The extension author(s) may have to make this change.
Dan Rathbun contributed to the solution I mentioned. He may be aware of who the authors are.
This ping may alert one of them:
@jim_foltz
You cannot change RBE files as they are encrypted.
(1) You can make a temporary change to the File
class until the author(s) of affected extension catch up and fix their extension code for Ruby 3.x ( SketchUp 24.0 and later. )
The Ruby statement needed to be evaluated before any extensions with the old method call are loaded:
File.define_singleton_method(:exists?) { |file_name| FileTest.exist?(file_name) }
I've wrapped it into a file you can install with the SketchUp Extension Manager ...
# encoding: UTF-8
#
# Redefine the File::exists? class method that was removed in Ruby 3:
unless File.respond_to?(:exists?)
File.define_singleton_method(:exists?) { |file_name|
FileTest.exist?(file_name)
}
end
!!_Ruby3_Fix_File_exists.rbz (315 Bytes)
(2) Snap objects are now built-into SketchUp as native objects.
1 Like
Thanks! I would really like to use the new “Snaps”. Unfortuantely, they don’t work with Dynamic Components. If you stretch a DC the snap doesn’t update. I’ve mentioned this to Trimble right after release. However, it is starting to look like Snaps have been abandoned…
Hi Dan. Just want to confirm that your fix works! Thanks for the help! It’s asking me to purchase now… I’ve tried contacting the developer, but he may have an old email address. I’m not sure, but he hasn’t got back to me.
2 Likes
Mark Carvalho sadly passed away last year.
I wrote the plugin in collaboration with Mark - he handled all the administration duties and sent a check periodically. I do not have access to his Extensions Warehouse account and even if I did I am unsure if I would be legally able to do anything with it.
1 Like
Thank you for the unfortunate update. My condolences to friends and family.
1 Like