Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature - New Group: Spiral (flat spiral) #426

Closed
ghost opened this issue May 23, 2019 · 11 comments
Closed

Feature - New Group: Spiral (flat spiral) #426

ghost opened this issue May 23, 2019 · 11 comments

Comments

@ghost
Copy link

ghost commented May 23, 2019

Expected behavior

Add "Spiral" tool for creating flat spirals:

  • Euler spiral (spiros, clothoids, or Cornu spirals);
  • hairspring (balance spring);
  • etc.

It could be realized in two ways:

  1. as "Sketch" tool: 1) draw spiral in plane; 2) then extrude it (cons - spirals profile always would rectangular)
    pic.1
  2. as "New Group" tool: 1) draw profile; 2) create/rotate spiral.

Second variant is preferred.

Or as option such as "Helix" for "Lathe" tool: #389

Additional information

@whitequark
Copy link
Contributor

I don't think SolveSpace should gain a generic planar spiral generator. Make a spiral elsewhere and export a DXF, then extrude; that would be far more efficient.

@Evil-Spirit
Copy link
Collaborator

Evil-Spirit commented Jun 12, 2019

NoteCAD have "function" entity to create curves like this
catenary arch
D0oJn5OXcAAA8tr

cornu spiral based on fresnel integrals
D0oFS2RXcAA4HNl

@ghost
Copy link
Author

ghost commented Jun 12, 2019

NoteCAD have "function"

Would be happy to see this in SolveSpace too.

@Evil-Spirit
Copy link
Collaborator

Evil-Spirit commented Jun 13, 2019

Would be happy to see this in SolveSpace too.

SolveSpace's solver has born to has feature like this.

@ghost
Copy link
Author

ghost commented Jun 13, 2019

SolveSpace's solver has born to has feature like this.

But would be it possible draw Euler spirals and extrude along Euler spiral in SolveSpace? (spiros, clothoids, or Cornu spirals)

@Evil-Spirit
Copy link
Collaborator

Evil-Spirit commented Jun 13, 2019

I don't know. If anyone will implement it. NURBS approximation of such functions can be rather complicated task. NURBS actually not an advantage for SolveSpace at the moment. Too many people want to help but can't because of buggy (from one side) and too complicated (from the other side) NURBS backend. I think SolveSpace can't beat commercial software, so not necessary to try do that. Instead, SolveSpace can utilize some proven OpenSource geometric libraries like CGAL which provide slow but really robust booleans based on Nef Polyhedra algorithms. So, for realtime geometric computations, SolveSpace can use fast BSP and for export - slow but good quality CGAL. If this step will be performed, any of geometric functions like extrusion along path will be much simplier in implementation and probability of happening of such implemetation will increase.

@Evil-Spirit
Copy link
Collaborator

For the record. I have implemented helical revolve for NoteCAD in 2 evernings. That's because I have no any NURBS.

@whitequark
Copy link
Contributor

@Evil-Spirit If there is no NURBS, there is no STEP export that machine shops can take. That would make SolveSpace mostly useless for me. Maybe I could still use it for 3D printing (not that I do a lot of it), but I will need another CAD for any serious machining work, so why bother maintaining it?

@Evil-Spirit
Copy link
Collaborator

@whitequark I understand.

@stefano2734
Copy link

stefano2734 commented Feb 7, 2024

See Levien PHD for better bezier curves also
Inkscape spiro curves are from Levien.
https://levien.com/spiro/
https://levien.com/phd/thesis.pdf
see page 152 in pdf (135 in text) for optimized bezier curves.

@ruevs
Copy link
Member

ruevs commented Feb 8, 2024

See Levien PHD for better bezier curves also Inkscape spiro curves are from Levien. https://levien.com/spiro/ https://levien.com/phd/thesis.pdf see page 152 in pdf (135 in text) for optimized bezier curves.

This would be relevant if one day we decide to implement spirals or curves based on "any function". My detailed response is here #1447 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants