- The function "generateMesh(model)" was called but the output "U" is not used to access nodes and elements of the generated mesh.
- The variable "pl2 = pdeplot3D(model)" assigns the plot to a variable, but "pdeplot3D" does not return the data in the way you are trying to access. This function is used for plotting and not for extracting X, Y, and Z data directly. You can extract the mesh node coordinates from the generated mesh model.
- The "griddata" function call "Xgrid = griddata(y,z,x,Y,Z,);" is incorrect as the variables "x", "y" and "z" are not defined.
How to subtract surface from pdegplot?
    4 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
Hi, sorry for bad english. I want to subtract surface created from x,y,z coordinates from stl model imported by pdegplot. I imported stl model and extacted X,Y,Z values of this model, then by using griddata command i made dimention of X and x same and subtracted and get result like in image. In red section what i want, but result also create subtraction result in blue sections. So is the any way to get only result only in red section? The basic code is presented
model = createpde;
importGeometry(model,'BELT PULLEY.stl');
U= generateMesh(model)
pl2=pdeplot3D(model)
X=pl2.XData;
Y=pl2.YData;
Z=pl2.ZData;
 Xgrid = griddata(y,z,x,Y,Z,);
 hh=plot3(X-Xgrid,Y,Z)

0 Commenti
Risposte (1)
  Maneet Kaur Bagga
      
 il 8 Ott 2024
        
      Modificato: Maneet Kaur Bagga
      
 il 8 Ott 2024
  
      Hi ,
As per my understanding, the code has the following errors:
Please refer to the modified code below for better understanding of the above mentioned points:
model = createpde;
mesh = generateMesh(model);  % Generate mesh for the geometry
% Extract mesh node coordinates
X = model.Mesh.Nodes(1, :);  % X coordinates
Y = model.Mesh.Nodes(2, :);  % Y coordinates
Z = model.Mesh.Nodes(3, :);  % Z coordinates
% Use griddata 
Xgrid = griddata(Y, Z, X, Y, Z);  % Interpolating the X values
% Define bounds for where you want to subtract
x_min = -10; x_max = 10; 
y_min = -5; y_max = 5;
z_min = 0; z_max = 15;
% Create a mask for the red section
mask = (X > x_min) & (X < x_max) & (Y > y_min) & (Y < y_max) & (Z > z_min) & (Z < z_max);
% Apply the subtraction only in the selected region
X_subtracted = X;
X_subtracted(mask) = X(mask) - Xgrid(mask);
% Plot the result
figure;
plot3(X_subtracted, Y, Z);
I hope this resolves your query!
0 Commenti
Vedere anche
Categorie
				Scopri di più su Geometry and Mesh in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

