質問: 曲線をstlデータにする方法 求めた曲線に厚みと幅を加えて,stlデータを取得したいです. 具体的に言いますと, x=(0:pi/100:2*pi); y=sin(x); plot(x,y) これでsin波を求めることができますが,このsin波の線の幅が2cm,奥行きが4cm,xの長さが6cmの,波打ってる壁のようなstlデータを取得することは可能なのでしょうか. もし可能ならば,stlデータを作る方法を教えて頂けると幸いです.
回答: file exchange で公開されている関数でよさそうなものがあったのでやってみました。 使うのは以下の2つです。それぞれダウンロードしてください。 stlwrite - write ascii or binary stl files(stlファイルへの出力) 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')