필터 지우기
필터 지우기

How to slice a 3D structure into a X-Y planar?

조회 수: 2 (최근 30일)
Kabo
Kabo 2023년 9월 6일
편집: Matt J 2023년 9월 6일
I get the error
''Error using slice (line 85)
V must be a 3-D array.
Error in HEX_hybridization (line 104)
slice(X,Y,Z,TO,xslice,yslice,zslice)''
How can I make TO=V a 3D array?
clc
clear
close all
% Define the space boundary of the TPMS in x,y,z, in terms of number of unit cells
Lx = 3;
Ly = 3;
Lz = 9;
% Define dimensions in centimeters
unitCellLength_mm = 10; % Length of the unit cell in millimeters
wallThickness_um = 100; % Wall thickness in micrometers
% Define mesh resolution (number of grid points per unit cell)
Nx = 5;
Ny = 5;
Nz = 5;
% Generate meshgrid for the entire structure
x = linspace(0, 3, Nx*3);
y = linspace(0, 3, Ny*3);
z = linspace(0, 9, Nz*9);
[X, Y, Z] = meshgrid(x, y, z);
% Define equations
EQ_gy = cos(2*pi*X).*sin(2*pi*Y) + cos(2*pi*Y).*sin(2*pi*Z) + cos(2*pi*Z).*sin(2*pi*X); %gyroid TPMS
sig = 1./(1+exp(4*x)); %sigmoid function
C1 = 1-sig;
C2 = 1-C1;
EQ_hyb = (sig.*EQ_pr+C1.*EQ_gy+C2.*EQ_dm); %PGD,
% Volume fraction and porosity
volumeFraction = 0.5;
porosity = 1 - volumeFraction;
% Threshold to obtain the desired volume fraction
threshold = (max(EQ_hyb(:)) - min(EQ_hyb(:))) * volumeFraction + min(EQ_hyb(:));
% Generate the TPMS structure
structure = EQ_hyb <= threshold;
% Isosurface and isocap
[F1,V1] = isosurface(X,Y,Z,structure,0.5);
[F2,V2] = isocaps(X,Y,Z,structure,0.5);
%Combines isosurface and isocaps into one
F3 = [F1;F2+length(V1(:,1))];
V3 = [V1;V2];
TO = triangulation(F3,V3(:,1),V3(:,2),V3(:,3));
trisurf(TO,'FaceColor','c','FaceAlpha',1,'EdgeAlpha',1,'EdgeColor','none');
%Slice the topology to view the grading/hybridization at unit cell level
xslice = [0.5,1.5,2.5];
yslice = [];
zslice = 0;
slice(X,Y,Z,TO,xslice,yslice,zslice)

답변 (0개)

카테고리

Help CenterFile Exchange에서 Scalar Volume Data에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by