algorithmic modeling for Rhino
Is it possible? If so, how?
It is indeed.
You simply need to add a reference to the module directory and use the import statement (like with native modules). You can do this inside the script itself, or, using the standard Python script editor:
1) In Rhino type in the command "EditPythonScript".
2) In this Python editor go Tools -> Options -> Files.
3) Here you will see an overview of the directories which are currently referenced. Now either:
4) Add a reference to your module directory, or:
5) Move your module into one the existing directories.
You may need to restart Rhino after setting up the directories. After that you simply import the module and run the script to see if it worked. The name to import is usually the name of the top-level directory of the module folder structure, or, if it is just a single .py file, the name of this file.
Hope that helps,
Ps. Not all modules are supported by IronPython by the way.
yeah Anders, that's possible indeed.
just managed to import and use numpy in rhinopython, following your instruction. and i also referred to this link in python.rhino3d.com
I mainly develop in Python straight in the GHPython editor, so I'm afraid I can't really help. That said I'm thinking it should be fairly straightforward to import a .dll assembly as long as its path is read by which ever environment/the script you're developing. Perhaps David or Giulio could suggest some approaches?
I think I didn't read the question right. Are you talking about adding dependencies inside VS?
For completeness, I am adding the answer in case someone looks at this thread (2 years later). For GhPython.
1. You want to add a reference to an assembly (.dll):
You can you the clr module.
There are a few other overloads. I suggest to stick to this one. You can see a couple of ways to obtain paths here. At best, save the .dll file aside the .gh definition (user-level), or in a system-level directory (machine installation).
2. You want to add an import to a module (.py):
You can use the sys module.
my_mod_path = r'path\to\mymodule.py'
if not my_mod_path in sys.path: sys.path.append(my_mod_path)
These two methods are reliable, consistent and will make working with modules Pythonic and fun!
for Robert McNeel & Associates
from __future__ import thank_you