请选择 进入手机版 | 继续访问电脑版

[原创] 【GhPython】分开一个列表中的数字和字符串

[复制链接]
442321 筑梦NARUTO 发表于 2015-8-16 22:03:59 楼主
本帖最后由 Jorin 于 2016-3-22 15:32 编辑

在rhinopython中分开一个列表中的数字和字符串是非常的简单,直接判断下就行了。这里不多说了,直接上代码。
  1. #coding=utf-8
  2. from types import StringType
  3. a = [1,2.3,"h","j",3.0,"j"]
  4. b=[];c=[]
  5. for i in a:
  6.     if (type(i) == StringType):
  7.         b.append(i)
  8.     else:
  9.         c.append(i)

  10. print b
  11. print c
复制代码


然而在ghpython中输入的时候都会被默认转换成字符串,这样分开就比较麻烦。这里提供了一种gh的方法和ghpython的方法。gh主要利用强行转换类型办到的,然而在gh中字符串“e”会被当成自然常数e,所以需要再做个判断。
QQ图片20150816213903.png


在ghpython中主要利用的错误处理机制来实现的,也就是try..except...else结构办到的,详细请查看代码。

  1. a=[];b=[]
  2. for i in x:
  3.     try:
  4.         float(i)
  5.     except ValueError:
  6.         a.append(i)
  7.     else:
  8.         if i.find(".") != 1:
  9.             b.append(int(i))
  10.         else:
  11.             b.append(float(i))
复制代码


游客,如果您要查看本帖隐藏内容请回复

关于大陆地区Rhino原厂培训中心
arch_yr 发表于 2015-8-16 23:04:35
2
大神万岁!  我有一个问题想问一下哈,如果我要在GHpython中调用Rhino中的命令,比如说Flow,Bend等等,该怎么办呢?
 楼主| 筑梦NARUTO 发表于 2015-8-16 23:09:01
3
arch_yr 发表于 2015-8-16 23:04
大神万岁!  我有一个问题想问一下哈,如果我要在GHpython中调用Rhino中的命令,比如说Flow,Bend等等,该怎 ...

rs.Command()这个函数就可以调用了,我以前有个小案例,链接在这里:http://bbs.shaper3d.com/thread-24991-1-1.html
arch_yr 发表于 2015-8-16 23:26:50
4
arch_yr 发表于 2015-8-16 23:04
大神万岁!  我有一个问题想问一下哈,如果我要在GHpython中调用Rhino中的命令,比如说Flow,Bend等等,该怎 ...

多谢多谢,再贪心的问一个问题啊。 那怎么在GHpython中调用Galapagos Evolutionary Solver这个运算器呢?
2345截图20150816232846.jpg
 楼主| 筑梦NARUTO 发表于 2015-8-16 23:37:37
5
本帖最后由 筑梦NARUTO 于 2015-8-16 23:49 编辑
arch_yr 发表于 2015-8-16 23:26
多谢多谢,再贪心的问一个问题啊。 那怎么在GHpython中调用Galapagos Evolutionary Solver这个运算器呢?

ghpython也提供了调用gh电池的方法啊,不过没有必要。能gh就gh,没必要用代码。用代码调用gh电池总给我多此一举的感觉了。而且现在有些gh的电池也不支持调用或者调用了也会出错,不建议用。

还有你想用GHpython实现的功能是有插件的,没必要写,下载链接:http://www.food4rhino.com/project/jackalope?ufh

关于插件的介绍:Jackalope is a Grasshopper component that implements the standard Rhino space morph operations: Bend, Flow, Maelstrom, Splop, Splorph, Stretch, Taper, and Twist.
arch_yr 发表于 2015-8-16 23:55:06
6
本帖最后由 arch_yr 于 2015-8-16 23:58 编辑

谢啦谢啦,插件我已经装上鸟~   弱弱的问一下: 如果我想在GH(或者GHpython中)用Galapagos挨个对一连串相似对象的同一个参数进行优化,有没有可以实现的办法啊?  要不就得一个一个手动连接Galapagos了,累死了
 楼主| 筑梦NARUTO 发表于 2015-8-16 23:56:40
7
arch_yr 发表于 2015-8-16 23:55
谢啦谢啦,插件我已经装上鸟~   弱弱的问一下: 如果我想在GH(或者GHpython中)用Galapagos对一连串相似对 ...

不清楚,没有试过这个电池支持调用不,如果支持,你里面也要实现参数化啊,没有直接用方便,你为啥一定要调用这个电池呢?
arch_yr 发表于 2015-8-17 00:02:06
8
没事,就是好奇问一问嘛,工作了白天比较忙。 闲下来就容易胡思乱想嘿嘿  多谢大神啦,大神晚安~
 楼主| 筑梦NARUTO 发表于 2015-8-17 00:09:28
9
arch_yr 发表于 2015-8-17 00:02
没事,就是好奇问一问嘛,工作了白天比较忙。 闲下来就容易胡思乱想嘿嘿  多谢大神啦,大神晚安~

真不建议用ghpython调用电池做东西,会遇到很多小bug,或者调用了不起作用的情况。你可以调用Flip Matrix 这个电池试试,貌似就不能用。能直接写就直接写。实在没有办法了再调用电池或者犀牛的命令。
arch_yr 发表于 2015-8-17 00:17:58
10
对对,大神说的是。 我就是惰性大,老是想偷懒。。。
*滑动验证:
您需要登录后才可以回帖 登录 | 注册成为会员

本版积分规则