captureExcelReadWrite02_thumbnail.PNG
GHC#_Excelで読み書きをする

以前にもExcelの読み書きについて書きましたが、その後社内で開発中のツールなどで応用してきた内容を簡略化してここに記します。 上の画像のデータの流れのイメージは観客席設計で利用する段床断面の計算ツールで、パラメーター入力をExcelで行い、 ボタンを押せばGetコンポーネントがExcelから必要なパラメーターを吸い出して、1階席から4階席までのパラメーターをそれぞれ出力し、その…

Jun 13, 2020
0
captureTextEntityComparison_thumbnail.PNG
GH C#_TextEntityの作成について、コンストラクタと静的メソッドでの違い

先日書いた記事の補足です。 GHC#_Text3dとTextEntityについて、描画とBakeした際のふるまいの比較 TextEntity Classのオブジェクトはコンストラクタで作成する方法と、静的メソッドで作成する2種類があります。 先日の記事で、静的メソッドで作成したTextEntityは位置合わせがGrasshopper上の描画に反映されず、寸法スタイルを修正する必要が…

May 23, 2020
0
captureText3dTextEntityComparison_thumbnail.PNG
GHC#_Text3dとTextEntityについて、描画とBakeした際のふるまいの比較

Text Entityについて別の記事で補足をしています。(2020/5/23追記) 表題の内容を確認してみました。コードは下の方にあります。ポイントとしては、 Text3dは、 ・簡易で良いが改行したテキストを扱う際、位置合わせ次第でDrawViewportWiresを使った描画にバグがある。 ・GH上の描画がおかしいだけで正常にBakeはできるけど、Rhino側の既定…

May 16, 2020
0
captureDrawAndBakeLinearDimension_thumbnail.PNG
GH C#_寸法線を描いてBakeする(Rhino6)

2年前に寸法線を描いてBakeする記事を書きましたが、Rhino6では書き方が変わっていますので、前回のコードを簡略化して、少し丁寧に解説しつつ新しく書き直します。以下にコードを掲載していますが、ここでは分解して説明します。 DrawDimensionsForRhino6GH(GitHub Gistに飛びます) まずは、usingについて、色の設定とDimensionStyl…

May 14, 2020
0
captureDrawMesh_thumbnail.PNG
Meshオブジェクトを描画する際に気を付けること

Rhinoceros上でもGH上でも、3万個のBoxMeshをそのまま描画するよりも一つにJoinした方が描画スピードが速くなります。 Grasshopperの標準機能では一つのMeshオブジェクトに単色をしか適用できませんが、それでも複数色使いたい場合は頂点カラーを使います。 頂点毎に紐付いている情報なので1オブジェクトの中で複数の色情報を持つことができて、1オブジェクトのMesh…

Apr 25, 2020
0
cap01_thumbnail.JPG
DrawViewportWires methodのふるまいについて

備忘録として記します。 GrasshopperのC#コンポーネント内でDrawViewportWiresを利用する際に、 複数のうまく動かない事象が出てきたのでこれを解決するまでの流れを整理しました。 まずC#コンポーネント内でジオメトリを描画するための簡単なコードをざっくり示します。 private void RunScript(double num, ref object A) …

Jul 11, 2019
0
cap0_thumbnail.PNG
GH C#_Divide Distance With List

Grasshopperに標準搭載されているDivide Distanceは単一距離で分割し続けるため、複数の距離のパラメーターを利用した分割はできません。 そこで任意の距離分割を可能にするためのコードを書いてみました。 標準のDivide Distanceは計算速度の遅さもネックで、3Dの計算を考えて球体と曲線の交点を繰り返し計算してそうなので、今回は2D利用限定で球体ではな…

Nov 12, 2018
0
Capture_DrawDimensions.PNG
GH C#_寸法線を描いてBakeする(Rhino5)

Rhino6では書き方が変わります。こちらを参照下さい。(追記:20/05/14) C#コンポーネントを使って寸法スタイルを定義し、寸法線を描いてBakeするまでの流れをざっくりですが整理してみました。 Draw Dimensions(GitHub Gistに飛びます) 直線寸法をC#で記述する時にはPoint2dを利用する事に注意してください。 C#コンポーネント内でオ…

