Rhino(犀牛)中国技术支持与推广中心

标题: GhPython开始支持以函数调用GH电池及多线程 [打印本页]

作者: Jorin    时间: 2013-12-14 10:31
标题: GhPython开始支持以函数调用GH电池及多线程
本帖最后由 Jorin 于 2013-12-14 10:53 编辑

本周开放下载的 ghPython 0.6.0.3 增加了一些激动人心的新功能:

最主要的新增功能有两个:

1.可以直接以代码的形式调用GH的电池函数。这样你就可以在代码中以函数的形式访问自己熟悉的电池了。

调用方法如下:
# 导入GH组件(电池)库
import ghpythonlib.components as ghcomp
# 以输入点为参数访问 Voronoi 组件
curves = ghcomp.Voronoi(points)
# 从 Voronoi 组件输出的曲线作为 Area 组件的输入参数访问 Area 组件
centroids = ghcomp.Area(curves).centroid

2.支持多线程计算。

下图中两个电池功能是完全相同的,从图中可以看到,在测试用的四核计算机上,使用GHpython的多线程计算,速度提高了三倍。


更多信息,请参考:http://stevebaer.wordpress.com/2013/12/11/ghpython-node-in-code/
Rhino Python 入门请参考:跟我读RhinoPython  101 系列视频教学
GHpython下载,请访问:http://www.food4rhino.com/project/ghpython


作者: 花づ弄影    时间: 2013-12-14 13:11
鼓掌,鲜花。这个太强大了
作者: 470942035    时间: 2013-12-14 17:02
摸不到门
作者: 筑梦NARUTO    时间: 2013-12-14 17:19
给力。。
作者: 筑梦NARUTO    时间: 2013-12-15 03:18
还算比较方便啊,导入了下袋鼠的一个运算器,试了下

QQ图片20131215031656.jpg (264 KB, 下载次数: 43)

QQ图片20131215031656.jpg

作者: infinite    时间: 2013-12-16 12:44
跟我读RhinoPython  101 系列视频教学好久没更新了
作者: Jorin    时间: 2013-12-16 22:33
infinite 发表于 2013-12-16 12:44
跟我读RhinoPython  101 系列视频教学好久没更新了

请耐心等待。
作者: claudemit13    时间: 2013-12-19 10:29
本帖最后由 claudemit13 于 2013-12-19 12:11 编辑

赞,回家翻墙看看wordpress
尝试多线程的时候崩了一次程序。。。


作者: claudemit13    时间: 2013-12-27 18:54
Jorin 发表于 2013-12-16 22:33
请耐心等待。

请问怎么在GhPython中自己添加扩展库,比如numpy
作者: Jorin    时间: 2013-12-29 00:55
claudemit13 发表于 2013-12-27 18:54
请问怎么在GhPython中自己添加扩展库,比如numpy

像在普通python下安装那样的方式安装好,然后把C:\Program Files (x86)\Rhinoceros 5\Plug-ins\IronPython\Lib\site-packages下面你安装好的文件拷贝到C:\Users\Jorin\AppData\Roaming\McNeel\Rhinoceros\5.0\Plug-ins\IronPython (814d908a-e25c-493d-97e9-ee3861957f49)就好了
以上是在我电脑上的路径,和你电脑上的路径对应起来解决。
numpy没安装测试过,我刚用手头有的django测试了,这种方法是完全可行的。
作者: claudemit13    时间: 2013-12-29 21:17
Jorin 发表于 2013-12-29 00:55
像在普通python下安装那样的方式安装好,然后把C:\Program Files (x86)\Rhinoceros 5\Plug-ins\IronPytho ...

抱歉,以前怕麻烦装了有一个python for win的所有库的打包WinPython-64bit-2.7.5.3.exe,所以不太清楚在怎么分别装各种的library。。。
刚下了一个numpy-1.8.0-win32-superpack-python2.7,安装的时候说找不到python 2.7
也不能重新定位安装点的样子
麻烦能指导下安装到ironpython目录下的正确方式么?

作者: claudemit13    时间: 2013-12-29 21:58
本帖最后由 claudemit13 于 2013-12-29 22:25 编辑
claudemit13 发表于 2013-12-27 18:54
请问怎么在GhPython中自己添加扩展库,比如numpy

找到了这个enthought.com/repo/.iron/
按照步骤在 我在ironpython的console里打
ipy ironpkg-1.0.0.py --install
反馈说 unexpected token 'ironpkg'

