倍数パラメータの記述方法: 値が5の倍数と同じときは1を返し、それ以外は0を返す

倍数パラメータの記述方法: 値が5の倍数と同じときは1を返し、それ以外は0を返す

hideyuki_numata
Enthusiast Enthusiast
522件の閲覧回数
15件の返信
メッセージ1/16

倍数パラメータの記述方法: 値が5の倍数と同じときは1を返し、それ以外は0を返す

hideyuki_numata
Enthusiast
Enthusiast

パラメータの計算式で下記を記述する方法はありますか?

 

もしもd1の値が5の倍数と同じときは1を返し、それ以外は0を返す。

名称:A1

式:if(d5==5???;1;0)

???の部分で5の倍数指定、或いはそれに代わる算術式を、

何方か教えていただけませんか?

 

[英語 Fusion API & Scripts ボードから移動しました - オートデスクより]

0 件のいいね
解決済み
523件の閲覧回数
15件の返信
返信 (15)
メッセージ2/16

Bunga777
Mentor
Mentor
解決済み

これでどうでしょ?

パラメータ 2025-03-31 14.18.24.png

メッセージ3/16

hideyuki_numata
Enthusiast
Enthusiast

ありがとうございます。

floor関数ですか。大変勉強になりました。

0 件のいいね
メッセージ4/16

hideyuki_numata
Enthusiast
Enthusiast

解決したと思いましたが、ある数値だけでした。

上の式でd1の値が1~14まではOKですが、15はだめです。

同様に30,35,60,70,120、140、145,205~~~と倍数判定できない数値があります。

解決方法ありますか?

0 件のいいね
メッセージ5/16

jsugano_igears
Advocate
Advocate

(定番の)剰余演算子(%)が使えます。

d5%5

または

d5%5==0

image.png

 

0 件のいいね
メッセージ6/16

Bunga777
Mentor
Mentor

え?? 駄目ですか?

ちょっと検証……。

 

 

 

とりあえず、私には出来ているように思える……。

0 件のいいね
メッセージ7/16

hideyuki_numata
Enthusiast
Enthusiast

返答ありがとうございます。

しかしなぜか私の場合「%」を受け付けずErrerとなり赤ERRER表示となり止まってしまいます。

改善方法ありますか?

0 件のいいね
メッセージ8/16

Bunga777
Mentor
Mentor

単位を無しにして無くないですか?

0 件のいいね
メッセージ9/16

jsugano_igears
Advocate
Advocate

なんででしょうね。

添付のCSVファイルを、パラメータ画面右上の「パラメータからインポート」ボタンjsugano_igears_0-1743420165898.pngクリックして読み込んでもだめですか。

0 件のいいね
メッセージ10/16

hideyuki_numata
Enthusiast
Enthusiast

ありがとうございます。

確かに単位無しだと正しい計算結果が得られるようです。

しかしなぜ単位付きだとだめなのでしょうか?

それとD1の値を図面寸法(d1)を参照したい場合、単位を無しにする方法はあるのでしょうか?

すみませんが教えていただけますか?

0 件のいいね
メッセージ11/16

hideyuki_numata
Enthusiast
Enthusiast

ありがとうございます。

原因は単位系[mm]指定であったための様です。

しかしなぜ単位系指定はだめなのですか?

又図面寸値ID(d**)を単位無しに変換する事は出来るのでしょうか?

0 件のいいね
メッセージ12/16

jsugano_igears
Advocate
Advocate
解決済み

単位mmで割ってください

image.png

 

メッセージ13/16

hideyuki_numata
Enthusiast
Enthusiast

ありがとうございます。

なるほど、全てうまく行きました。

mmで割ると単位無しになるとは!!合点しました。

再度、ありがとうございました。

メッセージ14/16

jsugano_igears
Advocate
Advocate

こっちの回答が抜けていました。
>しかしなぜ単位付きだとだめなのでしょうか?

 

単位が付いているからダメなのではなく、式の右辺と左辺で単位が揃っていないからNGなのです。今回の場合一方が無次元なのに、もう一方には次元があります。具体的には:

if((d1%5) / mm;1;0;)は、もしd1%5=0なら、A1=1にする命令です。このときA1を無単位(無次元)にしたなら、d1%5も無単位(無次元)でなければなりません。

ところがd1はmm単位なので、これを無単位(無次元)にするために mmで割ります。

 

A1が単位mmを持つのであれば、d1*5もmm単位である必要があります。