Apr 16, 2018
0
cap_ghexcel_01.jpg
GH C#_Excelと連携する

◆事前の準備 GrasshopperのC#コンポーネントでExcelとの読み書きを行うためには、Microsoft.Office.Interop.Excel NameSpace(名前空間)を利用する必要がありますがそのままでは利用できません。 今回は利用するための準備を紹介します。 C#コンポーネントの右クリックメニューから、Manage Assemblies...を選びます。…

Apr 12, 2018
0
capBake.png
GH C#_簡単なBake Componentを作ってみる

既に色んなAddonで提供されているBake Componentについて簡単に考え方を整理してみました。例えば、適当なLineをC# Component内で作ってボタンを押す事でbakeされるコンポーネントを想定します。 因みに個人的によく使うBakeコンポーネントはElefrontです。 private void RunScript(bool bake) { Lin…

Feb 02, 2018
0
SetValue.PNG
GH C#_入力コンポーネントの初期値を設定する

Grasshopperにおいて、とあるツールを用意する際に必要な入力パラメーターの量が多くなるほどにその管理は面倒になってきます。 特に初心者でも利用できるものを想定した場合、入力の準備を利用者に任せるのは手間が掛かりミスが起きがちです。 そこでツールを用意した側が入力パラメーターをある程度誘導することができるC#のコードを簡単にまとめました。 Value Listの初期値を設定す…

Jan 26, 2018
0
GetDictionaryData.gif
GH C#_データ管理にDictionaryを利用する

データ管理にDictionaryを利用する(GitHub Gistに飛びます) C# Component間でデータをやり取りする際、独自に用意したクラスで作成したオブジェクトを受け渡すことは仕様上できません。 (Visual Studioによる独自のコンポーネント開発であれば可能です。) ツールを開発する際、一つのコンポーネントで全てを行う作り方もありますが、規模が大きくな…

Jan 17, 2018
0
MeshSweep_v1
Mesh Sweep Component for Grasshopper

Grasshopper上で動作するコンポーネントを作成してみました。 メッシュモデリングのススメ、というサブタイトルを付けても良いかもしれません。 ◆基本機能 直線を入力し、断面種別、位置合わせ、キャップの有無、サイズ等を入力する事でルーバーや形鋼のメッシュで作られたジオメトリを作成します。 ◆メリット 1.従来のSweepツールより同等の事をした時に圧倒的にスピードが速い。 例えば下図…

Feb 01, 2017
2
FilletSurface01
GrasshopperC# - Fillet Surface

Grasshopper上に用意されている標準機能ではFillet Surface、Blend Surface、Extend Surfaceなどが使えません。(数えればキリがありませんが・・・) ここではC#コンポーネントを利用したFillet Surfaceを紹介します。とても簡単です。 Blend Surfaceについては文末に補足を、Extend Surfaceについては別記事で書きます。 …

Jan 27, 2017
0
RayShooter
気軽に書けるGrasshopperC#//RayShooter

音線や光線の反射を解析する際にRhinocerosではBounce機能がその選択肢の一つです。 http://docs.mcneel.com/rhino/5/help/ja-jp/index.htm#commands/bounce.htm Grasshopper上では実装されていませんがBrepやCurveなどと同様にRhinocommonの中にはRay3dというクラスが存在し、その…

Sep 26, 2016
0
captureAboutArcOfCylinder01_01
Grasshopper Modeling Maniacs//円柱を斜めに切断した際の楕円について

円柱を斜めに切った時、その断面線は楕円になりますがGrasshopper上でその再現を行う時、注意しておく事があります。 上図はGrasshopper上で、 A・・・Brep(円柱)とBrep(斜平面)のIntersection B・・・Brep(円柱)とPlane(斜無限平面)のIntersection C・・・CircleをBrep(斜平面)にProjection …

