Python で b スプライン サーフェスを作成および使用するためのライブラリを作成し、並列scipy.interpolate.RectBivariateSpline()
インスタンスを利用してノット ベクトル、(X、Y、Z) コントロール ポイント メッシュ、および u と v の角度 ((t、c、 k) 表面評価が実行されるタプル)。また、CAD パッケージからエクスポートされたサーフェス データを読み取るための STEP パーサーも作成しました。ファイル内のエンティティから (t, c, k) 値を取得し、b_spline_surface_with_knots
それらを自分のオブジェクトに詰め込みます。Surface ライブラリは私にとってはかなりうまく機能しますが、STEP パーサーは面倒で、使用するたびにさまざまな方法で失敗します。そこで、次のように「実際の」STEP パーサーを使用してみました。
from OCC.STEPControl import STEPControl_Reader
from OCC.IFSelect import IFSelect_RetDone, IFSelect_ItemsByEntity
step_reader = STEPControl_Reader()
status = step_reader.ReadFile('c:/LPT/nomdata/lpt3.stp')
if status == IFSelect_RetDone: # check status
failsonly = False
step_reader.PrintCheckLoad(failsonly, IFSelect_ItemsByEntity)
step_reader.PrintCheckTransfer(failsonly, IFSelect_ItemsByEntity)
ok = step_reader.TransferRoot(1)
_nbs = step_reader.NbShapes()
aResShape = step_reader.Shape(1)
else:
print("Error: can't read file.")
sys.exit(0)
今、私はこのaResShape
オブジェクトを持っていますが、IPython (またはグーグル) でそれを突き刺したり突っ込んだりする量は、表面を定義する (t、c、k) 値を取得する方法を明らかにしません。
誰かがこれらの値を明らかにする方法を教えてもらえますか? それとも、もう少し不透明な別の Python ベースの STEP パーサーがあるのでしょうか?