#趣旨
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);
}