My request: Auto intersect on/off option
-
Hi, long time no write,
As of now auto intersect check is (apparently) performed after each edit operation that can potentially create a topological connection (i.e. checks for vertices coinciding, with edges and vertices, edges with vertices, edges and faces etc, after each location change operation).
During 3D location change operations (move, resize, rotate, explode) I would like to be able to avoid Sketchup doing its automatic intersect operation. The check for vertices and edges and faces interacting with other similar objects is a computationally expensive operation, and it takes too much time for large mesh(es). Funny thing is Sketchup can not perform this operation properly anyway (it sometimes misses connections (one might argue it is impossible to do this perfectly)) and even create unintended connections (during a rotate when two meshes overlaps sometimes two vertices get too close and you get unintended connections).
Auto intersect "on" option would keep the current behavior of Sketchup, If the user is does not want/need new topological connections during a location change operation, this option would be turned "off" giving a faster and cleaner operation.
This issue came up during Tgi3D 64 bits port (which is now awailable), we were discussing what would give skethup a boost.... (we were expecting more from 64 bit Sketchup)
Thanks,
Ogan Ocali
-
As part of your broader code...
A toggle ON/OFF...
if Sketchup.break_edges? Sketchup.break_edges = false else Sketchup.break_edges = true end
Or to remember the current setting, switch it OFF and then reset as it was at end...
### at start remember the current setting, in Tool.new() [aka .initialize()] @break_edges = Sketchup.break_edges? ### then before using the tool switch it OFF, perhaps in Tool.activate() break_edges = false ### later on, as you exit from the tool, e.g. on Tool.deactivate(), cancel etc... Sketchup.break_edges = @break_edges
-
Well, I don't think I was able explain my request. I want to be able to avoid Sketchup doing its auto intersect operation ( as an option ). This request is related to the performance issue of Sketchup.
-
And what would happen when you'd turn that ON again. Would existing edges intersect each other, or only new edges?
Most of the time I think Sketchup works fine enough and, apart big imports, the cases where such operations happen are mostly due to plugins. So I sort of agree with TIG and that toggle makes sense mainly inside plugin operations.
For what I could understand, both intersection and inference systems are the ones making SU slower than most other modelling apps... but they are also what makes it stand apart and one of the most intuitive.
-
I gave you two variants...
One to toggle the current settings.
One to switch the setting OFF [e.g. inside your tool] and remember what the user had set and revert to that when they exit your tool...I cannot see how else you might do this...
A simplescrew_up.rb
file added to the Plugins folder with a single line:
Sketchup.break_edges = false
BUT then you'd upset all of your user who would give logically expect the auto-intersect results in their drawing most of the time...
BUT you add that script into your toolset, and YOU take the complaints it creates...A simple 'toggle' tool - perhaps with a 'toolbar' operation - in my first example - does that already
-
@tig said:
A simple 'toggle' tool - perhaps with a 'toolbar' operation - in my first example - does that already
Tig now that I think of it, I think I've seen something of that sorts by eneroth... It should be at extension warehouse though... wich I visit seldomly
-
Sorry to bring this up again but:
Firstly I am asking this feature as a user and not a plugin developer.
I agree that the " intersection and inference systems " of Sketchup is a great benefit to the novice user but there are occasions where they hurt rather than help the more advanced (potentially paying) user.
As for the coinciding edges after move the user would either have to select the relevant region and perform an intersect operation or make some kind of repair, or even leave it as it is.
I do not see how people can work with large meshes in Sketchup without this feature I am asking.
It should be relatively easy to implement and it should alleviate the performance issue that comes up frequently.
Admittedly there is the danger that a novice user could fuddle with this option and start complaining about behavior, but that is surmountable.
regards,
Ogan Ocali -
did you search for Eneroth's plugin. Basically it toggles edge merging on and off so it does exactly what you want.
I'd say it's user implemented user request...
-
Thanks to TIG and JQL.
From the ruby console I changed the value of Sketchup.break_edges and performed a few run time tests on big meshes. I could not oberve any time difference between true and false values of Sketchup.break_edges variable. Apparently there is a much more costly operation that is performed at the end user move completion. I wish the testers at trimble had a few large mesh cases to push the developers for a performance improvement...
-
@oganocali said:
Thanks to TIG and JQL.
From the ruby console I changed the value of Sketchup.break_edges and performed a few run time tests on big meshes. I could not oberve any time difference between true and false values of Sketchup.break_edges variable. Apparently there is a much more costly operation that is performed at the end user move completion. I wish the testers at trimble had a few large mesh cases to push the developers for a performance improvement...
That performance improvement has been in developer's mind for ages. They've improved it over the years, the question though is that it seems the real performance issue is rooted deep within sketchup itself, and improving it without breaking sketchup is a real challenge...
But this is what I've been reading here and there. I also think testers should push it harder!
Advertisement