Until I find another solution, I’ve come up with one that will work for me. Not awesome enough to just up and tell me where the problems are but it will make it much easier to visually find them.
I’ve attached a file with duplicate sets of curves. The set on the left does not simplify the closed wire curves (which will be explained in a bit). The set on the right does simplify the closed wire curves.
In both sets the two Xs mark the spots that are different between the two. All the layers but the Drawing_Curves layer have been set to not visible. I suggest turning on the other layers as they are mentioned below. You might want to make some invisible again (or not).
The way I’ve been creating my designs is to either import an image and trace over the lines on it (using the free-form interpolate curve command) or vectorize an image using the Vectorize plug-in and correcting the curves it produces. This gives me a design drawing that I can scale and re-use in other products. I put all these curves on a layer named “Drawing_Curves”.
Then I created a macro that implements the offset command with the both sides setting enabled. The original line and the offset line are capped flat. These closed curves are moved to a layer named “Wire_Curves”. I then found that I had fewer downstream issues with the slicer if I trimmed these closed curves so that they did not overlap one another. Instead, I would get new, but fewer, closed curves where the old closed curves overlapped. A SelOpenCrv command would find any that I missed trimming properly. Once I only had closed curves again, I would extrude them into the solid “wires” that will be part of the cast design. The extrusions of the wire curves are placed on a layer named “Wire_Solids”.
I need some way to know where my solids will be too close together and the clash command won’t work for me at this point. (Or possibly ever.)
So, here’s what I’m thinking will work.
I’ll create a new layer called “Boundary_Curves”. I’ll offset the drawing curves at half the distance of the minimum safe casting distance between the solid wires, cap them rounded, and place those curves into the new layer.
Where the boundary curves overlap are possible areas of concern. If they overlap at an intersection between lines they may be a false positive result, i.e., of no concern. It just depends on the angle the two lines approach each other. But at least the overlapping areas will warn me.
I can even extrude the boundary curves into solids and do a boolean intersect. A select extrusion when other solid layers are locked will give me all the known overlaps this method can detect. I’ve created a layer with those intersects on it, “Overlaps”. It turns out that if the boundary curves intersect themselves, extruding them will trigger the Self-Intersecting Curve error, so a SelSelfIntersectingCrv command can find all of those problems.
This approach has a flaw in the way the boundary lines are drawn via the offset command when a line gets too close to itself. I’ve created a couple of points on the “Problem_Points” layer to mark the area I would have to find visually. With the wide boundaries I created the problem point area is pretty easy to find. With smaller boundaries it wouldn’t be as obvious.
I hope this is useful for others as well. I certainly hope there’s a better way to solve this problem but I’m still fairly new to the product and I haven’t found it. I’m going to put as much of it into a plugin or script as I can so that the bulk of this work can be automated. (Unless, of course, someone shows me a better way! )
TestClashOnCurves.3dm (334.5 KB)