TIG Triangulate points not working in 2025?

Hi,
Is this happening to anyone else ?
I just tried running @TIG s fabulous Triangulate Points plugin in SU 2025 official release and got this error in the Ruby Console
“#<NameError: uninitialized constant Delauney3::FALSE>
C:/Users/Vivarchi/AppData/Roaming/SketchUp/SketchUp 2025/SketchUp/Plugins/delauney3.rb:120:in triangulate' C:/Users/Vivarchi/AppData/Roaming/SketchUp/SketchUp 2025/SketchUp/Plugins/TIG_points_cloud_triangulation.rb:86:in triangulate_points’
C:/Users/Vivarchi/AppData/Roaming/SketchUp/SketchUp 2025/SketchUp/Plugins/TIG_points_cloud_triangulation.rb:37:in initialize' C:/Users/Vivarchi/AppData/Roaming/SketchUp/SketchUp 2025/SketchUp/Plugins/TIG_points_cloud_triangulation.rb:118:in new’
C:/Users/Vivarchi/AppData/Roaming/SketchUp/SketchUp 2025/SketchUp/Plugins/TIG_points_cloud_triangulation.rb:118:in `block in <top (required)>'”

I tried the same in SU 2024 & got the identical result…
Went back to SU 2023 & it worked fine !

So if somebody could interpret the Ruby message and point to a solution i’d be most grateful :slight_smile:

My code uses a second RB file ‘delauney3.rb’
In it it weirdly uses undefined Constants FALSE and TRUE rather than Ruby’s false and true as checks.
It was a simple edit fix… [I hope]
Please replace the file in your Plugins folder with this edited one…
[file removed as it contains errors]
If it works let me know and I’ll add the updated one into the RBZs of whichever scripts use it…

Thanks, I tried that & got this error at SU startup:

Extension Errors Report
SketchUp: 25.0.571
OS: Windows 11
Ruby: 3.2.2

Extension: [unknown]
Error: SyntaxError (C:/Users/Vivarchi/AppData/Roaming/SketchUp/SketchUp 2025/SketchUp/Plugins/delauney3.rb:17: dynamic constant assignment
FALSE = false
^~~~~
C:/Users/Vivarchi/AppData/Roaming/SketchUp/SketchUp 2025/SketchUp/Plugins/delauney3.rb:18: dynamic constant assignment
TRUE = true
^~~~
)
<internal:C:/Program Files/SketchUp/SketchUp 2025/SketchUp/Tools/RubyStdLib/rubygems/core_ext/kernel_require.rb>:85:in require' <internal:C:/Program Files/SketchUp/SketchUp 2025/SketchUp/Tools/RubyStdLib/rubygems/core_ext/kernel_require.rb>:85:in require’
C:/Users/Vivarchi/AppData/Roaming/SketchUp/SketchUp 2025/SketchUp/Plugins/TIG_points_cloud_triangulation.rb:31:in `<top (required)>’

Extension: [unknown]
Error: SyntaxError (C:/Users/Vivarchi/AppData/Roaming/SketchUp/SketchUp 2025/SketchUp/Plugins/delauney3.rb:17: dynamic constant assignment
FALSE = false
^~~~~
C:/Users/Vivarchi/AppData/Roaming/SketchUp/SketchUp 2025/SketchUp/Plugins/delauney3.rb:18: dynamic constant assignment
TRUE = true
^~~~
)

I’m just testing it too and I need to refix it…
I’ve removed the bad edit from my post so no one else tries it !
I’ll post a working version very soon.

Fixing delauney3.rb is proving harder than I expected… I’m on it…

1 Like

I’ve published v2.0 here
https://sketchucation.com/pluginstore?pln=TIG_points_cloud_triangulation
Fixes Delauney3.rb Constant issues in newer SketchUp versions and tweaks some other issues with the RB itself, aslo signed it…

3 Likes

SU 2023 used Ruby 2.7.7, whilst SU 2024 & 2025 use Ruby 3.2.2.

FYI …

NEWS - Ruby 3.0.0 : Compatibility Issues

  • TRUE/FALSE/NIL constants are no longer defined.
1 Like

Thanks @TIG for your hard work, i’ll reinstall tomorrow!
And @DanRathbun thanks for looking into this too; it’s very sad that a lowercase UPPERCASE difference can mess things up !

