Shapr3D randomly adding many control points

Hi @Hipcat, please share the workspace to, we will take a look at it soon. I am interested especially in the randomly locked ctrl points. While the unlocking is intended to happen if the trim is applied on the given sketch element or it is projected onto another plane, non of the sketch elements should be locked automatically.

The growing number of control points, in this case, is a result of maths behind. When you offset or project a curve, the offset/projected one is a result of an approximation within a given tolerance. To make sure the curve is within tolerance, the offset one should have more control points than the original one.
I think a result of this approximation can be seen in the post below:

There it can be seen a sketch at the bottom of the extrusion and the group of faces is the result of that slight inaccuracy that is between the original edge and the curve made of the edge. I am not familiar with your workflow but I guess if the curve would be removed from the edge, the extruded body would not be split up into that amount of faces.

All in all, there are some tiny details that should be kept in mind, but I would not say that you are doing anything wrong. It is a pretty decent model and you have run into a question that is way over an average use case

Sent the project. Thanks for looking at it :slight_smile:

I really wish Shapr3D would stop ruining my work. This is one of the MANY examples from different projects since staring this topic. I did not create all those locked points, as well as most of the control points in the spline. Shapr3D is unable to manage that edge now. The sketch is broken there MOST (randomly not all of the time), and if I manage to make a body from it I am unable to loft or chamfer/fillet or otherwise work with it due to Shapr3D encountering different errors. I wish sketches would remain as they were created instead of being seemingly randomly changed by Shapr3D.

1 Like

Hi @Hipcat, I am really sorry to hear about the frustration that these offset curves are causing. Unfortunately, this is how the math behind offset curves and splines work, and unless we introduce offset curves as a dedicated curve type (that we will at some point of time), these curves will always be converted to splines, that will lead to many control points in the offseted curves due to their complexity.

I would love to better understand why those control points are bothering you, I might be able to suggest a workaround.

Hi :slight_smile: I have made a quick video showing some of the issues here Shapr3D sketch support 02 - YouTube . The biggest issue is that the models/workflow become broken. If I spend some time to create a plan for the model, spend a couple hours working that out, then suddenly a step is not functional it all breaks down. Now I have a half completed model, hours invested in it, and am on a hunt for workarounds which may or may not work while compromising the rest of the model/plan. At this point I go back to try to rework part of the model in an attempted workaround only to find Shapr3D has changed my sketches, and I’d say most of the time in ways that break parts. Then I’m at the familiar point of killing and reloading the app to see if I can manage to limp by to finish off the model by doing workaround after workaround on whatever part of the model/sketches happen to load correctly at the current time. This is also constantly the reality (for me at least) even after going through great effort to limit all things to be as minimal and effective as possible.

hi @Hipcat, let me try to explain to you why these things happening in Shapr3D. They are mainly because of the maths in the background, but there are some modeling tricks also.

I’d like to refer first to the random control point case. If a spline is created in Shapr3D it will be defined by the control points the user places. If that spline gets offset, the end result will be a rebuilt curve based on the spline within a given tolerance. To maintain that tolerance, a higher control point number is needed. Simpler sketch elements are much easier to define (basically by two points), their copied ones remain the same as the original.
Jumping to the randomly locked points, those are made when an edge of a solid body is used as a reference in sketching. Please take a look at the video below, where you can see if a sketch is created on the top face of the extruded body and snapped to one corner point, the connected edges of the solid body will be projected on the sketch plane and immediately locked. I am not sure about how your sketch was made, but in the video, there is a slightly U-shaped curve with locked control points and there are four unlocked control points around it (0:25). I think there you have two overlapping lines, one is a spline with 4 ctrlpts and one is a projected and locked one.

The unrecognized cross-section at 1:50 is interesting, if you could upload the workspace, I could take a look at it. I expect some tiny edges there, just like in the beginning of your video.

The loft tool is a bit more complex case. In the given example, it does not have enough input data to create a smooth transition between the two cross-sections - which are quite different from each other. What loft does is trying to connect the horizontal cross-sections guided by the vertical edges (all the edges that are the corner points of the cross-sections). If the vertical edges have a different number, the tool will twist the shape to provide some result. There are two ways to avoid that effect, the first is to make both cross-sections have the same number of corner points (vertical edges), the second is to manually project lines to the bodies to have those edges where you need them - let’s say force some edges to be there.

The chamfer is another different case that is mainly connected to solid-body modeling. The chamfer (and some other transform tools) have boundaries mainly because a solid body could not be maintained at the end. In the case of the given model, some tight curves would end up in edges. If chamfering would be allowed over this limit, the solid body would split up to an open polysurface. In some cases sweeping the chamfered shape then subtracting it is a solution, but it will not work with tight corners and big chamfer distances, it is self-intersecting. Another workaround could be to extrude it straight then select the top face and scale it down. Tight curves can be an issue here also.


