Window Crafter: Free SketchUp Plugin Looking for Testers

It is a great tool I love it, from my perspective, there are two areas for improvement:

  1. Aluminum Windows: If these are installed on a slab, they require a sub-sill. This addition increases the overall height by approximately 10-15mm.
  2. 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.

Hi Hamzah,
Your extension is amazing! Top-notch ! Thks a lot.

For my SketchUp v2017 I use the v1.00 because The v1.40 don’t run. I have errrors with the left column with parameters.

With your v1.40 version I have this traceback:

Erreur de chargement du fichier C:/Users/Patrick/AppData/Roaming/SketchUp/SketchUp 2017/SketchUp/Plugins/demchenko_windowcrafter/main.rb
Error: #<SyntaxError: C:/Users/Patrick/AppData/Roaming/SketchUp/SketchUp 2017/SketchUp/Plugins/demchenko_windowcrafter/main.rb:312: syntax error, unexpected '.'
..._observer) if @observed_model&.valid?
...                               ^>
C:/Program Files/SketchUp/SketchUp 2017/Tools/extensions.rb:197:in `require'
C:/Program Files/SketchUp/SketchUp 2017/Tools/extensions.rb:197:in `load'
C:/Users/Patrick/AppData/Roaming/SketchUp/SketchUp 2017/SketchUp/Plugins/demchenko_windowcrafter.rb:27:in `register_extension'
C:/Users/Patrick/AppData/Roaming/SketchUp/SketchUp 2017/SketchUp/Plugins/demchenko_windowcrafter.rb:27:in `<module:WindowCrafter>'
C:/Users/Patrick/AppData/Roaming/SketchUp/SketchUp 2017/SketchUp/Plugins/demchenko_windowcrafter.rb:10:in `<module:Demchenko>'
C:/Users/Patrick/AppData/Roaming/SketchUp/SketchUp 2017/SketchUp/Plugins/demchenko_windowcrafter.rb:9:in `<top (required)>'

EDIT: I corrected myself in #312 line I removed the “&” . The extension run now

But the preview don’t run !

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.

So your extension don’t run with SU v2017 ! Bad news!

It’s not mine. Bogdan might be able to make it work with 2017.

Ha yes sorry I don’t saw your name. Sorry.

Try this one
window_crafter_v1.4.1.rbz (127.8 KB)

Thanks for the plugin, when i turn styles to monocrome, there is some face issues..

Thanks I’ll look into this

A comment in your code tells part of the story:

Manual faces can be mixed-orientation; colour both sides.

You have reversed faces.

It looks like you try to color both sides to ‘fix’ this?

But also, the code tries to add material to groups and components. Only faces might be preferred.

I like your UI. If you’re not aware, you can adjust the scrollbar color:

css

/* Scrollbar Styles */

::-webkit-scrollbar {

width: 10px; /* Width of vertical scrollbar */

height: 10px; /* Height of horizontal scrollbar */

}

/* Scrollbar Track */

::-webkit-scrollbar-track {

background: #f1f1f1; /* Light gray background */

border-radius: 5px;

}

/* Scrollbar Handle */

::-webkit-scrollbar-thumb {

background: #ccc; /* Gray scrollbar */

border-radius: 5px;

}

/* Scrollbar Handle on Hover */

::-webkit-scrollbar-thumb:hover {

background: #999; /* Darker gray when hovered */

}

/* For scrollbar styling */

* {

scrollbar-width: thin;

scrollbar-color: #ccc #f1f1f1;

}

Try this one

window_crafter_v1.4.2.rbz (128.9 KB)

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.

Thank you, I appreciate the reply :slight_smile:

Hi Hamzah,

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.

Thanks!

Try the updated version. The bottom frame has been removed. Thanks for checking.

Thanks Hamzah that worked.

‌Ho thanks you so much Hamzah your addon is very usefull!

I try it now…;

No problem Hamzah Yu’re a Chief ! Thks.