NCF参数化建筑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 15962|回复: 1

[个人作品] 【RhinoPython】查找替换字符

[复制链接]
发表于 2019-8-9 18:31:24 | 显示全部楼层 |阅读模式
本帖最后由 月之眼 于 2019-8-9 18:33 编辑

rhino中经常会用到查找替换text和dot文字的需求,简单分享一下代码,希望对各位有用。
比如案例中把dot和text中的”XM“字符替换成“月之眼”字符。
在rhino中执行 _EditPythonScript指令,调出rhinopython编辑器,把代码复制到编辑器中,点击绿色三角形执行代码就行了。
1.jpg

QQ截图20190809182949.jpg


代码如下:

  1. #coding=utf-8
  2. #月之眼
  3. import rhinoscriptsyntax as rs
  4. import string as s
  5. import Rhino.Geometry as rg


  6. def select_Text(rhino_objects, geometry, geometry_index):
  7.     return rs.IsTextDot(geometry) or rs.IsText(geometry)

  8. def ReplaceText(text,oldText,newText):
  9.     if (s.find(text,oldText)!=-1):
  10.         return text.replace(oldText,newText)

  11. def ChangeText(oldText,newText):
  12.     geometrys = rs.GetObjects("选择要替换的text和dot",0,True,True,custom_filter = select_Text)
  13.     if(geometrys):
  14.         for i in geometrys:
  15.             if(rs.IsTextDot(i)):
  16.                 string1 = rs.TextDotText(i)
  17.                 string2 = ReplaceText(string1,oldText,newText)
  18.                 rs.TextDotText(i,string2)
  19.             else:
  20.                 string1 = rs.TextObjectText(i)
  21.                 string2 = ReplaceText(string1,oldText,newText)
  22.                 rs.TextObjectText(i,string2)
  23.     else:
  24.         print("没有text和dot")

  25.         

  26. if __name__=="__main__":
  27.     ChangeText("XM","月之眼")
复制代码



评分

参与人数 3强度 +9 照度 +16 收起 理由
Rrou + 2 + 10 感谢分享!
kawalog + 1 支持一下!
ly871108 + 6 + 6 支持一下!

查看全部评分

发表于 2020-4-17 21:05:05 | 显示全部楼层
好用,真不错

小黑屋|手机版|NCF参数化建筑论坛 ( 浙ICP备2020044100号-2 )    辽公网安备21021102000973号

GMT+8, 2024-4-17 01:54 , Processed in 0.159755 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表