×

工业设计互动平台

手机短信,快捷登录

微信登录,快人一步

QQ登录

只需一步,快速开始

各位高手、大师,我碰到一个问题,解了好几天,不得其法。需求如下:在rhino中,用户数据usertext可以粘贴到物体上,可以多次累加,修改,读取等操作。
在rhino的命令行上,使用setusertext,及getusertext可以方便地读取。在Rhino Python Editor里面也有代码的示例,我已经测试成功了!可以像批处理一样地运用rs.setusertext,及rs.getusertext函数来使用。


但我们更多是在GH中快速编程,需要封存GH的过程数据存在某一个物体本身当中,GH现在本身没有用户数据usertext的电池,我想通过GH里面的Python插件来编写这些功能。
现在遇到的问题有几个:
1、GH中的setusertext 写不进去
2、GH中的getusertext 读不出来
3、希望在建立了物体,Bake出物体形状的同时,将usertext同时就写到物体当中去,方便以后的步骤来读取。


在GHPython中,这样设定电池倒是绿了,只是数据感觉写不进去
wenti-1.JPG

上面的代码为:
import rhinoscriptsyntax as rs
if object_id:
  print  object_id
  print key
  print value
  rs.SetUserText(object_id, key, value)

结果没有反应,用rhino命令行中的getusertext去查询,找不到任何附加的数据。
感觉 rs.SetUserText(不起作用。


再写另一个getusertex的代码,发现有usertext的物体,却取不出任何数据,感觉很是奇怪?
wenti-2.JPG
上面的代码为:
import rhinoscriptsyntax as rs
if object_WP:
    print object_WP
    print type(object_WP)
    print  rs.GetUserText(object_WP, "len")
    a = rs.GetUserText(object_WP, "len")


在GHpython script 编辑器中,每次按下“test”按钮时,对应
print object_WP的结果都会变出不同的数值,例如:
08adc2f6-e081-4e46-a4f2-a63c3da438eb
2ad6e3f8-8ec7-4f77-a4bd-55ef60280644
ed7c3655-3cd2-4027-81a9-a2503f995fa9
……………………
这是怎么回事啊?
有那位大使能帮我解答一下,不胜感激!
如果有VB in GH的代码也可以看看。
附注:在一个叫SEG的插件中,倒是有类似的电池,但是这组插件时不时会报错,或者时间加密,版本加密引出退出,实在不敢就轻易使用这个插件。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩回复

文明上网理性发言、请文明用语

woodwest | 实习生 | 发表于 2017-2-25 16:16:06
顶上去,求高人解答!:)
0 回复

举报

rinkerrinker | 实习生 | 发表于 2017-2-26 22:03:17
usertext.png
你得把sc.doc设置成RhinoDoc.ActiveDoc
至于每次print都出现不同的guid的原因
我猜,我猜啊 是因为你每次print的都是gh新画出来的Crv 而不是你rhino里面的那个 当然每次都不一样了

同理 你读取gh里面crv的usertext当然没结果啦
0 回复

举报