Sep 13, 2016
0
captureAboutArc01_01
Grasshopper Modeling Maniacs//円弧が円弧でなくなる時

タイトルの付け方が難しかったのですが、Grasshopper(ver0.9.0076時点)上でモデリングする中で円弧が円弧でなくなる時が内部処理の問題なのかわかりませんが存在しています。 その再現をするために下図のようなものを用意しました。 任意の円弧をオフセットして端点を直線で繋いだ円弧状の閉じたポリラインです。 これを内側にオフセットしてダブルラインとし、下図の様にソリ…

Sep 06, 2016
3
flux_test02_01
Research Flux #4

この一ヶ月であまりFluxに触れる時間がない中で何とか触れたいと考えた結果、on the jobで利用する事にしました。 やった事はあまり難しい事はせず、Grasshopper → Flux → Excelという流れです。 ジオメトリは一切Fluxを介しません。数値のみの一方向に出力する形です。 結果から言うと、個人的にはとても好感触に感じました。 Grasshopperで作成した(…

Aug 22, 2016
0
flux_test01_00
Research Flux #3

少ない時間ではありますが、実際にfluxを利用して体験をし始めています。 まずは検証のためのモデルを作るにあたって、 1.サインカーブを利用して適当なボリュームを作り、fluxの検証を行う。 2.円弧や直線、垂直・水平・角度を付けた線データ、平面・曲面、線材を適当に作る。細かな所は気にしない(ここ大切)。 3.Grasshopperでジオメトリの芯となる情報を作成。 4.その芯情報…

Jun 20, 2016
0
flow-570x281
Research Flux #2

画像引用元 https://flux.io/ FluxはQuartz Projectのパートナーとして参画しているチームで、Quartz Projectについては建築資材の成分と環境・健康への影響について取りまとめ、オープン データベースとして共有しているプロジェクトで、今後Fluxと具体的にどう繋がっていくのかは確認できていませんが注目しておきたい所です。 Fluxの情報・…

May 16, 2016
0
captureSweep1_01
Grasshopper Modeling Maniacs//Sweepを掘り下げる

Grasshopper内でSweepを利用する機会は少なくないですが今回はSweep1について下記の様なシチュエーションの場合を想定して少し考えてみました。 1.折板を想定した少し細かいSection 2.円弧と直線が混ざった接線連続している複合的なRail 上画像を基に説明します。 1.円弧(青)と直線(緑)をjoinしてRailとし、断面(赤)をSectionとしてSweep1コン…

May 06, 2016
0
ASMO_Before
Grasshopper tips//閉じたメッシュの向きを確認する

仕事の中で他ソフトから書き出したdwg等の3DモデルをRhinocerosにインポートする際に予期しない閉じたメッシュ面の反転がランダムに起きる事が時々起きるのですが、他ソフト側では正常にモデル作業が成されているようで、どうもデータを書き出して読み込む間に何かしらの問題が発生している事が考えられました。 いくつか方法を考えたうちの一つとして、単純に内向きになった閉じたメッシュのみを反転でき…

Apr 13, 2016
0
fluxLogoOrigin
Research Flux #1

SuL Fluxでは去年後半から活発に動き始めたFluxについての勉強をしていきます。 https://flux.io/(公式サイト。上記ロゴ引用元。) Fluxは建築設計において利用される様々なソフトウェア同士の相互連携や協働の可能性を模索するwebベースのサービスで、Googleから独立したチームが開発を行っているようです。 https://flux.io/abou…

Apr 11, 2016
0
BretschneidersFormula_GH2
Grasshopper tips//Bretschneider's formula(ブレートシュナイダーの公式)を利用した四角形面の面積計算

Grasshopper内に置ける面積計算について、一つ前の記事で三角形面の面積を計算するヘロンの公式を利用する方法を検証してみましたが、四角形面の面積についてもブレートシュナイダーの公式を用いて計算する事を検証してみました。 ブレートシュナイダーの公式は四角形 ABCD がある時、辺の長さを AB = a, BC = b, CD = c, DA = d、周長の半分をsとし、その対角…

Feb 29, 2016
0