在cmd输入这些 显示:ipy不是内部或外部命令,也不是可运行的程序
光输入ironpkg-1.0.0.py --install 不报错了,但是接着输入ironpkg -h
又显示ironpkg不是内部或外部命令,也不是可运行的程序
作者: claudemit13    时间: 2013-12-29 23:12
本帖最后由 claudemit13 于 2013-12-30 23:55 编辑
Jorin 发表于 2013-12-29 00:55
像在普通python下安装那样的方式安装好,然后把C:\Program Files (x86)\Rhinoceros 5\Plug-ins\IronPytho ...

又试了从github下载源码,手动运行setup.py install去安装的方法,倒是没有报错
但是打开rhino还是无法载入
复制到的目录是这个状态,试了把这个文件夹内容全部拷贝到C:\Users\User\AppData\Roaming\McNeel\Rhinoceros\5.0\Plug-ins\IronPython (814d908a-e25c-493d-97e9-ee3861957f49)下也没用


作者: claudemit13    时间: 2013-12-30 23:56
Jorin 发表于 2013-12-29 00:55
像在普通python下安装那样的方式安装好,然后把C:\Program Files (x86)\Rhinoceros 5\Plug-ins\IronPytho ...

通过远程协助,终于在ironpython 2.7上装好numpy,测试可用
在rhino的python tool option 那里链接到numpy安装的位置
import numpy as np
a=np.array([1,1,1])
print a
反馈的信息是:
Message: Could not add reference to assembly NumpyDotNet

Traceback:
  line 6, in <module>, "C:\Program Files (x86)\IronPython 2.7\Lib\site-packages\numpy\core\multiarray.py"
  line 6, in <module>, "C:\Program Files (x86)\IronPython 2.7\Lib\site-packages\numpy\core\__init__.py"
  line 155, in <module>, "C:\Program Files (x86)\IronPython 2.7\Lib\site-packages\numpy\__init__.py"
  line 1, in <module>, "C:\Users\User\AppData\Local\Temp\TempScript.py"
作者: Jorin    时间: 2013-12-31 09:02
claudemit13 发表于 2013-12-30 23:56
通过远程协助,终于在ironpython 2.7上装好numpy,测试可用
在rhino的python tool option 那里链接到num ...

这样肯定不行啊。把ironpython下面的ipy.exe等四个可执行文件拷贝到C:\Program Files (x86)\Rhinoceros 5\Plug-ins\IronPython下面,然后按照同样的方法安装。
作者: Jorin    时间: 2013-12-31 09:05
claudemit13 发表于 2013-12-30 23:56
通过远程协助,终于在ironpython 2.7上装好numpy,测试可用
在rhino的python tool option 那里链接到num ...

虽然RhinoPython是基于Ironpython的,但是用的时候调用的是Rhino目录下的ironpython,而不是你自己安装的ironpython,你得把numpy安装到rhino的ironpython,你的操作仅仅是安装到了你自己装的ironpython里面,当然就不能调用了。
作者: 871826289    时间: 2013-12-31 09:07
顶!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
作者: claudemit13    时间: 2013-12-31 12:17
本帖最后由 claudemit13 于 2013-12-31 12:41 编辑
Jorin 发表于 2013-12-31 09:02
这样肯定不行啊。把ironpython下面的ipy.exe等四个可执行文件拷贝到C:\Program Files (x86)\Rhinoceros 5 ...

把ironpython下面的ipy.exe等四个可执行文件拷贝到C:\Program Files (x86)\Rhinoceros 5\Plug-ins\IronPython下面,用了同样的步骤安装
然后复制了C:\Program Files (x86)\Rhinoceros 5\Plug-ins\IronPython\Lib\site-packages下面的文件到C:\Users\AppData\Roaming\McNeel\Rhinoceros\5.0\Plug-ins\IronPython (814d908a-e25c-493d-97e9-ee3861957f49)
还是显示
Message: Could not add reference to assembly NumpyDotNet

Traceback:
  line 6, in <module>, "C:\Users\User\AppData\Roaming\McNeel\Rhinoceros\5.0\Plug-ins\IronPython (814d908a-e25c-493d-97e9-ee3861957f49)\numpy\core\multiarray.py"
  line 6, in <module>, "C:\Users\User\AppData\Roaming\McNeel\Rhinoceros\5.0\Plug-ins\IronPython (814d908a-e25c-493d-97e9-ee3861957f49)\numpy\core\__init__.py"
  line 155, in <module>, "C:\Users\User\AppData\Roaming\McNeel\Rhinoceros\5.0\Plug-ins\IronPython (814d908a-e25c-493d-97e9-ee3861957f49)\numpy\__init__.py"
  line 1, in <module>, "C:\Users\User\AppData\Local\Temp\TempScript.py"
