Comments (3)
Yes you are right. It would be really helpful, thanks for your help.
I think we can approach the problem following way, but I am not sure and may be it's too naive, correct me if I am wrong:
- Divide all bounding curves of the face to some ranges taking into account their curvatures. Each range should represent approximately a flat part of the curve. I guess that exactly what method verb.Tess.rationalCurveAdaptiveSample does.
- Then transfer all the ranges to the parametric space of the face.
- We'll get some sort of '2D polygons' on the parametric space which we can triangulate. Then do that triangulation on the face's parametric space. We'll get the triangles but it's not enough. The problem is that the such triangles don't take into account the curvature of the enclosed area.
- To solve this problem we need to evaluate derivative at the middle of the triangle and at the each triangle's vertices. If the derivatives are about the same it is a good triangle and covers not curving area and it should go to the result set of the triangulation. Otherwise we split triangle to three sub-triangles(using 3 vertices and the center) and repeat step 4 for the sub-triangles.
- However, if a triangle goes through any knot in any direction(u or v) we also need to split the triangle by the knots line before doing the curvature analysis. Otherwise such triangle can cover a "local hump" which we never know about.
PS. Actually the whole nurbs infrastructure is in very bad and awful shape and there are a lot of weird code to workaround the limitations of the current boolean algorithm(which currently can work only on polyhedra). So I am planing to rewrite everything related to the NURBSes or at least the parts related to nurbs solids construction and performing the boolean operations as soon as I come up with robust boolean algorithm.
Thanks!
from jsketcher.
OK, thanks for your comments. I'll try to follow your advices, and try them out.I'll let you know if it works.
And I want to join in your next nurbs-based project. I am once a mechanical engineer and now changed to a cad/cae soft engineer. I have one year of coding experience based on opencascad , freecad and threejs .And I am familiar with c++, javascript, python and mongodb. I can be a good assistant for you.
from jsketcher.
Issue is very old. Overcome by events.
from jsketcher.
Related Issues (20)
- Don't highlight a face just because it is moused over
- UI: could you add a view cube? HOT 1
- UI: Could you brighten up the colors?
- UI: Configurability? HOT 1
- is all source code open source HOT 2
- The exported dxf not opening in AutoCAD HOT 3
- Export as FCStd HOT 11
- Cannot enlarge memory HOT 3
- Is the the open source part of the license more like GPL or LGPL? HOT 2
- critical vulnerabilities HOT 1
- "npm run build" fails to include wasm and font awesome. HOT 2
- [bug]: 2D sketcher interfacing to 3d environments fails on attached sketch HOT 1
- Chrome and Safari performance is much worse than Firefox in 2D sketcher HOT 3
- Jsketcher sketch geometry doesn't visualize after finishing sketch HOT 4
- performing operation with current parameters leads to an invalid object (self-intersecting / zero-thickness / complete degeneration or unsupported cases) HOT 2
- Unable to import large STEP file
- [bug] Point on circle failing to put point on arc segment.
- How do I extrude with a hole? HOT 1
- How do I add textures to the model
- Determine the type of the mirrored product
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 jsketcher.