Python --- 请教如何找出任意工作平面的垂直向量

[复制链接]
跳转到指定楼层
46115 kietsuc 发表于 2015-6-28 05:19:24 来自手机 楼主
各位大神好:
    我在写一个脚本,需要曲线在垂直于工作平面方向上挤出曲面,但是rs里面好像没有这方面的函数可以用,请教一下是否有什么方法可以达到效果?谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
关于大陆地区Rhino原厂培训中心
筑梦NARUTO 发表于 2015-6-28 10:39:15
2
放上你的例子,,,,你要做啥的例子和啥样的效果的照片
Jorin 发表于 2015-6-28 11:05:41
3
本帖最后由 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:37
4
筑梦NARUTO 发表于 2015-6-28 10:39
放上你的例子,,,,你要做啥的例子和啥样的效果的照片

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

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

BHXT%6)0P6(6IYBLF[QREZX.png
 楼主| kietsuc 发表于 2015-6-28 14:10:19
5
Jorin 发表于 2015-6-28 11:05
是有的:

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

谢谢J大,看来我要继续努力才行了
 楼主| kietsuc 发表于 2015-6-28 16:12:10
6
#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,谢谢论坛的分享。
您需要登录后才可以回帖 登录 | 注册成为会员

本版积分规则