[attach]69583[/attach]


作者: Jorin    时间: 2013-12-31 22:42
claudemit13 发表于 2013-12-31 12:17
把ironpython下面的ipy.exe等四个可执行文件拷贝到C:\Program Files (x86)\Rhinoceros 5\Plug-ins\IronPy ...

刚刚用numpy测试了一下,确实不行,这应该与使用ironpkg安装有相当大的关系,不像django,直接就安装上去了。我尝试通过MinGW的编译器以build的方式安装也没有成功。google了一下,看起来很多人在visual studio环境下用numpy这个库也出现同样的问题。
作者: claudemit13    时间: 2014-1-1 23:31
Jorin 发表于 2013-12-31 22:42
刚刚用numpy测试了一下,确实不行,这应该与使用ironpkg安装有相当大的关系,不像django,直接就安装上去 ...

那么有没有在GhPython中可以用的别的科学计算类工具?
作者: Jorin    时间: 2014-1-6 17:01
本帖最后由 Jorin 于 2014-1-6 17:03 编辑
claudemit13 发表于 2014-1-1 23:31
那么有没有在GhPython中可以用的别的科学计算类工具?

终于在RhinoPython中导入成功了。我做的过程是这样子的:
在Ironpython中成功安装好numpy后,一定要在RhinoPython的Tools\options\model seach path中添加Iron Python 2.7根目录下的DLLS路径。一运行,又出现问题了,“No module named mtrand”,然后在代码最前面用公共运行时clr 中的AddReference函数引用mtrand,就正确了。引用mtrand的方法是
import clr
clr.AddReference("mtrand")
在这之后导入numpy使用,就没问题了。
作者: claudemit13    时间: 2014-1-7 21:53
本帖最后由 claudemit13 于 2014-1-7 21:56 编辑
Jorin 发表于 2014-1-6 17:01
终于在RhinoPython中导入成功了。我做的过程是这样子的:
在Ironpython中成功安装好numpy后,一定要在Rh ...

奇怪,在model seach path中添加C:\Program Files (x86)\IronPython 2.7\DLLs,选择了5 files open at start;
是在代码一开始这么写吧,
import clr
clr.AddReference("mtrand")
import numpy as np
显示:
Message: Could not add reference to assembly mtrand
Traceback:
  line 2, in <module>, "C:\Users\User\AppData\Local\Temp\TempScript.py"
我是不是numpy还是没装好?
作者: Jorin    时间: 2014-1-7 22:18
claudemit13 发表于 2014-1-7 21:53
奇怪,在model seach path中添加C:\Program Files (x86)\IronPython 2.7\DLLs,选择了5 files open at st ...

“Could not add reference to assembly mtrand”
出现这个错误不是numpy安装好没安装好的问题,看起来就像是DLLs没成功导入。
导入进去你用 Reset script engine 重置一下编辑器试试。
作者: claudemit13    时间: 2014-1-8 18:50
Jorin 发表于 2014-1-7 22:18
“Could not add reference to assembly mtrand”
出现这个错误不是numpy安装好没安装好的问题,看起来就 ...

会是我安装的是x64的rhino的问题么,还是如此报错
作者: Jorin    时间: 2014-1-9 10:23
claudemit13 发表于 2014-1-8 18:50
会是我安装的是x64的rhino的问题么,还是如此报错

嗯,要在64位Rhino中用numpy,首先要确保能够在IronPython Console (64-bit)  中能够用numpy。但是,貌似没办法在64 位 Ironpython中用。
作者: claudemit13    时间: 2014-1-9 17:29
Jorin 发表于 2014-1-9 10:23
嗯,要在64位Rhino中用numpy,首先要确保能够在IronPython Console (64-bit)  中能够用numpy。但是,貌似 ...

只能做一个悲伤的表情了,感谢版主帮助我尝试了很久
作者: Issac    时间: 2014-1-25 14:23
Jorin大神的视频很好啊!期待第八集!!!
作者: 流云域    时间: 2015-3-16 20:56
http://www.food4rhino.com/project/ghpython网页打不开。。。。如果有论坛下载件能用坛币买就好啦@Jorin   




欢迎光临 Rhino(犀牛)中国技术支持与推广中心 (http://bbs.rhino3d.asia/) Powered by Discuz! X3.2