讨论 --- 关于rs.OffsetCurve()函数的疑问

[复制链接]
跳转到指定楼层
本帖最后由 筑梦NARUTO 于 2015-10-26 11:16 编辑

一个多边形,使用rs.OffsetCurve()函数的时候,无法偏移负值距离。
代码如下:
  1. import rhinoscriptsyntax as rs

  2. obj = rs.GetObject("Select a curve", rs.filter.curve)

  3. if rs.IsCurve(obj):

  4.     A = rs.OffsetCurve( obj, [0,0,0], 10.0 )
  5.     B = rs.OffsetCurve( obj, [0,0,0], -10.0 )
  6.     print A,B
复制代码
B返回来是空值。如图


然后我用GHpython调用rhinocommon写了个offset,是可以偏移负值的,想问问jorin大大这个是为什么?是不是rs.OffsetCurve()函数的bug?


GHPYTHON中的代码:
  1. import Rhino as r
  2. style = r.Geometry.CurveOffsetCornerStyle.Sharp
  3. plane = r.Geometry.Plane.WorldXY
  4. tolerance = r.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance

  5. a = plot.Offset(plane,f,tolerance,style)
复制代码


rhino和GH文件都上传了。提前谢谢解惑


offset问题.zip

16.22 KB, 下载次数: 53

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
关于大陆地区Rhino原厂培训中心
 楼主| 筑梦NARUTO 发表于 2015-10-27 20:21:57
2
本帖最后由 筑梦NARUTO 于 2015-10-27 20:24 编辑

感谢jorin大大解答,明白了。
这里补充一下mcneel官网clement用户提供的解决方案。
  1. import Rhino
  2. import rhinoscriptsyntax as rs

  3. def OffsetRectangle():
  4.     id = rs.GetObject("crv", 4, True, False)
  5.     if id:
  6.         plane = rs.CurvePlane(id)
  7.         point = rs.XformCPlaneToWorld([10000,10000,0], plane)
  8.         crv_1 = rs.OffsetCurve(id, point, 10.0, plane.ZAxis)
  9.         ac = rs.CurveAreaCentroid(id)
  10.         crv_2 = rs.OffsetCurve(id, ac[0], 10.0, plane.ZAxis)

  11. OffsetRectangle()
复制代码



您需要登录后才可以回帖 登录 | 注册成为会员

本版积分规则