如何3 d之间的补丁2 3 d形状(stl附加)
6视图(30天)
显示旧的评论
你好,我试着填写或创建2盖子顶端和底部的三维形状,然后提取stl,但我不知道如何去做。
关闭所有
clc
清晰的所有
TR = stlread (“.stl”);
x = TR.Points (: 1);%内表面
y = TR.Points (:, 2);%内表面
z = TR.Points (:, 3);%内表面
xyz =[(意味着(x));(意思是(y));(意味着(z)));%重心
n =大小(x);
scatter3(意味着(x),意味着(y),意味着(z));
持有在
% (1:n) = x (1: n) + 1;
% (1:n) = y (1: n) + 1;
% z z (1: n) = (1: n) + 1;
scatter3 (x, y, z);
%向量定义
x1 = x (: 1) xyz (1);
日元= y (: 1) - xyz (2);
z1 = z (: 1) - xyz (3);
%这个向量的长度
x2 =√(x1 (: 1)。^ 2) + (y1 (: 1)。^ 2) + (z1 (: 1)。^ 2));
厚度= 2;%想要的厚度
x2mod = x2(: 1) +厚度;% % +长度要求厚度
科幻小说= x2mod (: 1)。/ x2 (: 1);%的比例因子
%占不同的引用
X = X(: 1)。*(科幻(:1));
xyz (X = X + 1)。* (1 - SF);% %最终X坐标的外表面
Y = Y(: 1)。*(科幻(:1));
Y = Y + xyz (2)。* (1 - SF);% %最终Y坐标的外表面
Z = Z(: 1)。*(科幻(:1));
Z + Z = xyz (3)。* (1 - SF);% % Z坐标的外表面
持有在
scatter3 (X, Y, Z);%最后的情节
i = TR.ConnectivityList%连接列表
k = [X (: 1), Y (: 1)、Z (: 1)];
TR1 =三角(k, X, Y, Z);% %不工作,显示这个错误(输入三角必须包含索引值。条目分数部分无效。)
是黄色的外表面和内表面是红色的。
0评论
接受的答案
明星黾
2023年5月12日
这个问题放在一边,
t = linspace(0, 2 *π,500)。';%假定列向量
7 r = [5];
x = cost * r;%大小:元素个数(t) x元素个数(右)
y =罪* r (t);%大小:元素个数(t) x元素个数(右)
z =罪(t * 6) + randn(元素个数(t) 2) / 5;%大小:元素个数(t) x元素个数(右)
图
plot3 (x (: 1), y (: 1)、z (: 1),“线宽”,1)%内圈
持有在
plot3 (x (:, 2), y (:, 2)、z (:, 2),“线宽”,1)%外圆
持有从
网格
轴(“平等”)
标题(“原始”)
图
plot3 (x (: 1), y (: 1)、z (: 1),“线宽”,1)%内圈
持有在
plot3 (x (:, 2), y (:, 2)、z (:, 2),“线宽”,1)%内圈
补丁([x (: 1);x (:, 2)]、[y (: 1);y (:, 2)]、[z (: 1);z (:, 2)),‘g’,“EdgeColor”,“没有”)%的帽子
持有从
网格
轴(“平等”)
标题(”与“帽子”)
%视图(0,90)
我不明白你
“X”
,
“Y”
,
“Z”
矩阵,然而如果他们像我(我希望是简单的理解),他们可能会使用我的代码没有进一步的修改。如果这是不可能的对于你上传数据,有可能为你分享所有(或downdampled版本)
“X”
,
“Y”
,
“Z”
矩阵。
。
2的评论
明星黾
2023年5月13日
编辑:明星黾
2023年5月13日
我要需要帮助的工作。我希望有两个坐标的定义良好的集内外圈,创建类似于我,这是命令。
我没有经验
.stl
数据,所以我根本不懂什么是数据,或他们的代表。我不知道如何与他们一起工作。
编辑-
(2023年5月13日在58)曾
这是最好的我可以处理这些数据。我不确定会多么容易提取STL使用,因为我的主要目标是产生表面。
试试这个,
Uzip =解压(“_geometry.zip”)
TR = stlread (Uzip {1})
x = TR.Points (: 1);%内表面
y = TR.Points (:, 2);%内表面
z = TR.Points (:, 3);%内表面
xyz =[(意味着(x));(意思是(y));(意味着(z)));%重心
n =大小(x);
scatter3(意味着(x),意味着(y),意味着(z));
持有在
% (1:n) = x (1: n) + 1;
% (1:n) = y (1: n) + 1;
% z z (1: n) = (1: n) + 1;
scatter3 (x, y, z);
%向量定义
x1 = x (: 1) xyz (1);
日元= y (: 1) - xyz (2);
z1 = z (: 1) - xyz (3);
%这个向量的长度
x2 =√(x1 (: 1)。^ 2) + (y1 (: 1)。^ 2) + (z1 (: 1)。^ 2));
厚度= 2;%想要的厚度
x2mod = x2(: 1) +厚度;% % +长度要求厚度
科幻小说= x2mod (: 1)。/ x2 (: 1);%的比例因子
%占不同的引用
X = X(: 1)。*(科幻(:1));
xyz (X = X + 1)。* (1 - SF);% %最终X坐标的外表面
Y = Y(: 1)。*(科幻(:1));
Y = Y + xyz (2)。* (1 - SF);% %最终Y坐标的外表面
Z = Z(: 1)。*(科幻(:1));
Z + Z = xyz (3)。* (1 - SF);% % Z坐标的外表面
持有在
scatter3 (X, Y, Z, 0.1, Z / max (Z),“。”);%最后的情节
包含(“X”)
ylabel (“Y”)
zlabel (“Z”)
轴(“平等”)
轴马力= polyshape (X, Y);%使用polyshape的重心
[残雪,cy] =质心(shp)%质心(x, y)坐标
图
scatter3 (X, Y, Z, 0.1, Z / max (Z),“。”);%最后的情节
持有在
scatter3 (cy,残雪意味着(Z), 150, (1 0 1),“p”,“填充”)
持有从
轴(“平等”)
包含(“X”)
ylabel (“Y”)
zlabel (“Z”)
视图(0,90)
我= TR.ConnectivityList;%连接列表
k = [X (: 1), Y (: 1)、Z (: 1))
x = x;
y = y;
z = z;
th =量化(Y-cy X-cx);
r =函数(Y-cy X-cx);
[Uth,满怀,thic] = uniquetol (th, 0.05,“DataScale”1);
cummeans = accumarray (thic(1:元素个数(thic))。”,[],@ (x) {[min ([thic (x) th (x) r (x) Z (x)))马克斯([thic (x) th (x) r (x) Z (x))))))
Szv = cellfun (@ (x)大小(x, 2), cummeans);
%
% Szvm =缓冲区(Szv, 12)
mtx = cell2mat (cummeans (Szv = = 8))
minc = sortrows (mtx (: 2:4), 1);
(x1, y1, z1] = pol2cart (minc (: 1), minc (:, 2), minc (:, 3));
maxc = sortrows (mtx (: 6:8), 1);
(x2, y2、z2) = pol2cart (maxc (: 1), maxc (:, 2), maxc (:, 3));
x = (x1, x2));
y = (y1 y2);
(z1 z = z2];
图
plot3 (x (: 1), y (: 1)、z (: 1),“线宽”,1)%内圈
持有在
plot3 (x (: 1), y (: 1)、z (:, 2),“线宽”,1)
plot3 (x (:, 2), y (:, 2)、z (: 1),“线宽”,1)
plot3 (x (:, 2), y (:, 2)、z (:, 2),“线宽”,1)%内圈
补丁([x (: 1);(x (:, 2))], [y (: 1);(y (:, 2))], [z (: 1);(z (: 1))),‘g’,“EdgeColor”,“没有”,“FaceAlpha”,0.5)%的鞋子
补丁([x (: 1);(x (:, 2))], [y (: 1);(y (:, 2))], [z (:, 2);(z (:, 2))),“r”,“EdgeColor”,“没有”,“FaceAlpha”,0.5)%的帽子
补丁([x (: 1);(x (: 1))], [y (: 1);(y (: 1))], [z (: 1);(z (:, 2))),“c”,“EdgeColor”,“没有”,“FaceAlpha”,0.5)%的内表面
补丁([x (:, 2);(x (:, 2))], [y (:, 2);(y (:, 2))], [z (: 1);(z (:, 2))),“米”,“EdgeColor”,“没有”,“FaceAlpha”,0.5)%的外表面
% %补丁([x (: 1);(x (:, 2))], [y (: 1);(y (:, 2))], [z (: 1);(z (:, 2))),‘g’,‘EdgeColor’,‘没有’,‘FaceAlpha’, 0.5) %“帽子”
持有从
网格在
轴(“平等”)
包含(“X”)
ylabel (“Y”)
zlabel (“Z”)
标题(”与“帽子”)
(阿兹,el) =视图;
%返回
图
plot3 (x (: 1), y (: 1)、z (: 1),“线宽”,1)%内圈
持有在
plot3 (x (: 1), y (: 1)、z (:, 2),“线宽”,1)
plot3 (x (:, 2), y (:, 2)、z (: 1),“线宽”,1)
plot3 (x (:, 2), y (:, 2)、z (:, 2),“线宽”,1)%内圈
补丁([x (: 1);(x (:, 2))], [y (: 1);(y (:, 2))], [z (: 1);(z (: 1))),‘g’,“EdgeColor”,“没有”,“FaceAlpha”,0.5)%的鞋子
补丁([x (: 1);(x (:, 2))], [y (: 1);(y (:, 2))], [z (:, 2);(z (:, 2))),“r”,“EdgeColor”,“没有”,“FaceAlpha”,0.5)%的帽子
补丁([x (: 1);(x (: 1))], [y (: 1);(y (: 1))], [z (: 1);(z (:, 2))),“c”,“EdgeColor”,“没有”,“FaceAlpha”,0.5)%的内表面
补丁([x (:, 2);(x (:, 2))], [y (:, 2);(y (:, 2))], [z (: 1);(z (:, 2))),“米”,“EdgeColor”,“没有”,“FaceAlpha”,0.5)%的外表面
% %补丁([x (: 1);(x (:, 2))], [y (: 1);(y (:, 2))], [z (: 1);(z (:, 2))),‘g’,‘EdgeColor’,‘没有’,‘FaceAlpha’, 0.5) %“帽子”
持有从
网格在
轴(“平等”)
包含(“X”)
ylabel (“Y”)
zlabel (“Z”)
标题(”与“帽子”)
视图(az, 10)
图
plot3 (x (: 1), y (: 1)、z (: 1),“线宽”,1)%内圈
持有在
plot3 (x (: 1), y (: 1)、z (:, 2),“线宽”,1)
plot3 (x (:, 2), y (:, 2)、z (: 1),“线宽”,1)
plot3 (x (:, 2), y (:, 2)、z (:, 2),“线宽”,1)%内圈
补丁([x (: 1);(x (:, 2))], [y (: 1);(y (:, 2))], [z (: 1);(z (: 1))),‘g’,“EdgeColor”,“没有”,“FaceAlpha”,0.5)%的鞋子
补丁([x (: 1);(x (:, 2))], [y (: 1);(y (:, 2))], [z (:, 2);(z (:, 2))),“r”,“EdgeColor”,“没有”,“FaceAlpha”,0.5)%的帽子
补丁([x (: 1);(x (: 1))], [y (: 1);(y (: 1))], [z (: 1);(z (:, 2))),“c”,“EdgeColor”,“没有”,“FaceAlpha”,0.5)%的内表面
补丁([x (:, 2);(x (:, 2))], [y (:, 2);(y (:, 2))], [z (: 1);(z (:, 2))),“米”,“EdgeColor”,“没有”,“FaceAlpha”,0.5)%的外表面
% %补丁([x (: 1);(x (:, 2))], [y (: 1);(y (:, 2))], [z (: 1);(z (:, 2))),‘g’,‘EdgeColor’,‘没有’,‘FaceAlpha’, 0.5) %“帽子”
持有从
网格在
轴(“平等”)
包含(“X”)
ylabel (“Y”)
zlabel (“Z”)
标题(”与“帽子”)
视图(阿兹,80)
图
plot3 (x (: 1), y (: 1)、z (: 1),“线宽”,1)%内圈
持有在
plot3 (x (: 1), y (: 1)、z (:, 2),“线宽”,1)
plot3 (x (:, 2), y (:, 2)、z (: 1),“线宽”,1)
plot3 (x (:, 2), y (:, 2)、z (:, 2),“线宽”,1)%内圈
补丁([x (: 1);(x (:, 2))], [y (: 1);(y (:, 2))], [z (: 1);(z (: 1))),‘g’,“EdgeColor”,“没有”,“FaceAlpha”,0.99)%的鞋子
补丁([x (: 1);(x (:, 2))], [y (: 1);(y (:, 2))], [z (:, 2);(z (:, 2))),“r”,“EdgeColor”,“没有”,“FaceAlpha”,0.99)%的帽子
补丁([x (: 1);(x (: 1))], [y (: 1);(y (: 1))], [z (: 1);(z (:, 2))),“c”,“EdgeColor”,“没有”,“FaceAlpha”,0.99)%的内表面
补丁([x (:, 2);(x (:, 2))], [y (:, 2);(y (:, 2))], [z (: 1);(z (:, 2))),“米”,“EdgeColor”,“没有”,“FaceAlpha”,0.99)%的外表面
% %补丁([x (: 1);(x (:, 2))], [y (: 1);(y (:, 2))], [z (: 1);(z (:, 2))),‘g’,‘EdgeColor’,‘没有’,‘FaceAlpha’, 0.5) %“帽子”
持有从
网格在
轴(“平等”)
包含(“X”)
ylabel (“Y”)
zlabel (“Z”)
标题(”与“帽子”)
。
答案(1)
Shaik
2023年5月12日
错误“无法打开文件.stl”表明,MATLAB是无法找到你要导入的STL文件。
在第一行代码,您应该取代
“.stl”
STL文件的实际名称你想进口,包括文件扩展名。
所以,例如,如果您的STL文件命名
my_stl_file.stl
和位于与MATLAB脚本相同的目录中,您将修改代码的第一行:
TR = stlread (“my_stl_file.stl”);
确保替换
my_stl_file.stl
STL文件的实际名称。如果文件位于一个不同的目录中,您需要指定完整的文件路径在单引号。
如果仍不能找到的文件,确保检查STL文件的名称和位置是正确的,,你读了文件和目录的权限。