3Dプリンタでも良く使われるSTLファイルですが,人からもらったSTLファイルの外寸(寸法,サイズ)をさくっと知りたいときはRubyで以下のような感じです。
#!/usr/bin/ruby # stldimensions.rb: STLの外寸を求める。 # 要 stl (Gem) # usage: $0 stlfile require 'stl' class Points < Array def dimension(axis) (self.map(&axis).max-self.map(&axis).min) end end # STLファイル中の全平面の全座標を得る。各要素はGeometry::Point。 points = Points.new(STL.read(ARGV.shift).map(&:last).map(&:points).flatten) # 最大外寸を調べて表示 printf("%.2f x %.2f x %.2f\n", points.dimension(:x), points.dimension(:y), points.dimension(:z))
stlはgemでインストールできます。
$ gem install stl
STLビューアを立ち上げるのが面倒or不可能なときに。