Thanks for looking at it and taking the time to get back to me. I will try to work in different ways to avoid the things I’ve been running into. I have also previously sent the project file for the one broken edge to support. I will let them know you are interested in seeing it (they have directed me to your response here so I think they know you? :slight_smile:

Thanks again

Also, I just tried scaling the face I had been trying to 45º/loft to. It seems to work well! Thanks for the idea!

1 Like

Yeah, it may happen that we know each other :smiley: Glad to see that I could help, I will take a look at the workspace soon!

I know at some point you guys said this kind of thing (minus the bugs in the sketches as they are always breaking and unusable) is preferred. I just can’t understand why anyone would want this. I wish you would add a toggle to turn off whatever this random sketch changing is supposed to be. I NEVER want Shapr3D to randomly add to or change my sketches. It always breaks them. There will never be a day that I want to sit down and work out a sketch for hours to make it exactly how I want, and then say “ok Shapr3D please go ahead and randomly mess it all up now.” In this example I am trying to fix the edge that has given me a “boolean failed/non-manifold” error (and many more) later in the development. I come back to my sketch to see why I can’t even extrude without creating a wall with 8 faces where it should be only 1. I find this mess. Now I am trying to creat workarounds while killing and reloading the app. Every kill and reload gives me different changes to the sketches. I showed this kind of thing in some videos above. In different models. This happens in pretty much all project files. ALL these issues and more have been plaguing me since beginning with Shapr3d. I used to enjoy seeing new features added to the app with updates, but now I read the updates and am just bummed out that none of these things are ever improving :frowning:

I think I’ve kind of narrowed down a big part of MY problem (I don’t know if I’m just always doing something the wrong way or what). It seems like Shapr3D is always ADDING random things to sketches. It adds edge lines, tons of locked points, and all kinds of extra lines. I don’t know exactly what actions cause this, but I’m guessing a lot of different actions since it happens everywhere so frequently. The workaround I’ve been doing is, when I inevitably run into a problem where Shapr3D can’t perform actions on a part of a model I track that part back to a sketch. It’s usually some horrifically modified sketch just packed full of nonsense Shapr3D has piled into it. I then go through every single line highlighting and deleting to see if there are numerous lines occupying the same space until I am back to my original sketch. I then make sure every point is connected as it was when I made the sketch. This involves several app kills and restarts since, apparently, Shapr3D gets confused about which of the lines it has piled on my sketch it should consider primary. This SEEMS to cause a bunch of broken sketches and awful extruded body problems. I’m not a programmer, so I can only say it SEEMS that way. Anyway, the workaround has at least saved my models for now. Maybe some kind of toggle could be added for “Allow Shapr3D to add things to your sketches” could be added. I still have absolutely no idea how that would ever be a good thing, so if that’s actually the intended behavior, those who like that can still have it and those who don’t can turn it off. Even leaving it on by default as long as we can go toggle it off if we opt in? Please. Am I just really missing the mark on this and thinking about it the wrong way or what?

Maybe a different color line for Shapr3D automatically added lines. Them going into a separate folder or something so we can just delete them all at once if we want?

If you look at how a complex curve is created mathmagically you will see. A simple curve has 3 pieces of data: Radius and begin and end points. Your curves are complex curves where radius changes throughout the curve more than once. In order to express that in mathematically it must be broken up into individual curve segments. Each with it’s own radius, begin and end points.

You might see “A curve”. I see several curves connected together. Those points are the beginning and end of each different curve. Vector plotting.

My “point” is the extra points aren’t necessarily random.

I was a rear chainman in a survey co. in my youth. Surveying roads is fascinating. Complex curves are common.

Oh yes I get that the curves are much more complex than they seem. The problem(s) I am running to are that Shapr3D modifies the sketches when later work is being done in the project. I’m not sure what actions cause all the additions to the sketches, but I’m guessing it is extrusions, projections, and all the normal model working things. When I go back to any of my sketches I usually see a mess of a broken sketch with tons of additions that I did not do. Shapr3D has modified my sketches, and even worse, it modifies the sketches in ways that severely breaks them. The way I’ve been progressing is to manually go back to sketches I need to use again and check every single line for duplicates and remove them all one by one. Then confirm the sketch is correct. All while killing and reloading the app throughout the process because Shapr3D seems to misinterpret its own additions to my sketches and will render various parts of the sketches incorrectly.

The image above shows what I mean by the sketch being broken. It was/is an enclosed sketch, but Shapr3D has added a lot of extras to it in the background. Now parts are not showing as enclosed. It’s a coin toss of it does fix itself after a kill-restart of the app. After going through and manually removing all the bad extra things Shapr3D added I was able to recover my original sketch in a working state.This goes for all my project files. This is always one of the most troublesome ‘bugs’ for me. I honestly don’t know if I’m looking at it the wrong way or what.


here is a way to reproduce the issue:

  • create a clean ellipse using the ellipse tool and lock it
  • extrude the ellipse with -5° negative draft angle
  • go back to the sketch with the created body visible
  • draw a line intersecting the ellipse

The clean ellipse, which was locked, seems to be replaced by a mess of control points.

Actually, a new curve has been created above the original ellipse. If you select the new curve and delete, then you get the original ellipse in place but the locked ellipse has been also modified: now, when extruding, there is an unwanted face added.

I understand that there is an automatic edge projection on the sketch, when we draw on a face of a body; this can be useful on certain occasions, this can be painful on other situations, but this cannot mask or modify a clean locked curve.

Looks like the solution could be not to project when the projected curve is very close to an existing curve (distance less than the internal tolerance), and no sketch modification at all when extruding a body [Edit] probably no cache modification or invalidate the cache entry, see below.


I made a few additional investigations.
For the “locked ellipse has been also modified”, here is what I think:

  • the original sketch is not actually modified: if you export it in DXF format, you get the same sketch before and after the issue occurs;
  • but Shapr3D is probably using a cached version of the sketch for performance optimisation, and this version is modified by the extrusion, so for the end users, it looks like the sketch has been modified;
  • as soon as you made a modification on the curve, it invalidates the cache entry for the curve and you revert to the correct curve definition, probably creating a new cache entry;
  • if you copy the curve, the copy is correct also, probably because the copy does not use the version in cache, which is a very good thing :grinning:

I hit this wall too when trying to use the loft feature. A welcomed feature would be an advanced setting to allow the curve resolution to be set. A slider with live update would be one possibility with more or less resolution. Another would be some specific frequency of added control points so you could get a similar curve resolution on different sized and shaped curves. The comment that this is how the math works is frankly a pretty lame answer. Better to be up front and say that unlike many other Bézier curve implementations in other software products, ours is now quite crude. We’re working on it…