Is it possible to 3D print a 3D function plotted in Matlab?
33 次查看(过去 30 天)
显示 更早的评论
Greetings to all, I am trying to convert a 3D function plotted in Matlab (or convert it to STL file) to be able to print it in 3D, I am using the stlwrite command but it does not work, I attach my code, I appreciate any suggestions:
% Define your 3D function (example: parabolic function)
a = 1;
b = 2;
c = 3;
myFunction = @(x, y) a*x.^2 + b*y.^2 + c;
% Generate a mesh
x = linspace(-10, 10, 100);
y = linspace(-10, 10, 100);
[X, Y] = meshgrid(x, y);
Z = myFunction(X, Y);
% Triangulate the mesh
triangulation = delaunayTriangulation(X(:), Y(:), Z(:));
% Save the triangulated mesh as an STL file
filename = 'my_mesh.stl';
stlwrite(filename, triangulation.ConnectivityList, triangulation.Points);
2 个评论
Star Strider
2023-7-12
Please go ito a bit of detail about the problem. What does ‘it does not work’ mean? What is the result of using stlwrite?
Rahul
2023-7-12
Please make sure that the stlwrite function is correctly downloaded and it's path has been set correctly.
You can know about this from here: stlwrite - write ASCII or Binary STL files - File Exchange - MATLAB Central (mathworks.com)
回答(3 个)
Niranjan Sundararajan
2023-7-12
Not an official implementation of stlwrite but it works. Paste the function in your current working directory and rename it stlwrite. Then, you can call it by using:
stlwrite(filename, X, Y, Z);
It will work.
0 个评论
Cris LaPierre
2023-7-12
编辑:Cris LaPierre
2023-7-12
However, the input triangulation must be a triangulation object or 2-D delaunayTriangulation object. You are using a 3D delaunay triangulation.
Finally, there is no thickness to your object, which will prevent it from being able to be 3D printed.
2 个评论
Niranjan Sundararajan
2023-7-13
stlwrite does not work for 3-D implementation currently in the MATLAB function. And author of this question wants to plot 3-D stl file. Is there some official MATLAB implementation for the same.
Cris LaPierre
2023-7-13
They do not want to plot it. They want to save it to an STL file and 3D print it.
Cris LaPierre
2023-7-13
I would point you to this post: https://www.mathworks.com/matlabcentral/answers/623773-how-to-generate-a-stl-file-starting-from-a-3d-figure#answer_525658
This may be what @Niranjan Sundararajan is referring to. In that thread, the accepted answer suggests using the file exchange stlwrite function to create a 3D stl.
Here is code that works for me:
% Define your 3D function (example: parabolic function)
a = 1;
b = 2;
c = 3;
myFunction = @(x, y) a*x.^2 + b*y.^2 + c;
% Generate a mesh
x = linspace(-10, 10, 5);
y = linspace(-10, 10, 5);
[X, Y] = meshgrid(x, y);
Z = myFunction(X, Y);
% Triangulate the mesh
TR = delaunayTriangulation(X(:),Y(:),Z(:))
figure
tetramesh(TR)
% Save the triangulated mesh as an STL file
filename = 'my_mesh.stl';
stlwrite(filename,X,Y,Z);
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!