如何3 d之间的补丁2 3 d形状(stl附加)

6视图(30天)
史密斯
史密斯 2023年5月12日
编辑: 明星黾 2023年5月13日
你好,我试着填写或创建2盖子顶端和底部的三维形状,然后提取stl,但我不知道如何去做。
关闭所有
clc
清晰的所有
TR = stlread (“.stl”);
错误使用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);% %不工作,显示这个错误(输入三角必须包含索引值。条目分数部分无效。)
是黄色的外表面和内表面是红色的。

接受的答案

明星黾
明星黾 2023年5月12日
使用 邮政编码 函数的邮政 .stl 文件。然后(除非是大于 5 MB liimit),上传 . zip 文件。
这个问题放在一边,
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”)
Uzip =1×1单元阵列
{' _geometry.stl '}
TR = stlread (Uzip {1})
TR =
三角测量属性:分:[15047×3双]ConnectivityList:(30090×3双)
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的重心
警告:Polyshape有重复的顶点,十字路口或其他不一致,可能会产生不准确的或意想不到的结果。输入数据创建一个定义良好的polyshape已经修改。
[残雪,cy] =质心(shp)%质心(x, y)坐标
残雪= 3.6345
cy = -165.9400
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))
k = 15047×3
1.0045 -159.4979 -221.6322 0.9985 -159.4696 -221.6729 0.9965 -159.4702 -221.6730 -3.8860 -175.6318 -225.1760 -3.9088 -175.6476 -225.1813 -3.8867 -175.6236 -225.1993 -3.9105 -175.6321 -225.2318 -3.8877 -175.6137 -225.2334 -3.9101 -175.6230 -225.2662 -3.8885 -175.6061 -225.2675
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))))))
cummeans =119×1单元阵列
{[1 -3.1398 9.1577 -226.6899 -3.0900 9.7459 -223.0463]}{[2 -3.0877 9.3631 -226.7986 -3.0378 9.8350 -223.1397]}{[3 -3.0362 9.5813 -226.9612 -2.9876 9.9650 -223.3078]}{[4 -2.9859 9.8659 -227.0143 -2.9377 10.2274 -223.5327]}{[5 5 -2.9356 10.1120 -227.2184 -2.8857 10.5571 -223.5094]}{[6 6 -2.8846 10.3680 -227.3669 -2.8352 10.7357 -223.6198]}{[7 7 -2.8344 10.4577 -227.5171 -2.7845 10.8438 -223.7256]}{[8 8 -2.7838 10.5891 -227.6170 -2.7346 10.9115 -223.8862]}{[9 9 -2.7328 10.7849 -227.1203 -2.6920 11.0847 -226.0076]}{[10 -2.6769 10.7422 -227.9467 -2.6272 11.6406 -224.2873]}{[11 11 -2.6265 10.8540 -228.0062 -2.5770 11.8351 -224.3070]}{[12 12 -2.5736 10.9024 -228.1967 -2.5243 11.8861 -224.4458]}{[13 -2.5228 10.9222 -228.2916 -2.4801 11.9337 -224.8925]}{[14 14 -2.4512 10.9302 -228.4786 -2.4062 12.2049 -224.7661]}{[15 15 -2.3617 12.2261 -224.8861 -2.3947 10.8965 -228.5691]}{[16 -2.3351 10.8189 -228.7150 -2.2852 12.2276 -224.9881]}
Szv = cellfun (@ (x)大小(x, 2), cummeans);
%
% Szvm =缓冲区(Szv, 12)
mtx = cell2mat (cummeans (Szv = = 8))
mtx = 119×8
1.0000 -3.1398 9.1577 -226.6899 1.0000 -3.0900 9.7459 -223.0463 2.0000 -3.0877 9.3631 -226.7986 2.0000 -3.0378 9.8350 -223.1397 3.0000 -3.0362 9.5813 -226.9612 3.0000 -2.9876 9.9650 -223.3078 4.0000 -2.9859 9.8659 -227.0143 4.0000 -2.9377 10.2274 -223.5327 5.0000 -2.9356 10.1120 -227.2184 5.0000 -2.8857 10.5571 -223.5094 6.0000 -2.8846 10.3680 -227.3669 6.0000 -2.8352 10.7357 -223.6198 7.0000 -2.8344 10.4577 -227.5171 7.0000 -2.7845 10.8438 -223.7256 8.0000 -2.7838 10.5891 -227.6170 8.0000 -2.7346 10.9115 -223.8862 9.0000 -2.7328 10.7849 -227.1203 9.0000 -2.6920 11.0847 -226.0076 10.0000 -2.6769 10.7422 -227.9467 10.0000 -2.6272 11.6406 -224.2873
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
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文件的名称和位置是正确的,,你读了文件和目录的权限。
1评论
史密斯
史密斯 2023年5月12日
我知道,这不是一个问题,你认为我怎么进口数据的向量和上传图像?这样的展示形式的问题,因为我不能上传stl文件

登录置评。

类别

找到更多的在二维和三维图帮助中心文件交换

下载188bet金宝搏


释放

R2022a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!