Nástroje pro vývojáře

Rhinoceros je víc než jen 3D modelář. Díky bohatému ekosystému stovek zásuvných modulů a otevřené sadě vývojových nástrojů se Rhinoceros stal mimořádně oblíbenou 3D vývojovou platformou pro všechny modeláře i zkušené programátory, kteří chtějí posouvat hranice designu, konstrukce a analýzy.

 

Rhino je nejrobustnější 3D vývojová platforma na světě pro tvorbu nástrojů pro modelování, renderování, analýzu a výrobu v nejrůznějších oborech.

Rhino je nejrobustnější 3D vývojová platforma

 

 

Co vám tedy jako vývojářům může Rhino nabídnout?
 

 

 

 

 

 

 

Přehledná tabulka možností programování v Rhinu

    Co

Kde Jak Proč
    RhinoCommon  WindowsApple macOS       C#Visual BasicPython prostřednictvím IronPythonu       Tvorba zásuvných modulů pro Rhino a komponent pto Grasshopper
    Rhino.Python WindowsApple macOS Python prostřednictvím IronPythonu Skriptování napříč platformami
    openNURBS WindowsApple macOS C# Čtení a zápis souborů 3dm
    RhinoScript Windows Skriptování v Rhinu pro Windows
    C/C++ Windows Tvorba zásuvných modulů v Rhinu pro Windows
    Grasshopper WindowsApple macOS C#Visual BasicPython prostřednictvím IronPythonu Tvorba komponent pro Grasshopper

 

Stále v tom nemáte jasno? Projděte si příručky. Ptejte se ostatních uživatelů i autorů Rhina v diskusní skupině. Podívejte se na časté dotazy. Zeptejte se vývojářů.

 


 

Programování v Pythonu pro Rhino

 

 Programování v Pythonu pro Rhino

Co je Python?
Python je moderní programovací jazyk, někdy se mu také říká skriptovací jazyk. Je snazší se jej naučit než jiné kompilované jazyky, jako je C#, VB nebo C/C++. Přesto je poměrně výkonný.

Jazyk Python je interpretovaný, což znamená, že se provádí po jednotlivých řádcích. Díky tomu je tok programu snadno pochopitelný. Také je sémanticky dynamický, což umožňuje, aby syntaxe byla méně restriktivní a méně formální při používání deklarací a typů proměnných. Tyto vlastnosti přispívají ke snadnému používání jazyka Python pro základní programovací úlohy.

Python se vám může hodit, pokud potřebujete:

  • automatizovat opakující se úlohy v Rhinu mnohem rychleji, než byste je vykonali ručně.
  • provádět úlohy v Rhinu nebo Grasshopperu, ke kterým neexistují standardní příkazy v Rhinu nebo komponenty v Grasshopperu
  • generovat geometrii pomocí algoritmů.
  • ... a mnoho a mnoho dalších věcí. Koneckonců je to programovací jazyk.

 

Proč Python?

Proč byste měli vůbec používat Python? Python je zamýšlený jako jazyk, který se snadno zapisuje i čte. Python také běží v Rhinu pro Windows i Mac. Protože je skriptování v Pythonu pro Rhino dostupné na obou platformách, mohou stejné skripty v Pythonu běžet v obou verzích Rhina! Jazyk Python také můžete spouštět z příslušné komponenty uvnitř Grasshopperu.

Co je však důležitější: Python je velmi populární i mimo Rhino! Mnohé z toho, co se o Pythonu naučíte, lze použít v mnoha dalších oblastech.

Rhino již dlouho obsahuje skriptovací jazyk RhinoScript, proč potřebujeme další? RhinoScript je velmi snadno použitelný skriptovací jazyk v systému Windows. Rhinoscript budeme i nadále podporovat. RhinoScript je však založen na trochu starší technologii, takže je méně flexibilní než modernější Python. RhinoScript nelze používat na platformě Mac. Také bohužel není podporován komunitou na stejné úrovni jako Python.

 

Jakou verzi Pythonu používá Rhino?

Rhino 7 používá Python verze 2.7. Přesněji řečeno, Rhino používá IronPython, který spojuje jazyk Python a .NET framework od společnosti Microsoft. Rhino 8 již využívá Python 3.

 

Funkce ve stylu RhinoScriptu

Jednou z klíčových vlastností RhinoScriptu je rozsáhlá knihovna specifických funkcí Rhina, které lze volat ze skriptů. Naše implementace v Pythonu obsahuje sadu podobných funkcí, které lze importovat a používat v libovolném skriptu Pythonu pro Rhino. Tato sada funkcí je známá jako balíček rhinoscriptsyntax.

Porovnejme si skripty, které umožňují uživateli vybrat dva body a přidat do Rhina úsečku. Takhle by to vypadalo v RhinoScriptu:


Dim arrStart, arrEnd
arrStart = Rhino.GetPoint("Zacatek usecky")
If IsArray(arrStart) Then
  arrEnd = Rhino.GetPoint("Konec usecky")
  If IsArray(arrEnd) Then
    Rhino.AddLine arrStart, arrEnd
  End If
End If

...a takhle v Pythonu:


import rhinoscriptsyntax as rs
 
start = rs.GetPoint("Zacatek usecky")
if start:
  end = rs.GetPoint("Konec usecky")
  if end: rs.AddLine(start,end)

 

Ano, kódy jsou odlišné... ale zároveň natolik podobné, že byste měli být schopni zjistit, co se děje v Pythonu, pokud jste napsali RhinoScript. Rhinoscriptsyntax také obsahuje mnoho pomocných funkcí, které usnadňují programování v Pythonu.

 

Jak můžu Python v Rhinu využít?

Python lze v Rhinu využít mnoha různými způsoby. Python lze použít k:

  • vytváření interaktivních skriptů
  • tvorbě nových vlastních příkazů
  • vývoji nových zásuvných modulů
  • čtení a zápisu vlastních formátů souborů
  • interakci s cloudovými aplikacemi
  • vytváření propojení s jinými aplikacemi v reálném čase
  • tvorbě vlastních komponent v Grasshopperu
  • ukládání a zobrazování specifických informací o projektu nad rámec toho, co umí základní Rhino

 

Grasshopper

Python lze v Grasshopperu použít také k vytváření vlastních komponent v uvnitř větší definice Grasshopperu. Komponenta GhPython obsahuje editor skriptů Pythonu a přímý přístup k funkcím Pythonu, Rhina a Grasshopperu. Pomocí GhPythonu můžete vytvářet a manipulovat s daty zákazníků v rámci Grasshopperu. Další informace do začátku najdete v tomto průvodci.

 

RhinoCommon

Rhinocommon je nízkoúrovňový výkonný SDK (Software development kit) pro všechny platformy Rhina, který používají především zkušenější vývojáři. Skripty v Python mohou používat Rhinocommon, aby měly plný přístup k frameworku .NET včetně přístupu k SDK RhinoCommon. Průvodce přístupem k RhinoCommon ze skriptů Pythonu naleznete na stránce Using RhinoCommon from Python.

 


 

Grasshopper

Grasshopper

Možná to zní divně, ale v Rhinu můžete "klasicky" programovat i uvnitř násrtroje pro vizuální programování. Konkrétně můžete v Grasshopperu integrovat programy napsané v C#, VBScriptu a Pythonu. Skriptovací komponenty fungují jako integrální součást Grasshopperu. Mohou získávat vstupy a vytvářet výstupy z jiných standardních komponent GH. Lze je použít k vytvoření specializovaných funkcí, které otevírají obrovský potenciál nad rámec výchozích komponent Grasshopperu.

Ale je tu ještě jeden zajímavý moment... komponenta GhPython podporuje funkce rhinoscriptsyntax. Funkce rhinoscriptsyntax lze nastavit tak, aby uvnitř Grasshopperu generovaly geometrii, která se nenachází v dokumentu Rhina.

Grasshopper podporuje několik .NET skriptovacích jazyků, například VB a C# K dispozici je také komponenta Python.

Komponenta GhPython přináší:

  • syntaxi Rhinoscriptu do Grasshopperu
  • paralelu skriptovacích komponent C# a Vb.Net v jazyce Python.
  • dynamické uživatelské rozhraní s možností kontroly počtu vstupů a výstupů
  • možnost odkazovat na knihovny .NET a obrovské množství balíčků Pythonu
  • integrace s editorem Pythonu, který je součástí Rhina

Na následujícím obrázku vidíte otevřený editor Pythonu v komponentě GHPython:

Editor Pythonu v Grasshopperu

 


RhinoCommon

RhinoCommon je multiplatformní zásuvný modul SDK (Software development kit) pro rozhraní .NET, který je k dispozici pro:

  • Rhino pro Windows
  • Rhino pro Mac
  • skriptování v Rhino.Pythonu
  • Grasshopper

Termínem common (česky společný) je myšleno to, že SDK lze používat na různých platformách Rhina. Zásuvný modul vytvořený pomocí RhinoCommon by měl fungovat na platformách Windows i Mac beze změn...

 

RhinoCommon je multiplatformní zásuvný modul SDK

 

Anatomie RhinoCommon

RhinoCommon se skládá z následujících částí. Tyto soubory jsou součástí Rhina pro Windows a Mac:

  • RhinoCommon.dll - čistá knihovna DLL .NET, na kterou se mohou zásuvné moduly odkazovat a používat ji pro práci s Rhinem.
  • RhinoCommon.xml - soubor XML, který obsahuje komentáře k dokumentaci SDK specifické pro RhinoCommon.dll. Programovací vývojová prostředí, jako je Visual Studio a MonoDevelop, používají tento soubor XML k zobrazení nápověd a dalších užitečných informací během psaní kódu.
  • rhcommon_c.dll a monomanager.rhp jsou sdílené knihovny C++ zkompilované pro konkrétní cílové platformy (Win64 a MacOS). Tyto knihovny jsou používány systémem RhinoCommon, ale vývojáři zásuvných modulů by k nim nikdy neměli mít přímý přístup.

RhinoCommon se v pod macOS spouští prostřednictvím vestavěného frameworku Mono.

 

Rhino používá RhinoCommon

Všechny zásuvné moduly .NET dodávané s Rhinem pro Windows i Mac, včetně interpretu Pythonu, odkazují na RhinoCommon.

V roce 2011 byl Grasshopper přepsán s využitím RhinoCommon. Jednalo se o velký projekt, jehož dokončení zabralo nějaký čas, ale tento projekt v důsledku přinesl zlepšení výkonu a lepší správu paměti. To je také krok k tomu, aby Grasshopper běžel v Rhinu pro Mac.

Skriptovací engine Pythonu je zcela založen na RhinoCommon. Všechny skripty v jazyce Python používají pro práci s Rhinem RhinoCommon. Obvykle platí, že pokud je obtížné napsat skript v jazyce Python pomocí rozhraní API RhinoCommon, je třeba opravit SDK RhinoCommon.

Podrobnou příručku pro RhinoCommon najdete zde.

 


 

RhinoScript a VBScript

RhinoScript a VBScript

 

Windows Pouze pro Windows

 

VBScript (zkratka pro Visual Basic Scripting Edition) je snadno použitelný skriptovací jazyk vyvinutý společností Microsoft, který umožňuje autorům vytvářet výkonné nástroje pomocí podmnožiny jazyka Visual Basic. VBScript je implementován jako rychlý, přenosný interpret pro webové prohlížeče a aplikace, které používají ovládací prvky ActiveX a servery OLE Automation.

Pokud již znáte jazyk Visual Basic nebo Visual Basic for Applications (VBA), bude vám VBScript povědomý. I když jazyk Visual Basic neznáte, nemělo by vám trvat dlouho, než se v něm zorientujete. VBScript je poměrně snadný jazyk na naučení a používání.

RhinoScript je skriptovací nástroj založený na jazyce VBScript společnosti Microsoft. Pomocí jazyka RhinoScript můžete rychle přidávat do Rhina nové funkce nebo můžete automatizovat opakující se úlohy. Kromě podpory jazyka VBScript funguje RhinoScript také jako automatizační OLE server, který zpřístupňuje vnitřní fungování Rhina pro automatizaci. Rozsáhlou příručku s krásnými ilustracemi Davida Ruttena (autora Grasshopperu), které vidíte výše, najdete na této stránce a také zde.

 


 

Food4Rhino - rozsáhlá knihovna obsahu pro Rhino a Grasshopper

 

Food4Rhino - rozsáhlá knihovna obsahu pro Rhino a Grasshopper

 

Food4Rhino je webová stránka společnosti McNeel, která funguje jako služba komunitě kolem Rhina Uživatelé zde mohou najít nejnovější zásuvné moduly pro Rhino, doplňky pro Grasshopper, materiály, textury, pozadí, skripty a mnoho dalšího. Mohou zde také navázat kontakt s vývojáři aplikací a také sdílet své vlastní aplikace s ostatními uživateli. Většina aplikací, které zde najdete, jsou zcela zdarma. S více než 1000 dostupnými pluginy a přes 200 000 staženími měsíčně (celkem více než 5 milionů stažení) je food4Rhino nejrozsáhlejším webem s doplňky pro Rhinoceros a Grasshopper.

Zásuvné moduly můžete vyhledávat nebo můžete pohodlně procházet jednotlivé obory, kategorie a další parametry:

Food4Rhino

 


 

Správce balíčků

Správce balíčků

Kvůli vyhledávání a instalaci zásuvných modulů již nemusíte opouštět Rhino: pomocí Správce balíčků můžete vyhledávat, instalovat a spravovat zásuvné moduly a komponenty Grasshopperu přímo v prostředí Rhina. Vývojářům Správce balíčků zjednodušuje publikování a distribuci zásuvných modulů.

 

 


 

Rhino.Inside

Rhino.Inside

 

Rhino.Inside® je opensource projekt, který umožňuje spouštět Rhino a Grasshopper v jiných 64bitových aplikacích pod Windows, jako je Revit®, AutoCAD®, Unity® a další.

Nyní je možné:

  • spustit Rhino a Grasshopper jako doplněk k jiným aplikacím
  • vytvářet nativní objekty v hostitelské aplikaci pomocí Rhina a Grasshopperu
  • řídit hostitelskou aplikaci pomocí definic Grasshopperu
  • používat rozhraní API hostitelské aplikace v Grasshopperu a v Rhinu
  • používat rozhraní API Rhina v zásuvných modulech hostitele