Comments (10)
I don't understand the relevance to Solvespace. The paper is about interpolating between one spline and another. There is no way to interpolate between splines in Solvespace.
At it's core, all geometry in Solvespace is represented as rational bezier curves and surfaces with degree 3 or lower. This is not going to change. If I read that part of the paper they don't use a better spline representation either, it's all about how to interpolate which we don't do anyway.
from solvespace.
sometimes the quality of curves is not good enough with actual implementation
Can you explain what you mean by that? Perhaps attach example models or screen shots of the problem?
from solvespace.
See in Levien phd at pdf page 152 and more
Bezier splines have basic principal problems.
Only a small area of parameter sets are good enough for good accuracy.
See figure 9.5 of errors at page 141 at text equal page 157 of pdf
See also figure 10-12 at page 159 oder pdf page 175 of the phd.
Spiro splines are better but not so simple in programming.
https://levien.com/phd/thesis.pdf
from solvespace.
I don't understand the relevance to Solvespace.
@phkahler Neither did I.
@stefano2734 do you have a specific problem with the "quality of curves" in SolvesSpace?
Perhaps you are looking for the chord tolerance (in percents)
option on the configuration
screen? https://solvespace.com/ref.pl#Chord
from solvespace.
If solvespace have no problems with tolerances of her curves, than all with curves is ok.
Do you have test cases for your curves and their operations?
With needed high tolerances in chord for extreme examples, you should test your numerical base of curves.
other packages in CAD must improve her poor implementation in some cases in last decade with more computer power and better implementation for better curves.
from solvespace.
@stefano2734 I looked through the dissertation you linked (but not the Spiro library yet).
At this point the dissertation is irrelevant for SolveSpace since (as @phkahler explained) everything is constructed by (degree three or less) bezier curves and surfaces in SolveSpace. The user interface does not allow the user to create any other type of curve that would need to be interpolated by cubic beziers - which is the subject of the dissertation.
If one day we decide to implement spirals (unlikely) or curves defined by any equation entered by the user - then this topic will become relevant, since in order to be able to export STEP files (and thus be compatible with any other CAD) these curves will have to be interpolated by cubic beziers. Therefore your comment in the spiral issue is relevant.
@phkahler implemented the existing "helix" 3d group and can say more about how the curves and surfaces are created, but I think that they are "exact".
from solvespace.
@phkahler implemented the existing "helix" 3d group and can say more about how the curves and surfaces are created, but I think that they are "exact".
Helix is the one area where we are not perfect. It is done the same way revolve is done and revolve produces exactly correct surfaces to within rounding error. With helix the surface is both revolved AND translated at the same time. The issue is that the "angle" of a swept point along an arc is not a perfectly linear function of the t parameter (u or v for surfaces) but the translation along the axis is perfectly linear. You want the angle and translation to be exactly proportional as controlled by the optional pitch parameter in our Helix group. As far as I know, 3rd order NURBS surfaces will never be perfect for this. They are perfect in 3 places - the start, the end, and the midpoint of the curve or surface. The angle lags on one side of midpoint, catches up at the midpoint, goes ahead on the other side, and returns to correct by the end. The deviation is less when smaller angles are swept (we use 90 degree or less sweeps). It would be nice to partition our Helixes into more surfaces if needed to keep this deviation within chord tolerance setting but currently we don't do that.
If you make a helix with small fixed pitch and drag the length you may see some sub-pixel wobble in places along the helix. Some of that is due to CT setting and some due to the above math error. But people are 3D printing threaded objects and not complaining so we're probably good for now ;-) The above paper will not address this either.
from solvespace.
I'd like to get a copy of this paper in .pdf:
https://www.semanticscholar.org/paper/A-subdivision-scheme-for-approximating-circular-Pu-Liu/8bd2ca5f73ca4c6aae4141183de043d99a723ee8
from solvespace.
I'd like to get a copy of this paper in .pdf: https://www.semanticscholar.org/paper/A-subdivision-scheme-for-approximating-circular-Pu-Liu/8bd2ca5f73ca4c6aae4141183de043d99a723ee8
from solvespace.
The first reference in that paper is one that covers cubic curves for approximating the helix:
https://www.geometrie.tugraz.at/roeschel/preprints/Interpol_helical_patches_roe.pdf
from solvespace.
Related Issues (20)
- solvespace coordinate reference system HOT 3
- slvs c++ library dosent constrain with SLVS_C_PT_PLANE_DISTANCE HOT 4
- [Web] Crashes when creating a constraint HOT 2
- Path to hierarchical parametric sketches HOT 14
- Please trigger a flatpak rebuild HOT 5
- I can not copy between two or more open windows/projects of Solvespace. HOT 1
- Ways to improve SolveSpace constraint Solver HOT 2
- Extrusion that includes Bezier spline behaves strangely HOT 6
- Add the option to export a specific group to the CLI
- Revolve body is always 360 degrees after changing 180 angle restriction to any value HOT 1
- Use 3rd degree NURBS surfaces for helix extrusions HOT 1
- Constraining entities from previous groups fails in a confusing way. [Was: Solver fails on constrain that just fixes current orientation if added after importing another object] HOT 8
- Add a clamped distance constraint HOT 3
- Naked edges with only rectangles and extrusion HOT 3
- glCreateShader fails on MacOS M1 HOT 11
- Solvespace crash on new group rotating and new group revolve... HOT 2
- "Via automated edge builds "can not be download for use HOT 2
- Document Constraint Performance/Efficiency HOT 4
- Potential solver improvements from Dune 3D HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from solvespace.