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

标题: 请教如何找出任意工作平面的垂直向量 [打印本页]

作者: kietsuc    时间: 2015-6-28 05:19
标题: 请教如何找出任意工作平面的垂直向量
各位大神好:
    我在写一个脚本,需要曲线在垂直于工作平面方向上挤出曲面,但是rs里面好像没有这方面的函数可以用,请教一下是否有什么方法可以达到效果?谢谢!
作者: 筑梦NARUTO    时间: 2015-6-28 10:39
放上你的例子,,,,你要做啥的例子和啥样的效果的照片
作者: Jorin    时间: 2015-6-28 11:05
本帖最后由 Jorin 于 2015-6-28 11:42 编辑
但是rs里面好像没有这方面的函数可以用

是有的

http://bbs.rhino3d.asia/pythonhelp/index.htm#page=Functions/ExtrudeCurveStraight.htm

这个函数是将一条曲线沿着由两个点定义的直线挤出,从而生成一个曲面。

将这两个点换成工作平面 Z 轴上的两个点就可以。

拿原文中的例子改造一个:

[mw_shl_code=python,true]import rhinoscriptsyntax as rs
cpl=rs.NamedCPlane("test")
startPt=rs.XformCPlaneToWorld((0,0,0),cpl)
endPt=rs.XformCPlaneToWorld((0,0,10),cpl)
curve = rs.AddCircle(cpl, 5)
rs.ExtrudeCurveStraight( curve, startPt, endPt)[/mw_shl_code]

"test" 是倾斜于世界坐标的一个已命名工作平面
得到的结果如下:



作者: kietsuc    时间: 2015-6-28 14:06
筑梦NARUTO 发表于 2015-6-28 10:39
放上你的例子,,,,你要做啥的例子和啥样的效果的照片

好的大神,帖子是昨天睡前用手机发的,没来得及放图片什么的,不好意思啊。
       如图,我把控制点移动到曲面上,但是手工挤出红色的线有时候又感觉太繁琐,所以我想着是不是可以自动挤出,移动完控制点后再删除面就可以了。

BHXT%6)0P6(6IYBLF[QREZX.png (183.77 KB, 下载次数: 22)

BHXT%6)0P6(6IYBLF[QREZX.png

作者: kietsuc    时间: 2015-6-28 14:10
Jorin 发表于 2015-6-28 11:05
是有的:

http://bbs.rhino3d.asia/pythonhelp/index.htm#page=Functions/ExtrudeCurveStrai ...

谢谢J大,看来我要继续努力才行了
作者: kietsuc    时间: 2015-6-28 16:12
#coding=utf-8
import rhinoscriptsyntax as rs

curve=rs.GetObject("选取曲线",rs.filter.curve)
cpl=rs.ViewCPlane()  
startPt=rs.XformCPlaneToWorld((0,0,0),cpl)
endPt=rs.XformCPlaneToWorld((0,0,10),cpl)
sur = rs.ExtrudeCurveStraight( curve, startPt, endPt)

这是在J提供的脚本上改出来的脚本,问题解决,谢谢J大,谢谢筑梦NARUTO,谢谢论坛的分享。




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