Comments (6)
Hi @bunterWolf,
First of all, I am a real fan of Blender :) We use it in our research and also education purposes. However, I am a little bit confused of your question. First of all I think "CAD File" concept is a little bit too general. For instance; OBJ, OFF and STL file formats are already in triangular tessellated format and Blender can read them (I've tried OBJ actually and it worked but it doesn't need to be tessellated for sure). There are also .sat (3D ACIS Modeler), .x_t, .x_b (Parasolid) and file formats specific to AutoDesk products, SolidWorks, OpenCASCADE, etc. which have different pros and cons. I know that ACIS and Parasolid files contain geometry and topology structures but no triangles like OBJ files.
Secondly, there are so many research on tessellation and some of them based on Delaunay triangulation (and its variations) and its dual Voronoi diagrams. If you go deep, you will find a lot more under the field of meshing. I am not an expert on these fields but I came across a lot of papers during my PhD studies. What I know is that Cinema 4D and Maya (and others) use a geometry kernel (CAD engine) which no user has direct access but only from the GUI. The geometry kernel handles most of the magic (e.g. fitting, meshing, healing and errors) and believe me these are not that easy as they look in one simple word :)
Blender comes with rational and non-rational spline shape support by default. As far as I understand, you only need to implement some extra algorithms (or use some external libraries) and importers for your desired CAD file formats. I would be flattered if Blender wants to use NURBS-Python but since I am the only one developing it for the moment, it would be a little bit impossible for me to make it complete as Blender in a short time interval.
Additionally, I have developed a Rhino .3dm importer/exporter for NURBS-Python to overcome some of the issues that I have been facing with CAD exchange. In simple words, if you can export your format in .3dm, it is possible to import it to NURBS-Python.
from nurbs-python.
Thank you very much for your detailed answer. :)
I expected something in this direction and I will probably accept that a mesh from a iges or step is not to get. I have to limit myself to obj, fbx and 3ds for further steps.
My thoughts only for you, if you find it interesting in general ;)
I have seen that you are working on an IGES import and there is already an OBJ export. My thought was that you could use Python Nurbs to create a mesh to render from an IGES file.
But the way you describe it... I guess I imagined it to be too easy. :)
I named it openly as a CAD file, because all the file types have advantages and disadvantages. There simply isn't the right file format.
Can Blender already:
FBX: materials, Rhino and Fusion 360 but no Solidworks
OBJ: materials, only Rhino
STL: No good rendering quality, no materials
CAD standards:
IGES: Super compatibility, old format with problem with complicated bodies. I don't believe in materials.
STEP: Best compatibility, but probably the most complicated. I don't believe in materials.
(If this would work, you could adjust the mesh details in Blender how you need them.)
Rhino 3ds: Already contains the mesh, Blender importer is in development
Solidworks format: no idea, probably not even open
Fusion 360: No idea, probably not even open
STEP or Iges would be the most flexible, but well tessellation... complicated :X
Comprehensive CAD import concept: Unreal Datasmith. But here performance and polycount are of course super important and it is very effortful implemented here. A bit over to top for the beginning :)
from nurbs-python.
@bunterWolf thank you so much for the links :) They will be good reference for me and the others.
Unfortunately, I don't think I will be able to find time for developing IGES (#31) or X3D (#24) importer/exporter for the next release of NURBS-Python. It is still possible to use external libraries for importing and exporting these formats (like I do for .3dm format); however, there are no shortcut API calls added to the code at the moment. Although importer and exporters are very important, I would like to focus on the algorithms and the visualization part for the next release.
I would be really happy if somebody else could pick these tasks and implement these importers and exporters for NURBS-Python. I don't expect a PR, that might be a little bit too complicated but an add-on module will also be good and I can also advertise these modules on the README file (just let me know about the modules).
from nurbs-python.
I'd like to go deeper, but I'm a designer with some programming skills. The whole mathematics is unfortunately too advanced for me...
I expect that the Step topic in Blender will still exist for another 2 years, maybe something has come up by then.
Thank you very much for your time and your tips! :)
from nurbs-python.
Hey gentlemen. I know it's been a while since you've been on this thread but I came across it in my research and am hoping you could help a beginner 3D modeling enthusiast. I'm currently teaching myself blender with interest in using it for interior design visualization. But I'm hitting a snag when importing .obj files from dimensions.com
For example, I'll download and import an .obj of a queen mattress...what shows up in the s# viewport are some unconnected vertices with no faces, and the Outliner shows a bunch of groups of ObjNurb.001, ObjNurb.002, etc. and no mesh to be found.
I've attached a screenshot of what I'm seeing. After searching the web for a few hours, I'm still unsure of what to do. If either of you could help me or at least point me in the right direction, I'd be very grateful.
from nurbs-python.
@805Apollo thanks for your message, but this issue tracker might not be the correct place to ask Blender questions. Since you asked kindly, I'd like to suggest you a couple of good places to ask Blender questions:
from nurbs-python.
Related Issues (20)
- Surfaces: evaluating z for given (x, y)
- fitting error when use approximate_curve HOT 1
- NURBS.surfaces: derivatives evaluation HOT 1
- Incorrect control points calculation in knot insertion procedure, under certain circumstances
- [Suggesion] The Axes3D is not an appropriate way to create the 3D axis handle HOT 1
- Import obj fails with ValueError invalid literal for `int()` with base 10 '1//1' HOT 1
- numpy v1.24 compatibility HOT 2
- operations.split_curve
- Visualization (VisMPL) is showing an empty figure HOT 4
- Interpolating a hemispherical shape leads to ZeroDivisionError HOT 3
- VisPlotly not return the figure object HOT 1
- Help wanted: unknown ZeroDivisionError HOT 3
- Visualizing surface without ordering control points HOT 3
- BSpline interpolation and approximation boundary conditions
- Problem in Visualization for Sample code HOT 2
- export 3D nurbs curves
- Tangent and Normal operation no results
- NURBS.Curve.__eq__ returns True for different curves
- B-spline surface points does not correspond to model u, v parameter HOT 3
- helper.knot_removal returns incorrect result (+ fix) HOT 2
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 nurbs-python.