Help with using scanf and editing a txt file?

4 ビュー (過去 30 日間)
Taylor Gates
Taylor Gates 2018 年 7 月 20 日
編集済み: Guillaume 2018 年 7 月 20 日
I'm trying to modify an stl file to eventually 3D print. I am trying to take out the bottom half of the object by using matlab. Essentially, I converted the stl file to .txt so I can analyze the z values to cut away the bottom half. I am trying to use the scanf function or something like it to read the vertices of the triangles, find max and min of xyz, and delete triangles if z<(zmax+zmin)/2. How can I accomplish this?
  6 件のコメント
Guillaume
Guillaume 2018 年 7 月 20 日
Assuming that we have code to read the vertices (it's not too hard to write that efficiently) that produces for example a Nfacet x Nvertices x 3 matrix. How do you decide which facets to remove? Mathematically.
Taylor Gates
Taylor Gates 2018 年 7 月 20 日
I'm pretty new to matlab and programming so I am still working on a code to read the vertices. Do you have any guidance towards that?

サインインしてコメントする。

採用された回答

Guillaume
Guillaume 2018 年 7 月 20 日
編集済み: Guillaume 2018 年 7 月 20 日
This is how I'd read all the vertices.
%assumptions:
% all vertices are made of 3 coordinates
% all faces are made of 3 vertices
%the code completely ignore the non-vertex lines
lines = strsplit(fileread('thinker.txt'), \n'); %read whole file and split into lines
vertlines = strjoin(lines(startsWith(lines, 'vertex')), '\n'); %identify vertex lines and rejoin
vertices = reshape(sscanf(vertlines, 'vertex %f%f%f\n'), 3, 3, []); %read vertices coordinates and reshape into something useful
This will give you a 3 x Nvertex x Nfacet matrix.
As you've not explained what filtering you want to do after that, I can't help you further.
  1 件のコメント
Taylor Gates
Taylor Gates 2018 年 7 月 20 日
Thank you. So should I come up with a max allowable z value to input to filter out all the others. Essentially I am just trying to cut away the bottom half of the image and I know that will be done through the z values. So would I come up with a range of acceptable z values?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSTL (STereoLithography) についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by