プリント可能性を分析 API
水密性、体積、穴、非多様体の辺、縮退面を測定して、3Dモデルのプリント上の問題をチェックします。また、実際にプリントする予定のサイズでの肉厚もチェックできます。
プリント可能性を分析タスクを作成
プリント可能性を分析タスクを作成し、3Dモデルを評価してそのプリント可能性に関する指標を報告します。タスクはバックグラウンドで実行されます。タスクに通常どのくらい時間がかかるかについては、処理時間を参照してください。
Meshyがinput_task_idタスクのプリント可能性の結果をすでに持っている場合、新しいタスクはすぐに準備完了となります。最初にGETを実行すると、その結果が返されます。
Request
# Analyze an existing task
curl https://api.meshy.ai/openapi/v1/print/analyze \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
}'
# Or analyze a model URL directly
curl https://api.meshy.ai/openapi/v1/print/analyze \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model_url": "https://example.com/model.glb"
}'
# Also check wall thickness for a 100 mm tall SLA print
curl https://api.meshy.ai/openapi/v1/print/analyze \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"printer_type": "sla",
"intended_print_height_mm": 100
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
パラメータ
- Name
- model_url
- Type
- string
- 必須
- Description
input_task_idを送信しない限り必須です。分析対象のモデルで、公開URLまたはdata URIとして指定します。両方を送信した場合、Meshyはinput_task_idを使用します。httpまたはhttpsのURLの場合、モデルは最大400 MBの.glb、.gltf、.obj、.fbx、または.stlファイルである必要があります。data URIには、最大100 MBのbase64エンコードされたGLB(data:model/gltf-binary;base64,...)またはglTF(data:model/gltf+json;base64,...)ファイルのみを格納できます。.obj、.fbx、または.stlファイルはhttpまたはhttpsのURLとして送信してください。100 MBを超えるファイルには、さらに次のルールが適用されます:
- GLB、glTF、FBX、またはOBJファイルの面数は最大10,000,000面です。Meshyは面を三角形として数えるため、四角形は2面としてカウントされ、複数回描画されるメッシュはコピーごとに1回カウントされます。
- FBXファイルはバイナリFBX 7.1以降である必要があります。
- GLBまたはglTFファイルはDraco圧縮を使用していてはいけません。
Meshyのダウンロード URL(
assets.meshy.ai/…?Expires=…&Signature=…)は署名付きであり、そのタスクのexpires_atに達すると使用できなくなります。タスクを再度読み取っても更新されません。Meshyで作成したモデルについては、代わりにinput_task_idを送信してください。これはMeshyが元のタスクを保持している間は機能します(アセット保持期間を参照)。それ以降もモデルを使用するには、expires_atより前にダウンロードし、自分自身のコピーを送信してください。
プリントを予定しているサイズでの肉厚もあわせてチェックするには、printer_type、印刷サイズ、またはその両方を送信してください。結果はprintability.thin_wallsに格納されます。肉厚のチェックには時間がかかるため、Meshyが以前にそのモデルを分析していたとしても、タスクは通常すぐには準備完了になりません。
- Name
- printer_type
- Type
- string
- Description
使用を予定しているプリンターです。これにより、肉厚チェックにおける最小肉厚が設定されます。
printer_typeなしで印刷サイズを送信した場合、Meshyはfdmを使用します。使用可能な値:
fdm: フィラメント、最小肉厚1.0 mmsla: レジン、最小肉厚0.8 mmfull_color: フルカラー、最小肉厚2.0 mm
それ以外の値を送信すると
400が返されます。
- Name
- intended_print_height_mm
- Type
- number
- Description
印刷物の高さ(ミリメートル単位)で、
1から1000までの値です。範囲外の値を送信すると400が返されます。これかintended_print_longest_side_mmのどちらか一方のみを送信してください。両方は送信できません。これはGLB入力でのみ機能します。
model_urlが.glbファイルでない場合は、代わりにintended_print_longest_side_mmを送信してください。
- Name
- intended_print_longest_side_mm
- Type
- number
- Description
印刷物の最長辺の長さ(ミリメートル単位)で、
1から1000までの値です。範囲外の値を送信すると400が返されます。これはすべての入力形式で機能します。
サイズを指定せずにprinter_typeを送信した場合、Meshyは次の印刷サイズを使用します:
.glbファイルまたは任意のinput_task_id: 高さ150 mm.stlファイル: ファイル自体の最長辺を、ミリメートルとして読み取った値.obj、.fbx、または.gltfファイル: 最長辺150 mm
他の単位のSTLファイルの場合は、intended_print_longest_side_mmを送信してください。
Meshyはどちらの印刷サイズも最も近いミリメートルに丸めます。
戻り値
レスポンスのresultフィールドには、新しいプリント可能性を分析タスクのIDが格納されます。
失敗モード
- Name
400 - Bad Request- Description
リクエストを実行できません。エラーメッセージには、検出された問題が示されます。例:
- パラメータ不足:
input_task_idもmodel_urlも送信されませんでした。 - 無効なUUID:
input_task_idが有効なUUIDではありません。 - 無効なモデルURL:
model_urlの形式が不正である、サポートされていないスキームを使用している、またはサポートされていないファイル拡張子を使用しています。 - モデルファイルが大きすぎる:
model_urlのファイルが、httpまたはhttpsのURLの場合は400 MBを、data URIの場合は100 MBを超えています。 - 面数が多すぎる:
model_urlのファイルが、100 MBを超えるGLB、glTF、FBX、またはOBJファイルで、10,000,000面を超えています。面数を減らしてから、ファイルを再送信してください。 - 100 MBを超えるASCII FBX:
model_urlのファイルが、100 MBを超えるASCII FBXです。バイナリFBXまたはGLBとして送信してください。 - 読み取り不能なモデルファイル:
model_urlのファイルが100 MBを超えており、Meshyがそのヘッダーを読み取れません。たとえば、Draco圧縮されたGLBまたはglTF、あるいは7.1より古いバイナリFBXである場合です。 - モデルヘッダーが複雑すぎる:
model_urlのファイルが100 MBを超えており、そのヘッダーに含まれるメッシュ、ノード、またはレコードの数が多すぎてチェックできません。ファイル内のオブジェクト数を減らしてから、再送信してください。 - モデルファイルをダウンロードできない:
model_urlがエラーを返しました。多くの場合、署名付きMeshyダウンロードURLの期限が切れたことが原因です。タスクを再度読み取っても、同じ有効期限の同じURLが返されます。自分自身のコピーのファイルを送信するか、Meshyが元のタスクを保持している間はinput_task_idを送信してください。 - タスクが成功していない:
input_task_idのタスクがまだ保留中、進行中、または失敗しています。 - 無効な印刷サイズ:
intended_print_height_mmまたはintended_print_longest_side_mmが1から1000の範囲外であるか、リクエストに両方が含まれています。 - 不明なプリンタータイプ:
printer_typeがfdm、sla、full_colorのいずれでもありません。 - 非GLBモデルに対する高さ指定: リクエストに
intended_print_height_mmがあり、かつmodel_urlが.glbファイルではありません。代わりにintended_print_longest_side_mmを送信してください。 - このモデルを高さでサイズ指定できない: 指定された高さ、またはデフォルトの150 mmでは、モデルの最長辺が1から1,000 mmの範囲外になります。これは、モデルが平坦である場合や、Meshyがそのサイズを特定できない場合にも発生します。代わりに
intended_print_longest_side_mmを送信してください。.glbのmodel_urlや一部のinput_task_idタスクについては、Meshyはタスク開始後にのみこれを検出し、その場合タスクは代わりにFAILEDとして終了します。 - STLサイズが使用不能: リクエストにサイズを指定せず
printer_typeがあり、Meshyが.stlファイル自体の最長辺を読み取れないか、その値が1から1,000 mmの範囲外です。intended_print_longest_side_mmを送信してください。
リクエストを修正してから、再送信してください。エラーを参照してください。
- パラメータ不足:
- Name
401 - Unauthorized- Description
APIキーが指定されていないか、無効です。
Authorizationヘッダーを確認してください。
- Name
403 - Forbidden- Description
input_task_idがレリーフモデルであり、このエンドポイントでは分析できません。メッセージはThis model type does not support this operationです。別のモデルを送信してください。
- Name
404 - Not Found- Description
Meshyは
input_task_idに対応する分析対象のモデルを見つけられません。例:- タスクが存在しない、削除された、またはあなた自身のものでも、あなたが所属するワークスペース内のものでもありません。
- タスクがMeshy 6より古いモデルを使用しているか、そのタイプが3Dモデルを生成しません。
- タスクのモデルファイルがストレージに存在しなくなっています。
input_task_idが、あなた自身のもの、またはあなたのワークスペースのいずれかに属する、サポートされているタスクであることを確認するか、モデルをmodel_urlとして送信してください。
- Name
429 - Too Many Requests- Description
レート制限を超えたか、保留中のタスクが多すぎます。しばらく待ってから再試行してください。レート制限を参照してください。
プリント可能性を分析タスクを取得する
IDでプリント可能性を分析タスクを返します。
Request
curl https://api.meshy.ai/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"expires_at": 1715725401000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "warning",
"issue_count": 1,
"error_count": 0,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"evaluated_at": 1700000001000
},
"consumed_credits": 0
}
Response (wall thickness checked)
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000012000,
"expires_at": 1715725412000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "error",
"issue_count": 2,
"error_count": 1,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"intended_print": {
"printer_type": "sla",
"height_mm": 100,
"longest_side_mm": 118,
"wall_thickness_mm": 0.8,
"dimensions_mm": [118, 72.41, 99.87]
},
"thin_walls": {
"thin_area_ratio": 0.083,
"has_thin_walls": true,
"status": "error"
},
"evaluated_at": 1700000012000
},
"consumed_credits": 0
}
パラメータ
- Name
- id
- Type
- path
- Description
作成レスポンスから取得したタスクID。
戻り値
プリント可能性を分析タスクオブジェクト。その printability フィールドは、タスクが SUCCEEDED になるまで存在しません。Meshy が肉厚をチェックした場合、printability には intended_print と thin_walls も含まれます。
プリント可能性を分析タスクを削除する
プリント可能性を分析タスクを完全に削除します。キャッシュされた結果も削除されます。削除を取り消すことはできません。
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS. The task keeps running:
{
"message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}
パスパラメータ
- Name
- id
- Type
- path
- Description
削除するタスクのID。
タスクのステータス
PENDING のタスクを削除すると、作成時に使用したクレジットが返金されます。
IN_PROGRESS のタスクは削除できません。リクエストは 409 Conflict を返し、
タスクはそのまま実行され続けます。Meshyは、すでに開始されたタスクについては返金を行わないため、
削除するとクレジットと結果の両方を失うことになります。SUCCEEDED、FAILED、または CANCELED の
いずれかに到達するまで待ってから削除してください。
最終ステータス(SUCCEEDED、FAILED、または CANCELED)にあるタスクを削除しても、
クレジットは返金されません。
戻り値
タスクが削除された場合は 200 OK、タスクが IN_PROGRESS の場合は 409 Conflict を返します。
プリント可能性を分析タスクの一覧を取得
プリント可能性を分析タスクの一覧を返します。
Request
curl https://api.meshy.ai/openapi/v1/print/analyze?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"expires_at": 1715725401000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "warning",
"issue_count": 1,
"error_count": 0,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"evaluated_at": 1700000001000
},
"consumed_credits": 0
}
]
パラメータ
- Name
- page_num
- Type
- integer
- デフォルト 1
- Description
返されるページ番号。
1から始まります。
- Name
- page_size
- Type
- integer
- デフォルト 10
- Description
ページごとのタスク数。最大
100まで。
- Name
- sort_by
- Type
- string
- Description
ソート順。
利用可能な値:
+created_at: 古い順-created_at: 新しい順
戻り値
プリント可能性を分析タスクオブジェクトのページネーションされたリスト。
Stream an Analyze Printability task
Analyze Printability タスクの更新を Server-Sent Events (SSE) としてストリーミングします。
Request
curl -N https://api.meshy.ai/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Error event example
event: error
data: {
"status_code": 404,
"message": "Task not found"
}
// Message event examples illustrate task progress.
// Every frame is the full task object; fields not yet populated are null / empty.
// The following PENDING frame is abbreviated to the fields that change.
event: message
data: {
"id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"expires_at": 1715725401000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "warning",
"issue_count": 1,
"error_count": 0,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"evaluated_at": 1700000001000
},
"consumed_credits": 0
}
パラメータ
- Name
- id
- Type
- path
- Description
作成レスポンスから取得したタスク ID。
返り値
Analyze Printability タスクオブジェクトのストリームを Server-Sent Events として返します。
各イベントには、Get エンドポイントが返すものと同じ形式の完全なタスクオブジェクトが含まれます。タスクが PENDING または IN_PROGRESS の間は、出力フィールドは空(null、[]、または {})であり、finished_at は 0 です。Meshy はタスクが SUCCEEDED になった後にのみ printability フィールドを送信します。
プリント可能性を分析タスクオブジェクト
プリント可能性を分析タスクオブジェクトは、3Dモデルの1回の分析を記述します。タスクの状態、progress、そしてタスクが成功した場合のプリント可能性の結果を保持します。
The Analyze Printability Task Object
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"expires_at": 1715725401000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "warning",
"issue_count": 1,
"error_count": 0,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"evaluated_at": 1700000001000
},
"consumed_credits": 0
}
The Analyze Printability Task Object (wall thickness checked)
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-analyze",
"status": "SUCCEEDED",
"progress": 100,
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000012000,
"expires_at": 1715725412000,
"task_error": null,
"printability": {
"_version": "v1",
"status": "error",
"issue_count": 2,
"error_count": 1,
"warning_count": 1,
"metrics": {
"is_watertight": true,
"volume": 1.316167354292668,
"non_manifold_edges": 0,
"degenerate_faces": 43242,
"holes": 0
},
"intended_print": {
"printer_type": "sla",
"height_mm": 100,
"longest_side_mm": 118,
"wall_thickness_mm": 0.8,
"dimensions_mm": [118, 72.41, 99.87]
},
"thin_walls": {
"thin_area_ratio": 0.083,
"has_thin_walls": true,
"status": "error"
},
"evaluated_at": 1700000012000
},
"consumed_credits": 0
}
- Name
- id
- Type
- string
- Description
タスクID。不透明な文字列として扱い、その形式に依存しないでください。
- Name
- type
- Type
- string
- Description
タスクタイプ。常に
print-analyzeです。
- Name
- status
- Type
- string
- Description
タスクの状態。
PENDING、IN_PROGRESS、SUCCEEDED、FAILED、CANCELEDのいずれかです。
- Name
- progress
- Type
- integer
- Description
タスクがどれだけ完了しているかをパーセンテージで示します。タスクが開始するまでは
0で、成功すると100になります。
- Name
- preceding_tasks
- Type
- integer
- Description
キュー内でこのタスクより前にあるタスクの数。この値はタスクが
PENDINGの間のみ意味を持ちます。
- Name
- created_at
- Type
- timestamp
- Description
タスクが作成された時刻。Unixミリ秒単位。
- Name
- started_at
- Type
- timestamp
- Description
タスクが開始した時刻。Unixミリ秒単位。タスクが開始するまでは
0です。
- Name
- finished_at
- Type
- timestamp
- Description
タスクが終了した時刻。Unixミリ秒単位。タスクが終了するまでは
0です。
- Name
- expires_at
- Type
- timestamp
- Description
タスクの結果が失効する時刻。Unixミリ秒単位。タスクが終了するまでは
0です。
- Name
- task_error
- Type
- object
- Description
タスクが失敗した場合のエラー詳細。タスクが失敗していない場合は
nullです。エラーを参照してください。- Name
message- Type
- string
- Description
何が問題だったかを説明します。
- Name
- printability
- Type
- object
- Description
分析の結果。タスクが
SUCCEEDEDになるまでは存在しません。- Name
_version- Type
- string
- Description
プリント可能性の結果のスキーマバージョン。値は
v1です。
- Name
status- Type
- string
- Description
総合判定。以下のいずれかです。
healthy: エラーも警告もないwarning: 警告が1つ以上あり、エラーはないerror: エラーが1つ以上あるunknown: Meshyがモデルを分析できなかった
Meshyが肉厚をチェックした場合、これはメッシュチェックと
thin_walls.statusのうち悪い方になります。悪い順から良い順に、error、warning、unknown、healthyの順です。
- Name
issue_count- Type
- integer
- Description
問題の合計数。
error_count + warning_countに等しくなります。
- Name
error_count- Type
- integer
- Description
エラーレベルの問題の数。Meshyは以下のそれぞれについて1つのエラーをカウントします。
- モデルが水密ではなく、穴が8個を超える。
- モデルの穴が8個を超える。
- 体積がゼロ以下である。
- モデルの非多様体の辺が50個を超える。
Meshyが肉厚をチェックした場合、肉厚が薄すぎる壁(
thin_walls.statusがerror)があると、さらに1つのエラーがカウントされます。
- Name
warning_count- Type
- integer
- Description
警告レベルの問題の数。Meshyは以下のそれぞれについて1つの警告をカウントします。
- モデルが水密ではなく、穴が8個以下である。
- モデルの穴が1〜8個である。
- モデルの非多様体の辺が1〜50個である。
- モデルに縮退面がある。
- Name
metrics- Type
- object
- Description
モデルの生のジオメトリ測定値。
- Name
is_watertight- Type
- boolean
- Description
メッシュに境界の辺がない場合、つまり閉じている場合に
trueになります。
- Name
volume- Type
- number
- Description
モデルの体積。立方メートル単位。
- Name
non_manifold_edges- Type
- integer
- Description
非多様体の辺の数。
- Name
degenerate_faces- Type
- integer
- Description
縮退面の数。面積がゼロの面、または無効な面を指します。
- Name
holes- Type
- integer
- Description
メッシュ内の穴の数。境界ループとしてカウントされます。
- Name
intended_print- Type
- object
- Description
肉厚チェックで使用されたプリンターとサイズ。Meshyが肉厚をチェックした場合のみ存在します。
- Name
printer_type- Type
- string
- Description
プリンタータイプ。
fdm、sla、full_colorのいずれかです。
- Name
height_mm- Type
- number
- Description
プリントが高さでサイズ指定されている場合の、プリントの高さ(ミリメートル単位)。それ以外の場合は
nullです。
- Name
longest_side_mm- Type
- number
- Description
プリントの最長辺の長さ(ミリメートル単位)。プリントが高さでサイズ指定されている場合、Meshyはモデルの比率からこれを計算します。
- Name
wall_thickness_mm- Type
- number
- Description
printer_typeに対する最小の肉厚(ミリメートル単位)。Meshyはこれより薄い壁を薄すぎると報告します。
- Name
dimensions_mm- Type
- array
- Description
プリントの
[width, depth, height](ミリメートル単位)。高さはheight_mmと数ミリメートル未満の差がある場合があります。GLB以外の入力の場合、またはMeshyがモデルのサイズを特定できない場合はnullです。
- Name
thin_walls- Type
- object
- Description
肉厚チェックの結果。Meshyが肉厚をチェックした場合のみ存在します。
- Name
thin_area_ratio- Type
- number
- Description
intended_print.wall_thickness_mmより薄い表面の割合。0から1までの値です。Meshyがモデルを測定できなかった場合はnullです。
- Name
has_thin_walls- Type
- boolean
- Description
表面の一部が薄すぎる場合に
trueになります。鋭角のコーナーだけでもtrueになることがあるため、壁を厚くする必要があるかどうかはstatusを使って判断してください。Meshyがモデルを測定できなかった場合はnullです。
- Name
status- Type
- string
- Description
肉厚の判定。以下のいずれかです。
healthy: 表面の5%以下が薄すぎる。error: 表面の5%を超える部分が薄すぎる。壁を厚くするには、このタスクのidをinput_task_idとしてプリント可能性を修復に送信してください。このタスクがmodel_urlからの.stl、.fbx、.gltfファイルを分析した場合は、代わりにそのファイルをmodel_urlとして送信してください。unknown: Meshyがモデルを測定できなかった。肉厚チェック自体が失敗した場合、タスクはFAILEDとして終了します。
- Name
evaluated_at- Type
- timestamp
- Description
Meshyが分析を計算した時刻。Unixミリ秒単位。
- Name
- consumed_credits
- Type
- integer
- Description
タスクが使用したクレジットの数。分析は無料のため、常に
0です。