Developing the WikiHouse Plugin for SketchUp
The initial versions of the first plugin (download it from GitHub here) are an amazing project, the core author was the brilliant @Tav, along with @thruflo. But we know it's very basic, there are still bugs and most importantly... it's super incomplete. It's an area where a bit of coding skill is probably going to go a heck of a long way!
Currently it:
1. Seeks groups or components that are 18mm thick and has two identical faces.
2. Extracts one of those faces.
3. 'Nests' the parts onto standard 2400x1200mm sheets (very badly!)
4. Takes the component name and labels it onto each part (again,badly!)
5. Generates an svg (meant to be dxf too but doesn't work often!)
Then manually / using separate software one has to:
6. Lay them out properly onto sheets! (Often it is ironically easier to do it manually anyway!)
7. Rotate the labels, centre them and put them into, (we use) ISOCPEUR font (because it's easy for CNC machine to engrave).
8. Offset the edges inwards (and the holes outwards) by a set parameter (usually .1mm, but this ultimately depends on material / climate etc.)
9. Generate proper complete dxfs, with lines on appropriate layers like this one.
10. Covert into g-code for CNC in another separate proprietary software. (Again, it is possible that there is now a ruby script which does this direct?)
So one of the key dev challenges is to get the script working and automate as many of these steps as possible. In the case of, for example, nesting parts onto sheets efficiently, we know there are proprietary industrial scripts out there that do this (eg http://www.optinest.com/definition_of_what_is_cnc_nesting_software.asp ), so you can imagine the impact of developing that capability in the public domain - Not just for Wikihouse but for all kinds of CNC, laser manufacturing hardware projects...
Have I missed anything?
Ok, so its been a bit of a steep learning curve for the last month or so, with lots of learning of new languages and such, but I am now in a position to report on the progress I have made with the Wikihouse extension. A full list of changes can be found here, though in summary their are two new features added that I thought would help the most first:
At current, as Tav has to pull in all these changes before they are made available for download via the web site, I think it would be good to have a link to my branch of the code on GitHub on this groups welcome page, so that everyone can have access to the latest development version and hopefully try it out and get back to me with any bugs :). Specifically I would be grateful if people could test this out on a Windows platforms for me, as I have only tested it on Mac so far. To install, simply download my development branch on Github: https://github.com/MrKriss/wikihouse-plugin/archive/Dev.zip and follow README instructions.
There is still much that can be done with the extension, so if anyone would like to lend a hand with the coding that would be great. It has only taken me about 2 months to bring myself up to speed on everything (Ruby, SketchUp API, Javascript and HTML) and I am planning on making a post with pointers to resources I found useful on getting started with all of them. If you are interested in getting involved please email me, as I have collated quite an extensive list of things that need doing on my Kanban board at https://kanbanflow.com/, and can easily share it with you to avoid any work duplication. The site provides a good (and free) platform to work collaboratively on a project and visualise its progress easily. I'd also be happy to add anyone if they are interested in the finer details of the progress being made (sharing individual boards is by invite only at current, so drop me an email if you would like one).
Plywood sheet depth issues
There is an ongoing issue with side faces of panels being erroneously included in the cutting template if the thickness of the panels modeled is bellow or above the set thickness thresholds (previously hardcoded at 17mm and 19mm). This issue is still present, but now these thresholds are variable according to the user set thickness (+ 1mm and - 1mm). The end result is that if your model contains panels of different thicknesses, cutting templates cannot all be generated at once, but they can be done in groups by setting the sheet depth parameter and then just selecting all parts of that thickness before running the 'make cutting templates' command. However at current I think the file names of the SVG files would override each other, so after generating one set, rename it to something meaningful before generating the next. I know this is not ideal, but it will have to do till I have time to look at the specific methods of extracting pannel faces in more detail.
Alastair and I met with one of the SketchUp team a few weeks back and they offered some support (a little further down the line) from their dev team, and suggested we start posting results to www.sketchucation.com. I'll look to do this at some point. In the mean time I will ask Tav to look at merging your pull-request and very happy to include a link to your branch in the group welcome here (I'll do this later today/tomorrow as currently travelling).
Thanks again and keep up the great work!
Nicholas