MATLAB Answers

Arinko
0

曲線をstlデータにする方法

Arinko
さんによって質問されました 2019 年 8 月 8 日
最新アクティビティ michio
さんによって 回答されました 2019 年 8 月 8 日
求めた曲線に厚みと幅を加えて,stlデータを取得したいです.
具体的に言いますと,
x=(0:pi/100:2*pi);
y=sin(x);
plot(x,y)
これでsin波を求めることができますが,このsin波の線の幅が2cm,奥行きが4cm,xの長さが6cmの,波打ってる壁のようなstlデータを取得することは可能なのでしょうか.
もし可能ならば,stlデータを作る方法を教えて頂けると幸いです.

  0 件のコメント

サインイン to comment.

タグ

1 件の回答

michio
Answer by michio
on 8 Aug 2019
 Accepted Answer

File Exchange で公開されている関数でよさそうなものがあったのでやってみました。
stl_curve.png
使うのは以下の2つです。それぞれダウンロードしてください。
  1. stlwrite - write ASCII or Binary STL files(STLファイルへの出力)
  2. surf2solid - make a solid volume from a surface for 3D printing(構造体を構築する関数)
以下サンプルコードです。
n = 100; % 曲線の分割数
width = 1; % 奥行
height = 1; % 幅
% ベースとなる曲面を構築
x = linspace(0,2*pi,n); % x座標
y = linspace(0,width,n); % y座標
[X,Y] = meshgrid(x,y);
Z = sin(X); % z座標
% 厚みを加えて構造体とする
% surf2solid(X,Y,Z,'thickness',height); % 可視化用
% F(面情報) V(頂点座標)に書き出し
[F,V] = surf2solid(X,Y,Z,'thickness',-0.1);
% STL ファイルに出力
stlwrite('test.stl',F,V);
% 試しに可視化(以下はPDE Toolboxが必要です)
model = createpde(1);
importGeometry(model,'test.stl');
pdegplot(model,'FaceLabels','on')

  0 件のコメント

サインイン to comment.