How to megre meshgrid and stl file?

9 visualizaciones (últimos 30 días)
taetae
taetae el 18 de Jul. de 2024
Comentada: taetae el 19 de Jul. de 2024
I can show my meshgrid and stl model. but can't merge two thing...
I want the ship to belong to the meshgrid by value.
I can let you know if I need any information.

Respuesta aceptada

Anagha Mittal
Anagha Mittal el 18 de Jul. de 2024
Hi,
To merge meshgrid with an STL model, you may import the STL model using the "importGeometry" function and then combine the meshgrid data with STL geometry and plot them together. Refer to the following documentation link for information and usage of "importGeometry" function:
Below is an example script that shows the steps to achieve the same:
% Step 1: Import the STL Model
model = createpde();
gm = importGeometry(model, 'yourModel.stl');
% Step 2: Create the Meshgrid (You may use the meshgrid you have created)
[x, y, z] = meshgrid(-10:1:10, -10:1:10, -10:1:10);
% Step 3: Combine and Visualize
figure;
pdegplot(gm, 'FaceAlpha', 0.5); % Plot the STL model
hold on;
scatter3(x(:), y(:), z(:), 'r.'); % Plot the meshgrid points
hold off;
axis equal;
Here, "hold on" and "hold off" functions will ensure that they are plotted together. Refer to the following documentation link for more information on these functions:
Hope this helps!
  1 comentario
taetae
taetae el 19 de Jul. de 2024
I don't think that's the way to go... I've been suffering from this for 3 days now...

Iniciar sesión para comentar.

Más respuestas (1)

Zinea
Zinea el 18 de Jul. de 2024
Hi taetae,
Here is a demonstration on how to merge a meshgrid with an STL model in MATLAB R2022b. A dummy STL model which is a simple cube is used as an example here. The STL model and meshgrid are plotted separately, as well as merged in a 3D plot.
NOTE:
  1. The ‘hold on’ command is used for plotting multiple graphical objects on the same axes without overwriting each other. After plotting both the STL model and the meshgrid, we use ‘hold off’ to stop adding to the current plot.
  2. The ‘surf’ function is used to add a surface plot to a 3D plot. This is done in conjunction with the patch function, which is used to display an STL model.
Here is the complete script for reference:
% Define the vertices of the cube
vertices = [
0 0 0;
1 0 0;
1 1 0;
0 1 0;
0 0 1;
1 0 1;
1 1 1;
0 1 1
];
% Define the faces of the cube
faces = [
1 2 3; 1 3 4; % Bottom face
5 6 7; 5 7 8; % Top face
1 2 6; 1 6 5; % Front face
2 3 7; 2 7 6; % Right face
3 4 8; 3 8 7; % Back face
4 1 5; 4 5 8 % Left face
];
% Create a triangulation object
cube = triangulation(faces, vertices);
% Save the triangulation object as an STL file
stlwrite(cube, 'dummy_cube.stl');
disp('Dummy STL model created and saved as dummy_cube.stl');
Dummy STL model created and saved as dummy_cube.stl
% Load the STL file
fv = stlread('dummy_cube.stl');
% Extract vertices and faces from the loaded STL structure
vertices = fv.Points;
faces = fv.ConnectivityList;
% Create a meshgrid
[x, y] = meshgrid(linspace(min(vertices(:,1)), max(vertices(:,1)), 50), ...
linspace(min(vertices(:,2)), max(vertices(:,2)), 50));
% Define the function for the meshgrid. Here we use a simple sine function.
z = sin(sqrt(x.^2 + y.^2));
% Plot the STL model and meshgrid separately and together
figure;
% Subplot 1: STL model
subplot(1, 3, 1);
patch('Faces', faces, 'Vertices', vertices, ...
'FaceColor', [0.8 0.8 1.0], 'EdgeColor', 'none', 'FaceAlpha', 0.5);
view(3);
axis equal;
xlabel('X');
ylabel('Y');
zlabel('Z');
title('STL Model');
% Subplot 2: Meshgrid
subplot(1, 3, 2);
surf(x, y, z, 'FaceAlpha', 0.5, 'EdgeColor', 'none');
view(3);
axis equal;
xlabel('X');
ylabel('Y');
zlabel('Z');
title('Meshgrid');
% Subplot 3: Combined
subplot(1, 3, 3);
hold on;
patch('Faces', faces, 'Vertices', vertices, ...
'FaceColor', [0.8 0.8 1.0], 'EdgeColor', 'none', 'FaceAlpha', 0.5);
surf(x, y, z, 'FaceAlpha', 0.5, 'EdgeColor', 'none');
view(3);
axis equal;
hold off;
xlabel('X');
ylabel('Y');
zlabel('Z');
title('Combined STL Model and Meshgrid');
% Set the overall figure title
sgtitle('STL Model and Meshgrid Plots');
You may refer to the following documentation links for more information about the functions used in the above code snippet:
Hope this resolves your query!
Zinea
  1 comentario
taetae
taetae el 19 de Jul. de 2024
I don't think that's the way to go... I've been suffering from this for 3 days now...

Iniciar sesión para comentar.

Productos


Versión

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by