このときd1=50 mm であれば、単位はそろっているので if((d1%5) 1;0;)です。

 

逆にA1がmm単位でd1が無単位の時は、mmを乗じる必要があります。というか、システムが勝手に追加してくれる。

if((d1%5) 1;0;) * mm

メッセージ15/16

hideyuki_numata
Enthusiast
Enthusiast

返答遅くなりました。

なるほど。次元、単位の概念が欠如してました。

そうすると角度(deg)の計算でも「/deg」で同様の計算できますか?

0 件のいいね
メッセージ16/16

jsugano_igears
Advocate
Advocate

>そうすると角度(deg)の計算でも「/deg」で同様の計算できますか?

それは、次のパラメータをご自身で入力してみることをお勧めします。

image.png

 

 

この辺りはリファレンス読んでもダイレクトに書いていないようなので、生成AIにまとめてもらいました。

 

【依頼文:Fusionの「パラメータ」における単位系の扱いについてまとめて】

 

Autodesk Fusion 360のパラメータ機能における単位系の扱いについて説明します。

Fusion 360のパラメータでは、単位系に関して以下のような特徴があります:

  1. デフォルト単位系: パラメータ値を入力する際、デフォルトではドキュメント設定で指定された単位系(mm、インチなど)が使用されます。
  2. 単位の明示的指定: パラメータ値に単位を明示的に追加することができます。例えば:
    10 mm
    0.5 in
    45 deg
  3. 単位変換: 異なる単位を指定した場合、Fusionは自動的に単位変換を行います。例えば、ドキュメントがmmで設定されていても、1 inと入力すれば25.4 mmとして正しく解釈されます。
  4. サポートされる単位:
    長さ: mm, cm, m, in, ft
    角度: deg, rad
    時間: s, min, hr
    質量: g, kg, lb
    力: N, lbf
    温度: C, F, K
  5. 式中の単位: 数式内で単位を使用する場合、式の評価後に最終的な単位変換が行われます。例えば 2 in + 10 mm は有効な式で、最終的にドキュメント単位に変換されます。
  6. 単位なしパラメータ: 単位なしの数値(無次元量)も使用できます。例えば繰り返し回数などに使用します。
  7. ユーザーパラメータとモデルパラメータ: ユーザーパラメータは手動で作成し、単位を明示的に設定できます。一方、モデルパラメータはFusionが自動的に作成し、デフォルトではドキュメント単位が使用されます。
  8. 単位の一貫性: 計算や制約式では単位の一貫性が保たれるよう自動的に変換されます。


Fusion 360のパラメータ機能では、このように柔軟な単位系の扱いが可能で、異なる単位系間の変換も自動的に行われるため、混合単位での設計作業がスムーズに行えます。

 

【こちらからの追加説明依頼】

とはいえ、次の場合はエラーになりますね
・有次元のパラメータに、無次元の式を与えた場合
・無次元のパラメータに、有次元の式を与えた場合
・ルートや二乗のように、次元が物理単位を表さない場合

 

 

その通りです。Fusion 360のパラメータ機能には、単位の一貫性に関して重要な制限があります。あなたが指摘された点は正確です:

  1. 有次元パラメータに無次元式を与えた場合
    例えば、長さのパラメータに単位のない数値を代入しようとすると、単位の不一致によりエラーになります。
    エラー例:長さパラメータ length に対して length = 5(単位なし)と設定
  2. 無次元パラメータに有次元式を与えた場合
    例えば、無次元のカウント値に長さの値を代入しようとするとエラーになります。
    エラー例:カウント数 count に対して count = 10 mm と設定
  3. 次元が物理単位を表さない操作の場合
    平方根や二乗など、物理的な単位の扱いが数学的に複雑になる場合に問題が発生します。
    エラー例:sqrt(10 mm²) や (5 mm)² のような操作
    これらの問題を回避するためには:
  • 常に適切な単位変換関数や無次元化を行う
  • 計算が必要な場合は、同じ次元の値同士で演算する
  • 複雑な単位計算が必要な場合は、一度数値部分だけを取り出して計算し、後で適切な単位を付加する

Fusion 360では、このような単位の一貫性を保つことが設計の正確性を確保するために重要です

ということです。

 

ご参考

以下のurlに平方根の式での問題について記載があります。

"パラメーターの数式の編集に失敗しました。Fusion 360で平方根の式を入力する場合、単位が評価されません。