热门标签

[已解答] 请问如何在RhinoPython脚本中建立曲线文字

[复制链接]
查看: 11984|回复: 6

3

主题

7

帖子

40

积分

新手上路

Rank: 1

积分
40
发表于 2017-12-11 23:15:25 | 显示全部楼层 |阅读模式
本帖最后由 筑梦NARUTO 于 2017-12-13 23:20 编辑

AddText可以实现,但需要另外炸开。因为工作中需要建立的曲线文字是单线的,所以用AddText建立再炸开并不太方便(AddText用单线字体炸开后也有双线)。
有没有办法在脚本里面可以直接实现,像指令文字物件(! _TextObject)的功能一样。
太绕,我也不知道说明白没有,帖子里面的图片是我随便弄的,自己的电脑上没Rhino。
恳求大佬们解答。
QQ图片20171211230324.jpg
回复

使用道具 举报

18

主题

166

帖子

984

积分

超级版主

Rank: 8Rank: 8

积分
984
发表于 2017-12-12 00:20:17 | 显示全部楼层
可以使用rhinopython创建text之后再使用ExplodeText函数炸开text
QQ截图20171212001840.jpg
[db:签名]
回复

使用道具 举报

3

主题

7

帖子

40

积分

新手上路

Rank: 1

积分
40
 楼主| 发表于 2017-12-12 17:55:18 | 显示全部楼层
筑梦NARUTO 发表于 2017-12-12 00:20
可以使用rhinopython创建text之后再使用ExplodeText函数炸开text

谢谢版主的回复,但是单线字体用这个办法似乎不行。 QQ图片20171212175007.jpg

右边是炸开、后的单线字体,左边是通过! _TextObject建立的。
最近才学习如何写脚本,所以疑惑比较多。
回复

使用道具 举报

18

主题

166

帖子

984

积分

超级版主

Rank: 8Rank: 8

积分
984
发表于 2017-12-12 22:07:10 | 显示全部楼层
本帖最后由 筑梦NARUTO 于 2017-12-12 22:09 编辑

上面是脚本炸开的字体,下面是TextObject生成的,你觉得有区别么?你放上你的代码,我看看你是不是参数出问题了。你那个出问题是因为你的字体设置出了问题。
QQ截图20171212220556.jpg
[db:签名]
回复

使用道具 举报

3

主题

7

帖子

40

积分

新手上路

Rank: 1

积分
40
 楼主| 发表于 2017-12-13 19:13:14 | 显示全部楼层
筑梦NARUTO 发表于 2017-12-12 22:07
上面是脚本炸开的字体,下面是TextObject生成的,你觉得有区别么?你放上你的代码,我看看你是不是参数出问 ...

因为上班的电脑管制,而且刚刚回来才看到回复的信息。
是字体的问题,因为我们需要激光雕刻,一般都是用的单线字体(Delcamgt.ttf,已上传在帖子里),这样激光加工会省很多时间。
这个字体在! _TextObject选项中,勾选单线,会以单线状态显示出来。如果不勾选,单线字会被封闭起来。
其实问题在于脚本里面没办法实现类似! _TextObject中‘使用单线字形’这个功能。
十分感谢版主的耐心解答,很抱歉昨天没在帖子里说清楚。
QQ图片20171212175007.jpg
Delcamgt.rar (15.8 KB, 下载次数: 867)
回复

使用道具 举报

18

主题

166

帖子

984

积分

超级版主

Rank: 8Rank: 8

积分
984
发表于 2017-12-13 22:12:25 | 显示全部楼层
本帖最后由 筑梦NARUTO 于 2017-12-13 22:14 编辑

如果你要想和rhino里的一模一样,可以直接调用rhino里的命令,这里写个简单的脚本,你看看,应该能满足你的要求。
[AppleScript] 纯文本查看 复制代码
#coding=utf-8
#作者:月之眼

import rhinoscriptsyntax as rs


def CreateText(text_string,pt,ht,font):
    #创建单线text
    opts='_GroupOutput=_Yes _FontName="{}" _Italic=_No _Bold=_No '.format(font)
    opts+='_Height={} _Output=_Curves _AllowOpenCurves=_Yes '.format(ht)
    opts+='_LowerCaseAsSmallCaps=_No _AddSpacing=_No '
    rs.Command("_-TextObject "+opts+'"'+text_string+'"'+" " + str(pt),False)
    if rs.LastCommandResult()==0: return rs.LastCreatedObjects()

def Main():
    font_style="Arial"
    #字体
    text_String = "月之眼"
    #需要写的文字
    txt_ht=10
    #字体大小
    txt_objs=[]
    pts = rs.GetPoints(message1 = "创建字体的位置")
    if(pts==None):return
    rs.EnableRedraw(False)
    for pt in pts:
        txt_obj=CreateText(text_String,pt,txt_ht,font_style)

if __name__=="__main__":
    Main()

评分

参与人数 1金币 +3 经验 +3 收起 理由
Ansen + 3 + 3 赞一个!

查看全部评分

[db:签名]
回复

使用道具 举报

3

主题

7

帖子

40

积分

新手上路

Rank: 1

积分
40
 楼主| 发表于 2017-12-13 22:44:46 | 显示全部楼层
筑梦NARUTO 发表于 2017-12-13 22:12
如果你要想和rhino里的一模一样,可以直接调用rhino里的命令,这里写个简单的脚本,你看看,应该能满足你的 ...

太感谢版主了,真的非常感谢,终于实现单线了,再也不用手工修改了。
回复

使用道具 举报

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

本版积分规则

精彩推荐

Rhino 6 的授权管理模式的调整与转换

2020-08-20 图文教学

2020冬季 Rhino 建筑造型系统面授课程

2020-03-21 面授课程

课程介绍|Rhino工业/艺术设计曲面造型高级

2020-03-20 面授课程

2020暑期 Grasshopper参数化系统面授课程

2020-03-20 面授课程

VisualARQ 2.7 发布更新

2020-02-17 新闻

VisualARQ 2.6 发布更新

2019-12-12 新闻

ShapeMap–复杂形体的表面纹理贴合参数化插

2019-11-04 新闻

图文教学 | Rhino 6 细分建模 BARCELONA 椅

2019-06-30 图文教学

Rhino3D(犀牛)中文网

  • 深圳:0755-29642189
  • 上海:021-56496412
  • 成都:028-61592400
  • support@shaper3d.com

关注我们

Copyright   ©2007-2017  Rhino3D犀牛中文网  Powered by©Discuz!     ( 粤ICP备12051517号-5