Reproducable SU crash

#1

Hello there,

maybe anyone is able to help me with a strange behavior…

One of our users is working on SU 2017 Pro and wants to edit an highmap. (A part of it is uploaded below – if anyone wants to download the example to check it out)

Example-Files:
After drawing a line from the top-left-endpoint to the lower-left-endpoint & the same on the right side, SU crashes without any error-msg. This behavior is reproducable and happens every time.

I tried it on 2 different laptops (one with i5 and Intel HD4000 & i5 with NVidia Quadro on win7 pro) and another Win10-Tower (with i7 and Intel-HD & 16gb Ram).

<a class="attachment" href="/uploads/default/original/3X/4/d/4d627d43d1a9ab992e0bd888b1534705e51f2ebc.skp">example.skp</a> (598.4 KB)

Reupload SU-File: example.skp (598.4 KB)

Already done:

  • Updated all driver on all test systems
  • Installed all win-updates
  • Checked all settings on gpu (openGL)
  • Checked on SU 17 and 18.
  • Reinstalled SU.
  • Tried all with local and admin-account.

This error/ bug occours since two weeks – the file was „ok“ till then.

Kind regards and thanks in advance

Patrick

#2

The problem seems to be that you are trying to close a polygon that has about 10000 edges.

The actual crash data shows a Heap Corruption:

The thread 0x10ec has exited with code 0 (0x0).
Unhandled exception at 0x000000007744F3E2 (ntdll.dll) in SketchUp.exe: 0xC0000374:
A heap has been corrupted (parameters: 0x00000000774C8430).

The fix is to draw a few intermediate edges between the two jagged lines that will divide the huge polygon into smaller sections and then delete the intermediate lines.

3 Likes
#3

How were those edges created? If there are 10,000 edges in just those two contours and the rest of the contours are similar, that file is going to quickly become unmanageable. I would suggest simplifying the contours before trying to use them.

1 Like
#4

They are also raw geometry on a layer other than Layer 0, you should look into layering.

1 Like
#5

On my Mac, SU 2018 has no problem drawing the two end connector edges and filling in the face. But on SU 2017 it crashes, generating a bug splat - Crash Report #127747.

Edit: I take it back. SU 2018 also just splatted. There are some short edges (compared to the others, not absolutely - they are 1m or more) at the ends of the lines, and the crash seems to be sensitive to just how you pick while drawing the edges to try to close the shape.

1 Like
#6

Part of the problem is the imported geometry is ever so slightly non planner.
One option is to use Curvizard Simplify Contours to clean up what you have. You would need to check if the shape is still as accurate as you need it.
Simplify

2 Likes
#7

Hi Patrick-

I looked at the source code for SketchUp and I see that we have a hard limit of 10,000 edges for a loop. I suspect that’s the problem you’re running into. However, I would hope that SketchUp would handle this situation gracefully instead of crashing, so I will do some more investigation.

In the meantime, I believe that “sWilliams” has the best suggestion for a workaround.

-m

2 Likes
#8

@Marc, I don’t understand. If the issue is a hard limit on the number of edges in a loop, shouldn’t @sWilliams workaround also crash as soon as the subdividing edges are erased? Doesn’t that end up with a loop just a large as the original model?

1 Like
#9

Good question, I did some more digging. We have a hard limit on the number of edges in the algorithm that detects new loops. If the algorithm traverses 10,000 connected edges without hitting a repeat, it gives up.

I believe that the workaround (create several faces and then merge them) uses another code path.

3 Likes
#10

Thanks everyone for the fast and helpful response.

Kind regards :slight_smile: