Rhino(犀牛)中国技术支持与推广中心

标题: Rhinoscript里面如何Reparameterize一条曲线 [打印本页]

作者: 小圣    时间: 2015-11-19 11:45
标题: Rhinoscript里面如何Reparameterize一条曲线
gh对于一条曲线和曲面常见的操作是直接右键将其Reparameterize.

用来便捷的在曲线和曲面上找点。
最近在学Rhinoscript,没有发现能直接把曲线Reparameterize的函数。
只能用比较笨的方法,要调用两个函数CurveParameter和EvaluateCurve

请问rhino中有单个函数可以实现gh中一个右键就搞定的事。
下面是我的笨办法,要两个函数:
#coding = UTF8
import rhinoscriptsyntax as rs
crv = rs.GetObject("slect a curve") #选一条曲线
if rs.IsCurve(crv):
    for T in rs.frange(0,1,0.1):
        parameter = rs.CurveParameter(crv,T)
        PointAtT = rs.EvaluateCurve(crv,parameter)
        rs.AddPoint(PointAtT)
else:
    print("It`s not a curve")

a1.JPG (44.69 KB, 下载次数: 38)

a1.JPG

转换曲线参数曲线区间.rar

325 Bytes, 下载次数: 60


作者: 筑梦NARUTO    时间: 2015-11-19 12:33
这个功能很简单实现的。直接修改curve类的domain属性就可以了。具体查看文件

1.png (86.94 KB, 下载次数: 30)

1.png

12.zip

7.43 KB, 下载次数: 54


作者: 小圣    时间: 2015-11-19 12:40
谢谢,果然简洁有力,
这种 “对象+圆点+属性”的编程方式,我记得是VB中常用的,
python中访问对象属性,也是用这种方式吗?
我读的python教程,里面从来没有这种方式,当然,那些教程和犀牛无关,不调用犀牛的库
这样说的话,犀牛中要去记住每一样物件有哪些属性吗?记忆量好像需要很大
作者: 筑梦NARUTO    时间: 2015-11-19 12:43
小圣 发表于 2015-11-19 12:40
谢谢,果然简洁有力,
这种 “对象+圆点+属性”的编程方式,我记得是VB中常用的,
python中访问对象属性, ...

可以查帮助手册啊(rhinocommon SDK)
作者: 小圣    时间: 2015-11-19 13:17
找了很久没找到,rhinocommon SDK在哪里打开?
作者: 筑梦NARUTO    时间: 2015-11-19 13:32
小圣 发表于 2015-11-19 13:17
找了很久没找到,rhinocommon SDK在哪里打开?

我发你吧
作者: 小圣    时间: 2015-11-19 13:44
python中访问曲线的Domain属性报错,告诉我该对象没有一个属性叫Domain的,这啥情况!!!?!!

a2.JPG (63.18 KB, 下载次数: 45)

a2.JPG

作者: 小圣    时间: 2015-11-19 13:46
被水影挡住了,重发一遍图

a2.JPG (74.97 KB, 下载次数: 41)

a2.JPG

作者: 筑梦NARUTO    时间: 2015-11-19 14:35
小圣 发表于 2015-11-19 13:46
被水影挡住了,重发一遍图

http://bbs.rhino3d.asia/thread-24185-1-5.html看这个链接最下面,讲解了geo对象与guid的区别和转换方法。
  1. #coding=utf-8
  2. import rhinoscriptsyntax as rs
  3. from Rhino.Geometry import Interval

  4. curve = rs.GetObject("选择一条曲线",rs.filter.curve)

  5. if curve:
  6.     geo_curve = rs.coercecurve(curve)
  7.     domain = geo_curve.Domain
  8.     print domain
  9.    
  10.     geo_curve.Domain = Interval(0,1)
  11.    
  12.     re_curve = geo_curve
  13.    
  14.     re_domain = re_curve.Domain
  15.     print re_domain
复制代码



作者: 筑梦NARUTO    时间: 2015-11-19 14:39
小圣 发表于 2015-11-19 13:44
python中访问曲线的Domain属性报错,告诉我该对象没有一个属性叫Domain的,这啥情况!!!?!!

它告诉你的是guid物体没有domain属性,其实本来就没有。,,,domain属性是curve类的,需要转换下。
作者: 小圣    时间: 2015-11-19 15:10
谢谢NARUTO!解决了我所有问题!




欢迎光临 Rhino(犀牛)中国技术支持与推广中心 (http://bbs.rhino3d.asia/) Powered by Discuz! X3.2