技術図面 (Technical Drawings)
図面は手描きではなく生成されます。パラメトリックなbuild123dモデル(またはSTEPファイル)が唯一の情報源であり、scripts/drawlib.py がそこからビューを導出し(隠線除去、断面、ハッチング)、ワークショップに必要な注記を追加します。保存のたびに自動シートチェックが実行されます。結果はシートごとのベクターPDF(オプションでDXF/SVG)と、完成と判断する前に確認するためのPNGプレビューです。
この方法の利点:ビューがモデルと矛盾することはなく、パラメータを変更すればすべてのシートが再生成され、同じモデルからSTEPファイルと干渉チェックが無料で得られます。
良い図面が達成すべきこと
図面は、部品を製作・検査する人との契約です。プロジェクトを見たことがない人でも、そのシートだけで製造できなければなりません。これが以下のすべてを決定します:機能に必要な箇所のみに寸法を入れ、意味のある箇所だけに公差を指定し、各機能面の仕上げ状態を指示します。すべてのエッジに寸法が入っていても、はめあい、表面性状、幾何公差がないシートは、審査員や現場が意味する意味での「製造可能」ではありません。
ルートを選択する
- ユーザーがSTEPファイルを持っており、すぐに図面が欲しい場合:
python scripts/step2drawing.py part.step [--section] [--lang en --projection third] [--units in] [--material ...] [--density ...] [--dxf]を実行します。ビュー、隠線、中心線、全体寸法、タイトルブロック、およびチェックが生成されます。その後、機能寸法、はめあい、公差、表面性状はまだ追加する必要があることを明確に伝え、追加を提案します。同じモジュールのauto_drawing()はout=Noneで(sheet, views, issues)を返すので、Pythonでシートに注記を追加し続けることができます(Y-upエクスポートには--up y)。 - 製造を目的としたもの全般:部品をモデル化し、Pythonでシートを記述します(以下のワークフロー)。STEP入力もモデルとして使用できます:
D.load_step(path)。
ワークフロー
- まず機能を明確にする。 各部品について尋ねる:どの面が何と結合するか、機械が動作するために同軸/垂直/平面でなければならないものは何か、どの寸法が購入部品(ベアリング、ピン、ネジ)に由来するか。これらがデータム、はめあい、公差になります。ユーザーがレポート、部品表、古い図面を持っている場合は、それを読み込み、その数値を保持します。自分で決めた値にはすべて自分の仮定であることを明記し、ユーザーに伝えます。図面の言語と投影法(デフォルト:ドイツ語、第一角法;北米:英語、第三角法)を尋ね、会社のタイトルブロックがあるかどうかも確認します。
- 1つのモジュール内で部品をモデル化し、各部品は製造時の姿勢で配置し、すべての寸法は名前付きパラメータとします。旋削部品:半プロファイル
(x, r)を回転させます。角柱部品:ボックスから穴ソリッドを差し引くか、1つのプロファイルを押し出します(融合シームなし)。ねじはコア穴のみをモデル化します。購入品/標準部品は単純なソリッドとして配置し、組立と干渉チェックが完全になるようにします。 - 図面作成前に組立をチェック:すべての部品に対してペアワイズで
(a & b).volumeを計算。すべての重なりはゼロか、意図的なもの(ねじのかみ合い、締まりばめ)でなければなりません。図面ではなくモデルを修正します。 - シートごとに1つの関数を記述し、
examples/内の最も近い例をコピーします:flanged_bush.py(旋削部品、基本テンプレート)、bearing_bracket.py(組立、部品表)、stepped_shaft.py(破断ビュー、詳細、除去断面、ねじ)、flange.py(半断面、ピッチ円、位置度公差)、spur_gear.py(歯車データ表)、weldment.py(溶接記号)、milled_block.py(英語、第三角法、会社タイトルブロック)。最初はジオメトリのみで開始し、レンダリングして確認した後、レイヤーごとに注記を追加します:中心線 → 寸法 → データムと公差 → 表面性状 → 注記、表 → タイトルブロック。 - レンダリングし、チェックを読み、すべてのシートを確認する。
Sheet.save(pdf, png=...)はチェックレポートを出力し、各指摘事項を枠で囲んだ<png>_check.pngを書き出します。すべてのエラーと警告を修正します(注記の移動、オフセット変更、tshift、tpos、引出線の膝位置)。その後、自分でPNGを確認します。チェックは重なりや不整合を検出しますが、間違った寸法概念や間違ったエッジを指す矢印は検出しません。密集領域は拡大して確認します。確認していないシートを完了と報告してはいけません。 - 納品:図面番号で命名されたシートごとのPDF、結合セット(pypdf
PdfWriter.append)、ユーザーがCADで編集する場合はDXF、部品ごとおよび組立用のSTEP(export_step)。まだ描かれていないものと、どの値が仮定であるかを明確に述べます。
各マシンに一度だけセットアップ:pip install -r requirements.txt。ISO 3098フォントosifontはバンドルされていません。$DRAWLIB_FONT、scripts/fonts/、~/.drawlib/fonts/、またはシステムフォントに配置します(scripts/fonts/README.md参照)。これがない場合、ライブラリはDejaVu Sansを使用します。ジオメトリは同じですが、文字がISO 3098ではありません。チェックはアクティブなフォントで測定します。
drawlibの使用
最初のシートを書く前に references/drawlib_api.md を読んでください。各関数の呼び出し方、座標規則、レシピ、落とし穴が記載されています。基本事項:
- `S = D.Sheet(