0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

grasshopper C#コンポーネントクイックリファレンス

Last updated at Posted at 2020-05-05

#趣旨
grasshopper上でC#コンポーネントを書く際のクイックリファレンス
個人の備忘録を兼ねるのでやれば増える予定。

公式ドキュメントへのリンク
https://developer.rhino3d.com

#out出力
outに文字や数字を出力する場合

//文字列の場合
Print("xxx");

///文字列以外
Print(xxx.ToString());

配列の中身を出力するメソッド

public double[] ArrayPrint(double[] n)
{
  double[] result = new double[n.Length];
  Print("[");
  for (int i = 0; i < n.Length; i++)
  {
    Print(n[i].ToString());
  }
  Print("]");
  return result;
}

#GH_path (グラフトとかする際のパス)

GH_path(n)
//nがそのままpathになります。

GH_path(0)
// → {0}
GH_path(0,0)
// → {0,0} 

直接"{0}"とかで指定することはできません。

#DateTree(多次元配列)

//ブランチ 
DataTree.Branch(GH_path);
//GH_pathで指定したlistを抽出する

//DataTreeに要素を追加
DataTree.Add(x, GH_path);
// x:追加したいオブジェクト

// listをまとめて追加はできないのでforeachで入れる
foreach(class item in List)
{
   xxx.Add(x, GH_path);
}

#Polyline
公式document Polyline Curve
使い方は難しくないので割愛します。
ただ注意点として、Polylineの配列の中をRefObjectに入れたい場合、Polylineになっていない要素(Pointが2つAddなりをされていない場合)が含まれている場合、配列全てが参照されずにEmptyになります。
その場合以下のようなエラーが出ます。

Script Exception: オブジェクト参照がオブジェクト インスタンスに設定されていません

対策として以下のように要素数で1以下のものを切ってしまうといいかもしれません

if(Crv.Count() > 1)
{
  CrvList.Add(Crv);
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?