NCF参数化建筑论坛

标题: 【RhinoPython】查找替换字符 [打印本页]

作者: 月之眼    时间: 2019-8-9 18:31
标题: 【RhinoPython】查找替换字符
本帖最后由 月之眼 于 2019-8-9 18:33 编辑

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

[attach]51797[/attach]


代码如下:

  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","月之眼")
复制代码




作者: lidalin666    时间: 2020-4-17 21:05
好用,真不错




欢迎光临 NCF参数化建筑论坛 (http://bbs.ncf-china.com/) Powered by Discuz! X3.2