As Dan explained succinctly - until v2024/5’s Ruby version changes, a ‘global’ FALSE/TRUE etc used to work as an alternative, but now the basic false/true etc is the only way to do it. I fixed it by making FALSE=false etc within the code’s module directly…

2 Likes

Well, it happens as Ruby is a “living language” subject to update. Generally, the deprecations are meant to encourage better code, in advance of breaking changes that are scheduled to happen at a later release.

In this case the deprecation

NEWS - Ruby 2.4.0 : Compatibility Issues

  • TRUE / FALSE / NIL
    These constants are now obsoleted. [Feature #12574]
    Use true / false / nil resp. instead.

… occurred with the Ruby 2.4.0 release (26 DEC 2016). But there was no specific SketchUp release that used this Ruby version. SU 2017 and 2018 used Ruby 2.2 and SU 2019 released using Ruby 2.5.
So, the need to avoid the global constants probably “slipped through the cracks” of many extension coders as SketchUp skipped Ruby 2.3 and 2.4.

If a Ruby programmer looked back at the change between the Ruby that SU 2018 and SU 2019 used, they would perhaps see the deprecation. I guess I’m saying it’s on programmers to be vigilant to Ruby language changes when SketchUp updates the Ruby version it ships with.

So being fair to the Ruby project, SketchUp extension coders had at least five years to adapt their code. But if a programmer has many forum code postings or numerous extensions “in the wild”, it can be quite a chore to update them.

So don’t be “sad” that very old plugins and extensions can fail in newer Ruby versions. It’s just a “fact of life”. This is not the only old plugin that had issues with Ruby changes.

Thanks for the insights into the mechanics of all that ! It raises an issue that has kept me out of coding (since learning basic in the 1980’s)… Namely that codes are too far removed from human language for many of us.
This is the perfect example in that any English speaking human will understand the words whether written in lower or upper case.
Of course as someone who loves languages I understand the wish to be elegant and respect grammar etc… However, code is for getting a machine to obey us humans, so as long as there is no ambiguity in the instruction or iteration, frankly who cares about case ?
A machine parsing the text should be able to understand eVeN if I WrITE bizarrely, no ? :wink:

This also leaves me in dread of the day when the 1001bit Pro tools break down since the wonderful goH seems to have dropped off the radar and so nobody will “fix” his code if ruby rule changes impact his suite of tools ! But that is another thread entirely…

It is not a simple as the case. true is the global protected reference of the singleton TrueClass, whereas TRUE was a global constant that pointed at true. It was arguably unnecessary as a duplication in the syntax. (Same for FALSE and NIL.)
I think it was originally meant to be a compliment for coders coming from other languages where TRUE and FALSE where uppercase. (Anyway, programmers can still define these uppercase constants locally within their modules or classes.)

:slight_smile: I believe you ! You’ve left me in the dust I’m afraid :wink: It just proves my point, code(s) are too far removed from how ordinary humans communicate, so we are grateful to leave the coding to all you smart people who understand how it works, and specifically how to navigate these nuances…
Indeed, in plain language true & TRUE signify the same thing; the second one is now seen as “shouty” since the appearance of phone texting in the late 90’s, but the word always means the same thing, so it’s a real eyeopener to discover that they can signify different things in a // universe of coding !
Well, that’s the beauty of places like this, we learn something interesting every day :slight_smile:

Hi, I am not able to load the delauney3.rb to SU 2021 which I am guessing is because of the update? It says the file is not a module. Thanks

The latest version of the tool includes a corrected delauney3 file.
The link was given in the post above: https://sketchucation.com/pluginstore?pln=TIG_points_cloud_triangulation
Are you trying it ? If should work in v2021…
If it isn’t please provide the full error message etc…

Thanks, 2 screen shots attached to capture error

(attachments)


What version of the tool do you have installed ?
I’m investigating…

Please read the two RB files…
The tool should be v2.0
The delauney3.rb should have the following code in it

module Delauney3

FALSE = false
TRUE = true

I just noticed that your error has an odd version of the delaunay3 file that’s an RBE file !
You seem to have an odd file [not supplied by me] in ../Plugins/delaunay_mesh/delauney.rbe, this is interfering with my files. try removing it but keep my ../Plugins/delauney3.rb as that is needed by my tool…
Your RBE version must be used by something else, ill-advisedly.

Thanks that fixed it.