Overkill Command
I wonder if somebody can take a look at the attached file for me and give me their thoughts on whether they can tidy this drawing up using the Overkill command.
This is the latest problem I have had with using the Overkill command.
The way I thought it should work is that you put a tolerance in and everything below that tolerance would be removed.
For example if I put 0.25mm in, every entity that is within this distance or closer would be deleted.
I am finding however that this isn't the case and sometimes I am having to run the command multiple times increasing the tolerance each time to catch another set of entities.
It almost seems that I have to add the exact distance two entities are apart and the command will work.
Am I doing this wrong or does the command work in a different way?
I have tried a similar routine in some CNC software and it works exactly how I expected.
Many Thanks in advance,
David
This is the latest problem I have had with using the Overkill command.
The way I thought it should work is that you put a tolerance in and everything below that tolerance would be removed.
For example if I put 0.25mm in, every entity that is within this distance or closer would be deleted.
I am finding however that this isn't the case and sometimes I am having to run the command multiple times increasing the tolerance each time to catch another set of entities.
It almost seems that I have to add the exact distance two entities are apart and the command will work.
Am I doing this wrong or does the command work in a different way?
I have tried a similar routine in some CNC software and it works exactly how I expected.
Many Thanks in advance,
David
0
Comments
-
Using BricsCAD V15.2, V16.2 and V17 - aways the same Result
i used the fuzzy of 0.01
: _OVERKILL
Select entities:
Opposite Corner:
Entities in set: 280
Select entities:
4 duplicate(s) deleted
22 overlapping entities or segment(s) deleted0 -
Same here but zoom in and check there are still a lot of overlapping lines that he needs to take out manually.
Im also confused. I can not make it work. I have never doublechecked my files before.
0 -
Thanks for the replies.
I can confirm I get the same result as Martin on V16, but there are still lines which as Patrik mentioned haven't been removed or joined.
Just to add to the confusion, if you rotate the entities slightly, either both of them or individually (I rotated each one -22.5 degrees) and run the overkill command on all the entities as the original, you get different results!
So there is definitely something going on with the way this routine is working.
I think I need to post a support request.
Thanks again for looking at this for me.
David0 -
Sinze V15 BricsCAD made ther own overkill Programm and includet it into the kernel.
Till BricsCAD V14 the Overkill command was includet in the ExpressTools. This Overkill is working fine. You can try this, by downloading the V14 Expresstools and load the Express.des into your drawing. The Command is OVERKILL (without an underscore)0 -
Sinze V15 BricsCAD made ther own overkill Programm and includet it into the kernel.
Till BricsCAD V14 the Overkill command was includet in the ExpressTools. This Overkill is working fine. You can try this, by downloading the V14 Expresstools and load the Express.des into your drawing. The Command is OVERKILL (without an underscore)0 -
Sinze V15 BricsCAD made ther own overkill Programm and includet it into the kernel.
Till BricsCAD V14 the Overkill command was includet in the ExpressTools. This Overkill is working fine. You can try this, by downloading the V14 Expresstools and load the Express.des into your drawing. The Command is OVERKILL (without an underscore)0 -
Martin,
Thanks for the guidance, I will download your Expresstools and give it a try.
Obviously the built in command in Bricscad hasn't changed since V16 as you mention that you have tried it in V17.
So I will post a support request, so at least Bricsys will know that there are issues with the routine.
Thanks for your help.
Regards,
David0 -
Hello David,
please note that the BricsCAD nor the AutoCAD Overkill implementation behave like the functionality you remember using in a CNC software: the Overkill command does not remove entities smaller than some tolerance value.
Applying Overkill with tolerance 0.01 to all 280 entities will indeed result in 4 duplicates and 22 overlaps being removed.
When first rotating the entities over -22.5 degrees, 5 duplicates and 24 overlaps will be removed, perhaps surprising, but exactly as it should.
If in doubt, feel free to compare with AutoCAD.
Kind regards,
Hans0 -
Hans,
Thank you for the reply, I don't think I am bright enough to understand how the Overkill command is supposed to work!
My perception is obviously different from what I was expecting.
I thought that if two entities (lines for example), were running parallel with each other within the specified tolerance, one of them would be deleted. This obviously isn't the case.
The bit I really don't understand is entities rotated around a common base point give a different result depending on their angle.
If entities are removed when at 90 degrees, why is there a difference if relative to each other they are still the same as they were at 90 degrees, they behave differently when at a different angle?
If I rotated a normal clock face the hands would still sweep around in the same arc over the same numbers regardless whether the number 12 was set straight up or if it was in the 9 O'clock position?
I'm not complaining I am just trying to understand the mechanics of the command.
If I am expecting too much from the command that is fine as I will look into a Lisp or .Net routine to do what I need.
I don't have Autocad so can't compare how Overkill works there either.
Thanks again for the reply, as I hadn't posted a support request yet.
Many Thanks,
David0 -
@David:
It seems the tolerance is not applied to the distance between points, as I think you assume, but to the difference in the X, Y and Z-coordinates of points.0 -
Hello David,
it has been a while since I implemented algorithms myself, my fingers sometimes itch to have a go at it again...
Without having looked at the details of the overkill code, my assumption is that this 'mysterious' behavior can be explained as follows:
Calculating exact distances is expensive, it requires square root calculations.
Calculating differences in X or Y coordinate values is very, very cheap in comparison.
When having to compare potentially huge amounts of points belonging to huge amounts of entities, millions, each one with each one, you want to use comparisons that are very, very fast.
To support the concept that the number of entities considered overlapping within a certain tolerance should remain the same, regardless the orientation of the entities, requires that during comparisons the actual distances between their points are considered. If that would be the case, I agree there should be no difference, but... it could take ages.
To make it workable, probably the differences between coordinate values of points are considered, which is orders of magnitude faster.
In your sample drawing, there is an extra couple of arcs that is considered overlapping when rotated by -22.5 degrees, how would that come about?
Let's assume that before rotation, the arcs started at say approximately Y=-5 and ended at Y=0.
After rotation, they start at Y=-2.5 and end at -2.5, in other words, their midpoint is at Y=0.
So before rotation, the Y delta between start and end was 5, after rotation it became 0.
So when comparing Y delta differences between start and end points of arcs, this kind of coordinate changes will affect the delta values found and they may become smaller and fit within the threshold to be considered "overlapping".
Mind that this is purely guessing, the actual implementation may differ,
but still, I hope it helps you understand how such mysterious behavior can come about.
kind regards,
Hans0 -
Hans,
Thanks for taking the time to explain the Overkill command in more detail, most of it was way over my head
As I mentioned in my earlier post, I'm obviously expecting the command to work in a different way.
It is a shame that it doesn't work in the way I expected as I receive a lot of files from people that use Adobe Illustrator and other similar graphics programs and they are riddled with overlapping lines due to the way they are drawn.
Thanks again for the detailed explanation.
Regards,
David0 -
David,
coming to think of it, there is a new V17 tool that can be used to easily get rid of entities smaller than some 'garbage' threshold.
It is called the Structure panel, and it shows a structured tree overview of the drawing content.
The way the overview is structured is fully configurable, and switching between different configurations is as easy as selecting another configuration from a combo list. Each configuration is stored in a .cst file, an example is attached here: "SortedByLength.cst".
The Structure panel screenshot shows how I defined this SortedByLength config:
I asked to group the drawing content by Entity type,
and to sort the listed entities by Length, or use the Radius for entities that don't have a Length property.
The resulting overview is visible at the left, and oh boy, to my surprise this plan drawing I am using is full of garbage..! Thanks for helping me realize that!
The actual cleanup of the drawing becomes very easy now: select a range of entities in the tree, from the right click menu choose the 'Select' option, and press the delete key. Done.
In fact this example merely scratches the surface of the possibilities offered by the Structure panel, it is a modest but insanely powerful tool.
The Bim Config screenshot gives an idea of the kind of structured overview that can be achieved by combining just a couple of grouping and sorting rules.
If you want to give it a try, download V17 and place SortedByLength.cst in the SupportFolder. The easiest way to find this folder is to key in the SUPPORTFOLDER command: it will show the folder in your Windows Explorer.
Kind regards,
HansBimConfig.pngStructurePanel.png0
This discussion has been closed.