本帖最后由 月之眼 于 2019-8-9 18:33 编辑
rhino中经常会用到查找替换text和dot文字的需求,简单分享一下代码,希望对各位有用。
比如案例中把dot和text中的”XM“字符替换成“月之眼”字符。
在rhino中执行 _EditPythonScript指令,调出rhinopython编辑器,把代码复制到编辑器中,点击绿色三角形执行代码就行了。
代码如下:
- #coding=utf-8
- #月之眼
- import rhinoscriptsyntax as rs
- import string as s
- import Rhino.Geometry as rg
- def select_Text(rhino_objects, geometry, geometry_index):
- return rs.IsTextDot(geometry) or rs.IsText(geometry)
- def ReplaceText(text,oldText,newText):
- if (s.find(text,oldText)!=-1):
- return text.replace(oldText,newText)
- def ChangeText(oldText,newText):
- geometrys = rs.GetObjects("选择要替换的text和dot",0,True,True,custom_filter = select_Text)
- if(geometrys):
- for i in geometrys:
- if(rs.IsTextDot(i)):
- string1 = rs.TextDotText(i)
- string2 = ReplaceText(string1,oldText,newText)
- rs.TextDotText(i,string2)
- else:
- string1 = rs.TextObjectText(i)
- string2 = ReplaceText(string1,oldText,newText)
- rs.TextObjectText(i,string2)
- else:
- print("没有text和dot")
-
- if __name__=="__main__":
- ChangeText("XM","月之眼")
复制代码
|