Skip to main content
Glama
parameters.py2.78 kB
from typing import TypedDict import adsk.core import adsk.fusion from adsk.fusion import Parameter from ..errors import FusionExecutionError, InvalidUserInputError class FusionParameter(TypedDict): name: str value: float unit: str expression: str comment: str def parameter_to_dict(param: Parameter) -> FusionParameter: """パラメータを辞書形式に変換する Args: param (Parameter): Fusionのパラメータオブジェクト Returns: dict: パラメータの情報を含む辞書 """ param_dict: FusionParameter = { "name": param.name, "value": param.value, "unit": param.unit, "expression": param.expression, "comment": param.comment or "", } return param_dict def get_user_parameters() -> list[FusionParameter]: """ユーザーパラメータの一覧を取得する Returns: list[dict]: ユーザーパラメータのリスト """ app = adsk.core.Application.get() if not app.activeProduct: raise FusionExecutionError("No active design found") design = adsk.fusion.Design.cast(app.activeProduct) if not design: raise FusionExecutionError("Active product is not a design") user_params = design.userParameters.asArray() return [parameter_to_dict(param) for param in user_params] def set_parameter(param_name: str, expression: str) -> FusionParameter: """指定したパラメータの値を設定する ユーザーパラメータ・モデルパラメータの両方に対応 Args: param_name (str): 設定するパラメータの名前 expression (str): 設定する値の式(例: "10 cm") Returns: dict: 設定後のパラメータ情報 Raises: InvalidUserInputError: 入力が不正な場合 FusionExecutionError: パラメータの設定に失敗した場合 """ if not param_name: raise InvalidUserInputError("Parameter 'param_name' cannot be empty") if not expression: raise InvalidUserInputError("Parameter 'expression' cannot be empty") app = adsk.core.Application.get() if not app.activeProduct: raise FusionExecutionError("No active design found") design = adsk.fusion.Design.cast(app.activeProduct) if not design: raise FusionExecutionError("Active product is not a design") parameter = design.allParameters.itemByName(param_name) if not parameter: raise FusionExecutionError(f"Parameter '{param_name}' not found") try: parameter.expression = expression return parameter_to_dict(parameter) except Exception as e: raise FusionExecutionError(f"Failed to set parameter '{param_name}': {e}") from e

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shiguri-01/fusion-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server