It is a great tool I love it, from my perspective, there are two areas for improvement:
Aluminum Windows: If these are installed on a slab, they require a sub-sill. This addition increases the overall height by approximately 10-15mm.
Reports and Annotations: It would be helpful to have main attributes available for generating reports, as well as an easier way to add annotations in the layout.
I don’t have the experience/knowledge to know so maybe there is an element of not understanding because the suggestions are subjective and the reasons aren’t obvious to me. I suppose this may have its upsides.
No debugger for me either. Anything unexpected in the console and puts statements, mostly.
I took a peak at the linked info. I’m going to wait to makes changes, since I’m not that comfortable with the new-ish SU RuboCop 2.0. Maybe hebegeebees aren’t required on my part as far as style goes if no one reads it at EW. One of my EW review files started with a few of your comments: don’t monkey patch, don’t modify Ruby core classes, use refinements… I’ve seen comments here (by others) that they would not test code when they noticed some of these errors. The OP posted code that wasn’t namespaced correctly, so I didn’t load it (though I didn’t think it would cause much trouble).
This seems like the reasoning behind some of the style comments I’ve read.
Here I used:
Metrics/ParameterLists:
Enabled: true
Max: 5
CountKeywordArgs: false
The style guide suggests a maximum of 3 (IIRC). I turned it up a bit because these changes are generally substantial for my code.
… many hours later. I didn’t mean to take so long to reply but I ended up running through a lot of offenses. Quick takes:
Metrics/PerceivedComplexity
Metrics/CyclomaticComplexity
Metrics/ParameterLists
Checking/changing these made things easier to read. But these can go a little higher:
Metrics/CyclomaticComplexity:
Max: 15
Metrics/PerceivedComplexity:
Max: 15
Metrics/ParameterLists:
Max: 8
CountKeywordArgs: false
MaxOptionalParameters: 5
I guess the point there is I agree with your comment: one just has to run through to try to get a feel of what’s ‘about right’ for how they do things. I appreciate that you took the time to give me your take.
To circle back… @Hamzah198501 I think you’d benefit from setting up Rubocop. Window Crafter has a few cool features but the code behind it could be brushed up.
It’s because v1.4 isn’t fully compatible with Ruby 2.2.4 / SketchUp 2017.
main.rb uses @observed_model&.valid?; the safe-navigation operator &. was added in Ruby 2.3, so SketchUp 2017 cannot parse it.
v1.4 also uses newer Ruby methods like Enumerable#sum, Numeric#positive?, and Numeric#negative?, which are not available in Ruby 2.2.
The dialog uses modern CSS such as display: grid and flex gap. SketchUp 2017’s HtmlDialog uses CEF 52, where those features are not reliably available. That may explain why the left parameter column does not work correctly.
Slightly off topic, how do you even go about asking AI to make this plugin? Its very impressive. Did it design the interface for you too? I have some ideas for plugins that could help me immensely but I have zero programming background.
Start by downloading Visual Studio Code and installing the Claude extension or another AI coding agent of your choice. Create a dedicated project folder, open it in VS Code, and describe the plugin and the features you want to the agent.
ChatGPT, Claude, or another agent can guide you through the setup and development process step by step. You can also watch YouTube videos showing how people create websites, apps, and software using VS Code.
I’ve just tried the latest version and I’m running SketchUp Pro 2026 on an iMac.
I created an entrance door with two sidelites (see the attached images). The plugin seems to create the top frame members for the sidelites correctly, but it looks like it’s having trouble generating the bottom frame members. The top section appears fine, but the lower frame components don’t seem to be created as expected.
Is this a known issue, or is there something I might be missing?
I’ve attached a few screenshots to help illustrate the problem.