[Plugin] Hole Punching Tool
-
@tig said:
You made a spelling mistake in the name; I've corrected the posted version...
...TooZH... should have been ...ToolZH...tig I too admire you, I was too stupid, I want to translate all your tools in China to promote!
-
I'm new to sketchup but obviously I realized already that half its potential is due to people like you. So thank you!
This tool immediatly struck me by its usefulness, (well it sort of punched me in the nose, actually).
It still lacks one thing to be perfect though, (not that I am complaining or anything, I don't wanna be punched again):
You clearly state that the inner walls must be paralel to the outer ones. However, would it be very hard to make the tool work even if they're not?
To put in other words, could one use this tool in a wall made of Joint-pushed-pulled loft surfaces?
-
JQL
At the moment it is a 'wall punching tool'... and walls have a front and a back face that are parallel...
Ti allow other permutations gets very complicated - as you will find if you try to PushPull a shape on an outer face it will not punch an inner face if it's not perpendicular to the push/pull direction [i.e. parallel with the original face]... You can get around it by pulling it further, intersecting the new form with the back face and erasing the unwanted bits to leave a hole - but this is pretty complex to code in...
A JPP'd pair of faces should be parallel.
If the punching spans more than one facet you'll only get the inner hole in the most 'central' one.
Best to do a second JPP, intersect and erase unwanted bits? -
@tig said:
Best to do a second JPP, intersect and erase unwanted bits?
Thought so... If it isn't easy to do "by hand" it should be very hard to automate. The work around I used was to insert a volume inside the window component in a separate layer. Then I intersected the inner wall with the component and removed what I didn't want. I then hid the separate layer of the volume. To close the walls I had to make the component unique and draw the necessary lines. Repeat the process for the other windows... Hate complex shapes.
It will be an headache to change the window positions later and not being able to drag the inner hole with it.
I will try to find a tool that "drapes" a hole in a surface in the direction of a given face/component. It would be cool if it could also "drape" a fill in the hole after, so I could easily heal the face again at a much later time if i need to... maybe by extending all the lines in the surface. There should be something like that.
Any way thanks for your excelent tools and your unbelievably fast answer! That I just didn't expect!
-
Hi, TIG,
I'm using SU8 free, on a MacBook Pro Core Duo 1.83 GHz, 1.5 GB Ram, OS 10.6.8. with latest Java patch. The #HolePunchTool.rb is located at
/Library/Application Support/Google SketchUp 8/SketchUp/plugins along with deBabelizer.rb, and the various .lingvo files are in plugins/TIGtools.In the past I've sometimes been able to use the Hole Punching Tool to great advantage, but not now. No matter what I do, I get the message "No Suitable Punching Component(s) Selected. Exiting."
This happens both with the actual window I'm trying to use, and with a test component that's just a rectangular prism. Both are set to glue and cut hole. I've tried pasting the window/prism inside the editing context of the walls, exploding the wall component before trying to punch, and just positioning the window component on the wall without opening either. Tried selecting both punching component and target, or only component. Nothing helps.
I know I'm missing some really simple point here, and it's embarrassing to ask you, but I can't seem to figure it out on my own, and the advantages of your tool are irresistible. Thanks for saving countless people countless hours of intersecting and erasing, and for your help with this.
David
This is the whole problem, in a file reduced to the relevant elements only.
-
Your window has its insertion-point [axes] on its back corner, not the front - where it might normally be put.
It also is placed onto the wall's inner-face - not its outer-face - so there's nothing to be punched, as it punches backwards from the component, expecting to meet an inner-face.
If you move the instance onto the outer-face and reglue it to that, then it will punch a hole through both faces of the wall, although at that point the window is then balanced on the very front of the wall.May I suggest that you relocate the window's axes so that it cuts any wall at the correct place, when you insert it on the outer face, as intended by the entire concept of 'cutting-components'.
Also having a cutting-component made of lots and lots of subcomponents will take ages to work out the cutting/punching 'hole'.
Try exploding nested geometry to speed it up.Basically you are making your cutting-component too complex and with strangely placed axes...
-
Many thanks, TIG! I had completely forgotten how axes placement affects cutting and punching. I am thinking that as a general rule, it might be best to start out with punching components reduced to the perimeter only, and when they're placed to my satisfaction, open one to edit all and then insert the subcomponents. (My reason for wanting to keep them unexploded is so I can get an easy count of how many to put in my BoQ.)
The amount and quality of effort you and others like you (Gaeius, for example) put into helping us struggling beginners is probably the best thing about SketchUp. Thanks again!
David
-
Here's v2.2 http://forums.sketchucation.com/viewtopic.php?p=271170#p271170
Fixed rare DefnsObserver Bugplat! onQuit with some DC coded edits. -
Thanks TIG.
-
I would like to use this tool, but other than a couple successes, my experience so far has been about 50/50 the window moves to the inner wall or SU crashes.
-
I can get it to flip faces, but only if I put the cutting window component neat the top of the wall, and the inner wall-face has a lower top.
This means that the hole/reveals cut are incomplete and something goes wrong...
I'll look at it sometime when I am less busy... but meanwhile try and check that the hole the component will cut falls fully onto the inner wall-face... -
Dear TIG,
I'm divided between using Hole Punch tool or Double Cutting Components to create openings.
I've attached an image and .skp with details:
If Hole Punch Tool could automatically create steps 4 and 5 on image, we could have the best of both worlds.
If by any chance you were able to adapt the observers(!?) you use to connect faces and components, and make them connect both components as in step 7,then Hole Punch Tool would be, in my modest opinion, a revolution in the way people model windows in Sketchup.
Of course I'm totally incapable of coding, so I'll be looking forward for your reply... ansiously!
Best regards,
JQL
-
Here's an update http://sketchucation.com/forums/viewtopic.php?p=271170#p271170
It cuts through multi-leaf walls and also into groups onto which a cutting instance is glued [but do NOT copy grouped punched-components because the reveals will not remain inside the group!]
-
Tig,
I'm sorry for being so persistent but, would it be possible if the plugin would turn the created hole into a "hole cutting component" too? It could then be glued to the opposite face of the wall and be easily manipulated...
Thanks for your unbelievable work and sharing! Best regards,
JQL
-
Hi Tig, just downloaded 2.4 via the SCF loader and auto installed. Worked straight off and everything running as exected, but after closing SU and then restarting I get an immediate bugsplat. I've removed the HPT ruby and SU works (double checked). I see others don't have a problem with SU 2013 pro; where do I start to find the conflict as I would like this in my tool chest?
I've attached my plug list just in case you recognise the culprit
-
I have the same OS/SUp-version and most of those plugins [and many others] loading without issues with the operation of the HPtool, during a session and on a reopening of any SKP - either containing HP-compos or not etc ?
I am sure it is none of my/SketcUcation plugins, and also the su_, twighlight, tt_ and the two profile-builder files seem safe.
Start by looking at the other ??I am puzzled.
Sounds like an observers clash...
Ensure that you have the latest version of all of these scripts installed...
Then if it still splats...Then use the SketchUcation Plugin Store toolset's Plugins Manager to disable half of the plugins listed.
it's easiest to do it in alphabetical-order list, so you can keep track of what you are changing...
Reinstate the HPtool [.rb file]...
Restart and see if it works.
If so, swap the loaded/enabled & disabled 'halves' over [obviously leaving HPtool enabled - also never disable deBabelizer - that is used by HPtool and perhaps some other files...].
Restart SketchUp and see if that now splats.
If it splats, then we have the culprit in the loaded/enabled set.
Temporarily rename the HPtool .rb file in the Plugins golder with a final '!' [to disable it].
Restart and try disabling half of what's still enabled [leaving the HPtool enabled] and restart.
If it splats then the culprit is still loading, repeat as above disabling half at a time until you zoom in on the culprit.
If it does NOT splat then the culprit is in the partial set you last disabled, so re-enable half of those, restart to test etc...
Repeat till the culprit is found.
If there's not one I am stumped !It should only take a few iterations to find what's clashing...
Let me know what's causing the issue ?
Then we can look to correct it... -
Hi Tig, I should have guessed the conflict is in add_hidden_layer which is quite useful but it was also a legacy file from here... http://sketchuptips.blogspot.de/2007/08/add-hidden-layer.html. Between the two HPT wins but it would be nice if AHL could be fixed easily.
-
Jim's AHL is an old script [~6yrs] - it does some pretty simple stuff but has no observers, or other on-load code at all, except for setting up it's item in the menu.***
I am at a loss to see what is happening to cause such a clash/splat...
The HPT has no layer manipulations and nothing that I can see to clash at all...
When I add AHL to my Plugins folder and restart SketchUp I get no issues at all when opening SKPs - without without HP-compos etc !!As an alternative - there might be a similar tool within Didier Bur's 'Layer Manager'?
Here are some possible 'fixes' for AHL - which of course I can't test because I can't get it to break !
Try these in this order until you get a resolution ???
***The menu item creation is set up somewhat oddly:unless file_loaded?( "add_hidden_layer.rb" ) UI.menu.add_item("Add Hidden Layer") {AddHiddenLayer.start} file_loaded("add_hidden_layer.rb") end
so try rewriting it as:
unless file_loaded?(__FILE__) UI.menu("Plugins").add_item("Add Hidden Layer"){AddHiddenLayer.start()} end file_loaded(__FILE__)
Then restart SketchUp and see if it starts OK with AHL & HPT loaded...
Since AHL loads after HPL try renaming its .rb file with a leading # so that it loads beforehand - this might avoid the issue... -
Apparently a completely fresh COLD boot this morning and everything is running again with both the hacked and original versions of AHL Thanks for the help.
Another excellent tool from the Master!
-
Hi Tig, I was playing with this last night testing the boundaries. One thing that me is I can create cutting components with complex geometry including projecting groups with faces flush with the cutting plane, but as long as there is an ungrouped "loop" of edges SU cuts as expected. In HPT as has been previously mentioned such a component can cause unexpected displacement if there are groups/components projecting from the cut plane.
I appreciate the "fix", I was just wondering if the HPT would benefit from a requirement for a single loop on the cutting plane and ignore all other group/component and non-cutplane entities which would be more in line with the native SU cutting process?
Advertisement