[Plugin] Hole Punching Tool
-
@tig said:
Irwan
You can edit the component whilst it is on the wall, select-all and move everything back a few mm so that the front-face of the window-frame are on the wall-face with the axes.
Now it will cut its hole in the face it is glued onto, and then it can also punch through to the inner leaf...does that mean i don't have to explode the window so the window frame become able to provide looped outline?
actually, i've changed that to be a bit further off surface. after reading other post about HPT. if i'm not mistaken there are posts with "1 mm shift above surface"?
so, i don't have to shift the window above the surface about 1 mm?
here is the actual component i made. without that shift above the surface.
Jendela 6 Kaca Vent.skp
i'll see if i could understand the instruction, sir. i'll play with the model again. -
greetings, sir.
the HPT works well when the window component exploded and applied HPT on the window's frame.
selecting all components of the window and move them altogether, moves the cut along with them.but when HPT applied, some components were shifted backward from the wall.
-
Irwan
You do NOT need to explode subcomponents !
BUT there must be a continuous closed loop of edges on the face-plane for Sketchup to find something to make the 'cut-hole' with...
This can be a loop within a subcomponent OR a separate loop draw within the assembled parts.
So you must EITHER move the assembled parts inside the component-edit so that there is then a loop of edges on the face-plane OR you must add a new loop of edges [in your case a rectangle] into the component's contents that is on the face-plane [deleting the face that gets added and keeping the edges].
Using one of these methods means that a loop is detected when you glue the instance onto a face and therefore a hole is cut in the face [then if desired that loop can be used to also 'punch' the whole wall later on].Why try to shift the component off the surface 1mm ?
I think you have confused an issue with 'projecting sills'...
If a window has 'horns' on its sills so that they project sideways on the face-plane then these will also 'cut' the face [like an inverted 'T' shape].
This is unimportant IF you are never going to 'punch' it.
BUT if you do a punch with such a component then it will make an unexpected hole through the wall because the sill's ends will punch through too!
To avoid this issue you simply need to adjust the windows sill geometry so that any parts of it that are on the wall face that are now offset by say 1mm inf front of the face, and adjust the remainder of the 'cutting-loop' to suit the required 'hole'.
Then the main rectangle of the window that you want to make the cut does so, and later any related punched reveals follow that loop ignoring the sills too.
Because the sill's ends are not now on the face-plane they are ignored for the purposes of any cutting [and therefore also ignored for any punching] - just like every other bit of geometry that is off the face-plane is not used for 'cutting'.
The important part is that there must be a loop of edges inside the component [or a subcomponent] to tell Sketchup where the component's 'hole' is to be formed... -
In your 'exploded' version it glues/cuts then punches correctly as you have [re]located it on the wall face.
The reason that the adjacent 'faulty' and 'unfixed' component instance jumps is I suspect because it was confused as to which face you had it glued onto and which face it might then cut. I suspect that the 'punch' simply jiggled the data-base and it decided it was glued to the inner-face. IF your components are correctly made [i.e. proper cutting-loop on the face-plane, correctly oriented axes etc] then this should not happen... -
@unknownuser said:
In your 'exploded' version it glues/cuts then punches correctly as you have [re]located it on the wall face.
actually not, sir.
the second window is the original one. hence it has the original component's name instead of "component #1". the component #1 was made after i read about the sill and misunderstood it.
really glad the tool works very well. now it's my turn to improve the way i make components.thank you, sir.
-
greeting, sir.
i've made another attempt to create a component that would work with Hole Punching Tool.
the tool cut the wall very well as expected.
yet, again i've made a mistake with the component create setting probably.
as shown by the image
this time i've made the component with closed loop 1 cm above the window frame's plane.
and after applying HPT to the window's frame, the window shifted backward from the first wall plane.
i don't know what went wrong. i've tried to rebuild the window few more times. but still. -
Several issues overlapping...
First you have a model that is a jumble of nested components/groups.
If you place a cutting component onto a face that is not in the current active entities context, then although it glues onto it, it won't 'cut' as it has no contact with the geometry in the other context.Secondly, your 'problem' window component is made up of other components - these internal bits don't need any special 'behaviors'.
IF you want the window to cut the wall at the 'rectangle' that's just in front of the assembled frames etc, then leave it as a simple rectangle, don't weld it into a looped curve [unless you want any punched reveals to have smoothed edges], and you also don't need to make the rectangle into a component [or group], and it certainly doesn't need to be a component with any special 'behaviors' added to it - please leave it as plain geometry inside the cutting component - then it works for me when used inside a common context ! -
finally made it, thank god.
thank you very much for the tool
-
@tig said:
To make [or edit] a locale file look in the
../Plugins/TIGtools/
subfolder.
There are several #HolePunchTool...lingvo files.
Copy the base file #HolePunchToolEN-US.lingvo as #HolePunchToolIT.lingvo
for ITalian.
To find your exact locale 'code' type/copy&paste this in the Ruby Console
Sketchup.get_locale.upcase
This 'code' then goes on the end of the file's name, before.lingvo
in place of 'EN-US'.
Edit the new file and you'll see lines of code like this:
Exiting.<==>Exiting.
The text to the left of the<==>
is the hard-coded English version and to the right the translation - obviously in the English lingvo file it's the same words!
Change the right-hand side to your locale translation, keeping punctuation and spaces etc if any, so for an IT version you might have.
Exiting.<==>VerrΓ chiuso.
Complete your translations and then save the file.
When you restart Sketchup the tool should display in the locale language as it'll automatically find the new file.
If you find some text that's wrongly translated, then check the lingvo file and edit it.
If you find that some text has not translated, then check the lingvo file and fix it - if the text is not actually in the file then let me know as sometimes bits of hard-coded text and the lingvo text mismatch - although I think that this one is pretty solid.TIG hello:
I translated the text for the ZH-CN, tool display in English? ? ? -
@unknownuser said:
I translated the text for the ZH-CN, tool display in English? ? ?
Is this a question?
Or is it a statement ?
You are free to translate any tool's linvgo into Chinese [although some have been translated already].
All I ask is you zip the new lingvo file and post it in the tool's thread with an explantion, so others can use it too, and I will then package it with any future updates of the tool too...
-
Here's Guanjin's Chinese lingvo file [Thank you!].#HolePunchToolZH-CN.zipUnzip it and place the file in the TIGtools folder in the Plugins folder...
-
@tig said:
Here's Guanjin's Chinese lingvo file [Thank you!].[attachment=0:2ftu9qht]<!-- ia0 -->#HolePunchTooZH-CN.zip<!-- ia0 -->[/attachment:2ftu9qht]Unzip it and place the file in the TIGtools folder in the Plugins folder...
Is still in English, can not display Chinese!!
-
You made a spelling mistake in the name; I've corrected the posted version...
...TooZH... should have been ...ToolZH... -
@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
Advertisement