Slow IGES file import

Next
 From:  Basic Slave (CREATIVECONTROL)
5753.1 
I have some large IGES files to import and for some reason, they are REALLY slow. Smaller files (1-2meg) load in less than a minute but some 8meg or more are taking exponentially longer (hours). It doesn't seem memory related as memory usage is not high.

Anyone have any suggestions?
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  BurrMan
5753.2 In reply to 5753.1 
I have seen this with files that have bad geometry in it. try turn off the "join surfaces on import" in the import option settings.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Basic Slave (CREATIVECONTROL)
5753.3 In reply to 5753.2 
That was it. Thanks!!!
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Basic Slave (CREATIVECONTROL)
5753.4 In reply to 5753.3 
That solved the import speed issue but now of course every surface is separate making for thousands of small parts that should be one object.

Hmmm....

I'm stuck with the geometry the customer gave me so I can't go back and ask for anything else.

Any ideas?

The end goal is to export as meshed .fbx files but it also exports as unjoined surfaces.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Basic Slave (CREATIVECONTROL)
5753.5 In reply to 5753.4 
I think I found a solution. For some reason, joining all surfaces after import is far faster and seems to accomplish about the same thing for this purpose.

Edit: On some parts it seems it is, on others, not so much.

EDITED: 5 Mar 2013 by CREATIVECONTROL

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
5753.6 In reply to 5753.5 
Ideally you would want to ask for both IGES and STEP files as well and try STEP instead - that would then avoid the need to do joining because the STEP format includes the join information along with it.

It sounds like you may not be able to do that this time, but for next time make sure to ask for multiple file formats in advance, any of STEP, SAT, IGES, or 3DM that they are willing to provide.

Join can have difficulty in general if there are really little slivery surfaces right alongside other larger ones, and if some areas are messy you may need to go in and repair some areas before you'll be able to get things to join well. There is a tutorial on object repair techniques (like untrimming and retrimming) here: http://moi3d.com/forum/index.php?webtag=MOI&msg=446.17 this can be a fairly delicate area of work though that takes some experience to get good at.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
5753.7 In reply to 5753.1 
Also the auto join in the IGES import can get confused if there are multiple separate parts that touch each other contained all inside one single IGES file.

It will try to use the "level" assignments in the IGES file (levels in IGES are like layers basically) to only try and join together surfaces on the same level but if the IGES was generated with everything all on the same level instead of separate levels for each part that won't help.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Basic Slave (CREATIVECONTROL)
5753.8 In reply to 5753.7 
Thank you very much for the info Michael. I should have asked for multiple formats, especially STEP. I had used this method before so I thought I was safe but some of the parts are larger than before.

Join seems to be doing it correctly, it's just super slow on larger parts. The time needed seems to really grow exponentially. I've had some success joining parts of the object first and then joining the whole.

It appears join is single threaded which makes it worse.

These parts came from Inventor but unfortunately the person providing them is not available right now so it'll have to do.

Nice to know about STEP for next time.

Cheers - Len
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
5753.9 In reply to 5753.8 
Hi Len,

> It appears join is single threaded which makes it worse.

Yeah it's really quite difficult to make things that modify common structures to be multi-threaded. Like in this case every edge join makes a modification by gluing together things that were previously separate. It's really difficult to get multiple threads to simultaneously modify the same structures, if they are not very carefully coordinated things will just crash because they'll be fighting to modify the exact same data.

It could be possible in the future to try and make a new join mechanism that was more suited for multi-core processing, something more like a separate "analyze" preprocessing step that did not modify anything yet and only figured out what should be joined (which could probably be more easily parallelized), then do the actual joining afterwards. That would be a significant undertaking to achieve that, though. Multi-threaded coding is one of the most difficult types of programming that there is, it's very easy to have subtle bugs and often times difficult to debug when it requires some kind of specific sequence or timing in order for the bug to show up.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Basic Slave (CREATIVECONTROL)
5753.10 In reply to 5753.9 
I can understand that :) It's probably not a big issue for most operations. I'm wondering if there is a more efficient way to join large assemblies, perhaps by automatically breaking them into sections, joining, then joining the sections. I'm doing that manually now and seems to help.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  Michael Gibson
5753.11 In reply to 5753.10 
Hi Len,

> I'm wondering if there is a more efficient way to join large assemblies, perhaps by
> automatically breaking them into sections, joining, then joining the sections.

There's nothing like that currently built into the Join mechanism in the geometry library - it could be possible for me work on that in the future. But there are probably some kinds of tricky cases that would not work very well with a sectional join mechanism because not all models are sort of evenly divided up into regular sized pieces, it is possible to have something like one big trimmed plane that might span a large area.

It hasn't been a big area of focus before because using STEP import should probably avoid all the extra work that you're currently doing.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All