Grasshopper: 寸法線の数値を3桁カンマ区切りに変換する方法

Rhinoで作成した寸法線の数値は、小数点の表示桁数などは設定ができますが、「1,000」のように3桁区切りで「, (カンマ)」を入れる設定項目が標準ではありません(Rhino8現在)。

開発要望としては挙がっているので将来的な開発で実装される可能性はありますが、それまでの応急処置的な方法として、Grasshopper(Rhino8)を使って変換する方法をご紹介します。

アルゴリズム概要

以下が、Grasshopperアルゴリズムの概要です。
Rhino8のRhinoタブのコンポーネントを使用します。

アルゴリズム解説

①モデル内のオブジェクトから寸法オブジェクト取得

  • [Query Model Objects]でモデルに含まれるすべてのオブジェクトを取得。
  • その中から「Dimension」を含むオブジェクトだけを[Match Text]+[Cull Pettern]で抽出。
  • 文字列の検索は「* (アスタリスク)」を用いることで部分一致検索ができます。

②寸法オブジェクトの寸法値を取得し、フォーマットを書き換え

  • [Linear Dimension]で寸法プロパティを取得します。
  • [Number]に接続することで数値に変換できます。
  • [Format]を使って任意の表示形式に変換します。変換例は以下の通り。
    •  {0:0,0}        0の端子に入力した値を3桁カンマ区切りに変換し整数で表示
    •  {0:0,0.00} 0の端子に入力した値を3桁カンマ区切りに変換し有効小数2桁で表示

③変換結果をRhinoに反映

  • [Annotation Text Overrides]で、②で変換したテキストを寸法値に上書きした寸法オブジェクトを作成します。
  • [Content Cache]のPush機能でRhinoに反映します。 [Content Cache]機能の詳細はこちら
  • このとき、元の寸法オブジェクトとは別で新規の寸法オブジェクトが生成されるので④の方法で非表示にします。

④元の寸法オブジェクトを非表示にする

  • [Visiblity Attributes]のH端子をTrueにして非表示属性を用意します。
  • [Model Object]のV端子に接続し、表示属性を上書きします。
    (右クリックのHide unuse parametersで使用しない端子は非表示にしています)
  • [Content Cache]のPush機能でRhinoに同時に反映されるようにします。

注意点

  • この方法は、元の寸法値からフォーマット指定したテキストを自動生成してそれを割り当てた寸法オブジェクトを別途作成しています。元の寸法オブジェクトは非表示になっているのでご注意ください。
  • フォーマット変換後の寸法をPushすると、以降その寸法もQueryに計上されるのでそれを除外する作業、あるいは自動化処理が必要です。
  • Linear Dimension以外の半径や角度などの値については別途実装が必要です。

図面出力直前などのタイミングで実行して図面出力しその後Undoで元に戻す、
元の寸法や変換後の寸法オブジェクトは特定のレイヤに移行する、
など運用上の工夫も合わせて検討いただくと良いかもしれません。