Python --- 请教曲面插入Knot的问题

[复制链接]
跳转到指定楼层
21743 kietsuc 发表于 2015-7-6 04:48:12 楼主
各位大神好:
       我想用rs给曲面插入Knot,试了很多方法都不行,请教具体问题出在哪里?

~3K]HGE8WEFF$4M1}77D2RA.png (138.31 KB, 下载次数: 13)

这是调用rhino指令的做法,但是最后的数值都不知道要怎么样输入,一直显示未知指令

这是调用rhino指令的做法,但是最后的数值都不知道要怎么样输入,一直显示未知指令
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
关于大陆地区Rhino原厂培训中心
Jorin 发表于 2015-7-7 01:39:34
2
本帖最后由 Jorin 于 2015-7-7 01:44 编辑



很遗憾这个 Rhino Python 的 rs 中没有这个函数,这个函数在 RhinoScript 中是有的,但是用 python 我们可以通过 rhinocommon 来做。

举个例子:

[mw_shl_code=python,true]import rhinoscriptsyntax as rs
import Rhino
import scriptcontext as sc
surID=rs.GetObject("Select a surface",rs.filter.surface)
surB=Rhino.DocObjects.BrepObject
surB=sc.doc.Objects.Find(surID)
sur=surB.BrepGeometry.Surfaces[0]
sur.KnotsU.InsertKnot(sur.Domain(0)[1]/2)
sc.doc.Objects.AddSurface(sur)
rs.DeleteObject(surID)
sc.doc.Views.Redraw()[/mw_shl_code]

关键就在第 8 句了,意思是在 U 方向的某一个参数值的地方加入节点。我这里 sur.Domain(0)[1]/2 是直接把 U 方向的参数最大值的一半给它了,你可以按照实际需要进行更改。

 楼主| kietsuc 发表于 2015-7-7 02:07:41
3
Jorin 发表于 2015-7-7 01:39
很遗憾这个 Rhino Python 的 rs 中没有这个函数,这个函数在 RhinoScript 中是有的,但是用 python 我们 ...

谢谢Jorin大神,每次遇到问题就来麻烦论坛,很惭愧,论坛教会了我很多,真不知道如何报答,谢谢,真的谢谢。
 楼主| kietsuc 发表于 2015-7-11 18:08:43
4
根据Jorin大神的脚本改出来的脚本,因为我只需要V方向插入节点,所以就只做了V方向的,ds 为参数。

def InsertKnotToSurface(surID,ds):
    surB=Rhino.DocObjects.BrepObject
    surB=sc.doc.Objects.Find(surID)
    sur=surB.BrepGeometry.Surfaces[0]
    sur.KnotsV.InsertKnot((sur.Domain(1)[1]/sur.Domain(1)[1])*float(ds))
    sur.KnotsV.InsertKnot(sur.Domain(1)[1]-float(ds))
    sur1 = sc.doc.Objects.AddSurface(sur)
    rs.DeleteObject(surID)
    sc.doc.Views.Redraw()
    return sur1

感谢论坛的分享。
您需要登录后才可以回帖 登录 | 注册成为会员

本版积分规则