DXFビューアー
DXFを表示する必要がある場合は、ここをクリックしてください。
このパッケージは、JavaScriptで記述されたDXF 2D Viewerコンポーネントを提供します。 WebGLを使用して図面をレンダリングします(3.JSライブラリを介して)。パフォーマンスの問題なく巨大な現実世界のファイルを描くことを目的としたパフォーマンスを念頭に置いて慎重に作成されました。
使用例は、https://github.com/vagran/dxf-viewer-example-srcで入手できます
展開デモ:https://vagran.github.io/dxf-viewer-example/
インストール
特徴
- ファイルの取得、解析、レンダリングの準備は、提供されたヘルパーを使用してWebワーカーに簡単にオフロードできるように分離されます。したがって、最も重量の処理部分はUIの応答性に影響しません。上記の例は、この手法を示しています。
- ジオメトリバッチ - ファイル処理中に最小数のレンダリングバッチが作成されるため、必要な額の総数数を最小限に抑えます。
- インスタンスレンダリング - 異なる変換(DXFブロックインスタンスなど)で複数回レンダリングされる機能は、インスタンスレンダリングWebGL機能を使用して単一のドローコールによってレンダリングされます。
- 複数のフォントサポート。フォントのリストは、テキストレンダリング用に指定できます。生のTTFファイルがサポートされています。フォントは怠zy-ロードされ、キャラクターが遭遇すると、グリフが既にロードされたフォントを通じてまだ利用できない場合、次のフォントがフェッチされ、必要なグリフが確認されます。
- レイヤー - レイヤーは、レンダリングバッチを作成するときに考慮され、簡単に非表示/表示できるようにします。
不完全な機能
まだ多くの不完全な機能があります。時間があるときにそれらのいくつかを実装しようとします。実装が欠落している最も重要な理由は、対応するサンプルファイルがないことです。
- 入力ファイルのストリーミング解析。現在、主にStream ParserではないDXF-Parserパッケージに依存しているため、解析する前にファイル全体をバッファリングしています。これにより、JSエンジンの文字列サイズ制限により、Big DXFファイル(ギガバイトの上)をサポートすることができません(バッファにも不要なメモリ廃棄物を作成します)。
- テキストスタイリング。現在、テキストレンダリングは、指定された順序で指定されたフォントのみを使用しています。 DXFスタイルとフォント属性は無視されます。テキストグリフは常に埋め込まれます。
- MTEXT(フォント、着色、スタッキング)の高度なフォーマットサポート。
- ラインパターン - すべてのラインは今のところ連続スタイルでレンダリングされています。準備段階で生成された1次元テクスチャ、テクスチャ座標(DXF頂点の属性のパターンの連続性フラグを考慮する必要がある)、およびこの機能を実装するための専用シェーダーを使用します。
- 形状のラインパターン(例:円のある)。
- ワイドライン。現在、すべての線は細い線としてレンダリングされています。物理幅は実装されていません。
- 可変幅線(すなわち、開始幅と端幅が指定されている)。
- 平滑化ポリライン(カーブフィット/スプラインフィット添加頂点)。
- ハッチング実装のいくつかの機能:外側のhatch化スタイル、ソリッド/グラデーションインフィル、mpolygonサポート、外部エンティティによって定義された二重線、境界。
- グリッドでのインスタンスをブロックします。グリッド属性は今無視されています。
- 寸法固有の特徴とスタイル(さまざまな事前に定義された矢印ブロック、テキストの配置のチューニング、制限、許容範囲)。線形の寸法タイプ。
- リーダー
- 非UTF-8ファイルエンコードサポート。現在、そのようなファイルは誤って表示されています。
$DWGCODEPAGE
パラメーターは無視されます。 - フルOCSサポート。現在、エンティティの押出方向は +zまたは-z(CADのミラーリングの機能に一般的に使用されている)であると想定されています。任意の方向は適切に処理されていません。
- 紙のスペース、レイアウト(シート)、ビューポート。
- あまり一般的ではないDXF機能が多い。

貢献
プルリクエスト(PRS)の作成方法の詳細については、貢献ガイドラインを参照してください。このプロジェクトでは、テストのためにさまざまなサンプルファイルも必要です。 DXFレンダリングの問題が発生した場合、作成された問題に問題を示す例ファイルを提供できる場合は、大いに感謝されています。 CADソフトウェアで最小限の例を作成することも非常に役立ちます。さらに、アクセスできないさまざまな独自のCADソフトウェアで例を作成することは非常に価値があります。このプロジェクトでコーディングを開始するための入り口レベルは非常に高いため、プルリクエストではなく、サンプルファイルを使用して詳細な問題レポートを受け取る方が便利です。
ライセンス
このプロジェクトは、Mozilla Public License 2.0の条件の下でライセンスされています。
寄付
プロジェクトメンテナーに感謝したいですか?これがリンクです: