Skip to content

Commit

Permalink
Adding developer.rhino3d.com content
Browse files Browse the repository at this point in the history
  • Loading branch information
golsby committed Aug 20, 2015
1 parent 8f42187 commit 62c0be9
Show file tree
Hide file tree
Showing 353 changed files with 28,737 additions and 2 deletions.
1 change: 1 addition & 0 deletions CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
developer.rhino3d.com
3 changes: 3 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
source 'https://rubygems.org'

gem 'github-pages'
95 changes: 93 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,93 @@
# help-docs
McNeel Help documentation
# developer-rhino3d-com

This repo contains the contents of http://developer.rhino3d.com

The site is hosted on [GitHub Pages](https://pages.github.com/) which uses a static site generator called [Jekyll](http://jekyllrb.com/).


## Getting Started

These instructions cover running this project locally on both Mac OS X and Windows so that you can preview changes before pushing them to GitHub Pages.

First, navigate somewhere safe and clone the repository.

```
git clone https://github.com/mcneel/developer-rhino3d-com.git
```

If you are not comfortable using git on the command-line, then try [GitHub for Mac](https://mac.github.com/) and [GitHub for Windows](https://windows.github.com/). There's also the [git cheat sheet](https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf).

Notice that **'gh-pages'** is the only branch. Everything committed to this branch is automatically published when pushed to GitHub.


![Mac Instructions](https://github.com/mcneel/developer-rhino3d-com/blob/gh-pages/images/mac_logo_small.png)
### Mac OS X

Mac OS X Yosemite ships with Ruby and RubyGems, however it's [not wise](https://github.com/mcneel/developer-rhino3d-com/pull/2#issuecomment-112601698) to mess around with this installation. Instead, install your own Ruby using [Homebrew](http://brew.sh).

#### Install Homebrew and Ruby

As per the Homebrew website, install via the following one-liner (which will prompt you to install the Xcode Command Line Tools, if you don't already have them).

```
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

Then we can brew Ruby.

```
brew install ruby
```

Now close and reopen the Terminal window to make sure the system knows about the new version of Ruby.

#### Install Jekyll

The [GitHub Pages Ruby Gem](https://github.com/github/pages-gem) provides the same version of Jekyll as exists on the GitHub Pages servers. This ensures we aren't accidentally using features that have either been deprecated or simply don't exist yet!

```
gem install github-pages
```

You can now serve your local copy of this site by running the following commands, remembering to replace `CLONE_DIRECTORY` with the location to which you checked out this repository.

```
cd CLONE_DIRECTORY
jekyll serve
```

Navigate to http://localhost:4000 in your browser to view the site.


![Windows Instructions](https://github.com/mcneel/developer-rhino3d-com/blob/gh-pages/images/win_logo_small.png)
### Windows

While **[Jekyll](http://jekyllrb.com/docs/windows/)** is not officially supported in Windows, it does work. These instructions are based on the official _unofficial_ guide to [installing Jekyll on Windows](http://jekyll-windows.juthilo.com/).

#### Install Ruby and Ruby DevKit

Go to http://rubyinstaller.org/downloads/ and download the installer for Ruby 2.1.X that matches your system architecture (x86/x64).

At the "Installation Destination and Optional Tasks" dialog, make sure to check the **"Add Ruby executable to your PATH"** box.

Then, from the same page download the Development Kit that corresponds to your Ruby installation. Jekyll won't be fully functional without this.

Run the self extracting archive, entering the path `C:\RubyDevKit` when prompted.

To initialise and install the DevKit, open up a command prompt and roll up your sleeves...

```
cd C:\RubyDevKit
ruby dk.rb init
ruby dk.rb install
```

#### Install Jekyll and serve

As with OS X, install the GitHub Pages Ruby Gem, navigate to the clone directory and run jekyll.

```
gem install github-pages
cd CLONE_DIRECTORY
jekyll serve
```
47 changes: 47 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Site settings
title: Rhino Developer Docs
# email: [email protected]
# description: > # this means to ignore newlines until "baseurl:"
# Write an awesome description for your new site here. You can edit this
# line in _config.yml. It will appear in your document head meta (for
# Google search results) and in your feed.xml site description.
baseurl: "" # the subpath of your site, e.g. /blog/
url: "http://developer.rhino3d.com" # the base hostname & protocol for your site
editMeOnGhBaseUrl: "mcneel/developer-rhino3d-com"
# twitter_username: ""
github_username: mcneel

# Build settings
#markdown: redcarpet

# If we decide that we want to use kramdown over redcarpet, syntax
# highlighting is performed by turning on the following options and
# including/running highlight.js (https://highlightjs.org/) at the
# top of pages that need it (probably just add to head.html)
markdown: kramdown
kramdown:
input: GFM

#port: 4444

safe: true

collections:
- faqs
- guide_topics
- guide_advanced_topics
- api
- glossary
- cheat_sheet_items
- samples

collections:
guide_topics:
output: true
permalink: /guides/:path/
api:
output: true
permalink: /api/:path/
samples:
output: true
permalink: /samples/:path/
18 changes: 18 additions & 0 deletions _guide_topics/cpp/creating_a_skin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
layout: toc-guide-page
title: Creating a Skin
author: [email protected]
categories: ['Advanced']
platforms: ['Windows']
apis: ['RAP', 'C/C++']
languages: ['C/C++']
keywords: ['skin', 'RAP', 'rhino']
TODO: 1
origin: http://wiki.mcneel.com/developer/sdksamples/skin
order: 4
---

# Creating a Skin
{: .toc-title }

TODO
18 changes: 18 additions & 0 deletions _guide_topics/cpp/installing_tools_windows.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
layout: toc-guide-page
title: Installing Tools (Windows)
author: [email protected]
categories: ['GettingStarted']
platforms: ['Windows']
apis: ['C/C++']
languages: ['C/C++']
keywords: ['c', 'C/C++', 'plugin']
TODO: 1
origin: https://wiki.mcneel.com/developer/cplusplusplugins
order: 2
---

# Installing Tools (Windows)
{: .toc-title }

TODO
20 changes: 20 additions & 0 deletions _guide_topics/cpp/what_is_the_cpp_sdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
layout: toc-guide-page
title: What is the C/C++ SDK?
author: [email protected]
categories: ['Overview']
platforms: ['Windows']
apis: ['C/C++']
languages: ['C/C++']
keywords: ['c', 'C/C++', 'plugin']
TODO: 1
origin: https://wiki.mcneel.com/developer/cplusplusplugins
order: 1
---

# What is the C/C++ SDK?
{: .toc-title }

TODO

Also port from [https://wiki.mcneel.com/developer/sdksamples/faq](https://wiki.mcneel.com/developer/sdksamples/faq)
20 changes: 20 additions & 0 deletions _guide_topics/cpp/your_first_plugin_windows.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
layout: toc-guide-page
title: Creating your first C/C++ plugin for Rhino
author: [email protected]
categories: ['GettingStarted']
platforms: ['Windows']
apis: ['C/C++']
languages: ['C/C++']
keywords: ['c', 'C/C++', 'plugin']
TODO: 1
origin: https://wiki.mcneel.com/developer/sdksamples/rhino5pluginwiz
order: 3
---

# Your First Plugin (Windows)
{: .toc-title }

TODO

Also port from: [https://wiki.mcneel.com/developer/sdksamples/addcommand](https://wiki.mcneel.com/developer/sdksamples/addcommand)
140 changes: 140 additions & 0 deletions _guide_topics/general/rhino_developer_prerequisites.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
---
layout: toc-guide-page
title: Developer Prerequisites
author: [email protected]
categories: ['General']
platforms: ['Cross-Platform']
apis: ['General']
languages: ['All']
keywords: ['developer', 'rhino']
TODO: 1
origin: http://wiki.mcneel.com/developer/learningresources
order: 1
---


# Developer Prerequisites
{: .toc-title }

There are a number of prerequisites required to do Rhino development. Broadly speaking, these can be divided into three categories, ranked in ascending order of difficulty:

1. [Hardware prerequisites](#hardware)
1. [Software prerequisites](#software)
1. [Programming Knowledge](#programming-knowledge)

## Hardware
{: .toc-header }

If you are reading this guide, you likely already have a computer that can run Rhino. (If not, Rhino has some minimum [System Requirements](http://www.rhino3d.com/system_requirements/) that you should review before acquiring any hardware). Generally speaking, any computer that can run Rhino *ought* to be able to run the developer tools outlined in the [Software](#software) section.

If you are a Windows user and wish to develop plugins for Rhino for Mac, you will need an Apple Mac computer. Conversely, if you are an OS X user and you wish to develop for Rhino for Windows, you will need a computer that can run Rhino for Windows (however, virtual machines running Windows under OS X can potentially work just fine).


## Software
{: .toc-header }

Depending on what you want to do, the software prerequisites vary. However, in general, you will need:

- [Rhinoceros](http://www.rhino3d.com/download)
- A code editor. There are many options...here are a few:
- [Visual Studio](https://www.visualstudio.com): Microsoft's flagship IDE.
- [Xamarin Studio](http://xamarin.com/studio): Xamarin's Cross-Platform C# IDE.
- [Atom](https://atom.io/): A Cross-Platform Extensible Text Editor.

See the [SDK-specific guides]({{ site.baseurl }}/guides/) for the software prerequisites...normally found in the *"Installing Tools"* guides.

## Programming Knowledge
{: .toc-header }

Acquiring programming knowledge is the most labor intensive prerequisite. However, learning to program - even trying out a new language - is fun and enriching. Learning to program using Rhino is a great way to begin...

#### Learning C# .NET
{: .toc-subheader }

If you wish to write plugins with RhinoCommon, you will need to understand a .NET compatible programming language like C# (or VB.NET). We recommend [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) (C Sharp) because it is modern, safe, and easy to learn - and you can develop in C# on both Windows and OS X.

*Watch*...

- [Beginning C# Programming](http://shop.oreilly.com/product/0636920036036.do) By Eric Lippert - Published by O'Reilly Media
- [C# Fundamentals for Absolute Beginners](https://www.microsoftvirtualacademy.com/en-US/training-courses/c-fundamentals-for-absolute-beginners-8295) on Microsoft's Virtual Academy
- [C# Essential Training](http://www.lynda.com/C-tutorials/C-Essential-Training/188207-2.html) with David Gassner on Lynda.com

*Read*...

- [Programming C# 5.0](http://shop.oreilly.com/product/0636920024064.do) By Ian Griffiths - Published by O'Reilly Media
- [C# 5.0 in a Nutshell](http://shop.oreilly.com/product/0636920023951.do) By Joseph Albahari, Ben Albahari - Published by O'Reilly Media

*Do*...

- [Check out samples]({{ site.baseurl }}/samples/#rhinocommon) on this site
- [Ask for help on Discourse](http://discourse.mcneel.com/c/rhino-developer)

#### Learning C/C++
{: .toc-subheader }

To write plugins for Rhino using the C/C++ SDK, you first need to learn the [C++ programing language](https://en.wikipedia.org/wiki/C%2B%2B) itself. C/C++ is sometimes considered an "advanced" programming language.

*Watch*...

- [C++: A General Purpose Language](https://www.microsoftvirtualacademy.com/en-us/training-courses/c-a-general-purpose-language-and-library-jump-start-8251) on Microsoft Virtual Academy
- [C++ Essential Training](http://www.lynda.com/C-tutorials/C-Essential-Training/182674-2.html) with Bill Weinmann on Lynda.com

*Read*...

- [The C Programming Language](https://en.wikipedia.org/wiki/The_C_Programming_Language) by Ian Kernighan and Dennis Ritchie
- [Practical C++ Programming](http://shop.oreilly.com/product/9780596004194.do) by Steve Oualline - Published by O'Reilly Media
- [C++ Primer Plus](http://www.amazon.com/Primer-Plus-Edition-Developers-Library/dp/0321776402) by Stephen Prata

*Do*...

- [Check out samples]({{ site.baseurl }}/samples/#cc) on this site
- [Ask for help on Discourse](http://discourse.mcneel.com/c/rhino-developer)

#### Learning Python
{: .toc-subheader }

[Python](https://en.wikipedia.org/wiki/Python_(programming_language)) is a fantastic first language and an amazingly flexible additional language to add to your toolkit.

*Watch*...

- [Google's Python Class](https://developers.google.com/edu/python/) by Google for Education
- [Up and Running with Python](http://www.lynda.com/Python-tutorials/Up-Running-Python/122467-2.html) with Joe Marini on Lynda.com


*Read*...

- [RhinoPython Primer](http://www.rhino3d.com/download/IronPython/5.0/RhinoPython101) by Skylar Tibbits, Arthur van der Harten, Steve Baer, and David Rutten
- [The Python Tutorial](https://docs.python.org/2/tutorial/index.html) by the Python Software Foundation
- [Learn Python the Hard Way](http://learnpythonthehardway.org/book/) by Zed A. Shaw - despite the title, this is a beginner's book
- [Automate The Boring Stuff With Python](https://automatetheboringstuff.com/) by Al Sweigart


*Do*...

- [Check out samples]({{ site.baseurl }}/samples/#rhinopython) on this site
- [Ask for help on Discourse](http://discourse.mcneel.com/c/scripting)

#### Learning RhinoScript
{: .toc-subheader }

RhinoScript is a scripting tool based on Microsoft's VBScript language. RhinoScript runs in Rhino for Windows.

*Read*...

- [RhinoScript Primer](http://www.rhino3d.com/download/rhino/5.0/rhinoscript101) by David Rutten
- [Microsoft VBScript User's Guide and Language Reference](https://msdn.microsoft.com/en-us/library/t0aew7h6(VS.85).aspx)

*Do*...

- [Check out samples]({{ site.baseurl }}/samples/#rhinoscript) on this site
- [Ask for help on Discourse](http://discourse.mcneel.com/c/scripting)

---

## Related topics
{: .toc-header }

- [What is a Rhino Plugin?]({{ site.baseurl }}/guides/general/what_is_a_rhino_plugin/)
- <a href="https://en.wikipedia.org/wiki/C_Sharp_(programming_language">C Sharp on Wikipedia</a>
- [C++ on Wikipedia](https://en.wikipedia.org/wiki/C%2B%2B)
- [Python on Wikipedia](https://en.wikipedia.org/wiki/Python_(programming_language))
Loading

0 comments on commit 62c0be9

Please sign in to comment.