可变截面扫描之入门篇
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VSS扫描详解
BY:王庆丰
VSS也叫可变截面扫描
一、首先,我们来理解一下扫描。
如下图:
1.用一个不变的截面(位置和大小都不变)沿着一条轨迹线扫描过去。
此轨迹
线就是原点轨迹线,其含义就是扫描过种中不管是哪个截面,他的原点始终是在这条线上。
有且只有一条,且必须第一个选。
2.如果只是确定好截面的原点,截面的位置还没有完全确定下来。
扫描过程默
认截面垂直于原点轨迹。
所以截面在空间的位置就完全确定了。
3.起点和终点位置可以改,不一定要是草绘线的起点和终点。
只要改图中数字
(0.000)即可。
如果是正数,即扫描长度大于轨迹线长度时,加长部份的轨迹线是什么样呢?加长部份是直线且长度等你改的数值,且与草绘线的起点或终点相切
终点起点
二、可变截面扫描其特点是:截面是可以变化的扫描。
截面的变化有两种
1.截面大小变了,如下图:
Sd3=40+trajpar*10
0≤Trajpar≤1
扫描过程中截面中的一条边从40变到50,起始点的时候是40,终点的时候是50
也就是说在起始点时截面是一个40*sd4的矩形。
终点时截面是一个50*sd4的矩形。
(上图中sd4是固定值,当然也可以变化)
截平面默认为垂直于轨迹。
(方向控制下面讲,暂时用垂直于轨迹)
2.截面的位置变了。
如上图,截面大小没变,只是矩形的下面一条边相对原点轨迹线的位置变了。
位置由起始点的10变到终点的50。
(截平面默认为垂直于轨迹)
说明:Trajpar与原点轨迹线对应。
Trajpar=0。
说明截面处在原点轨迹线的起点
Trajpar=1。
说明截面处在原点轨迹线的终点
特别的当Trajpar=0.5时。
说明截面处在原点轨迹线的中点。
我们来验证一下一般情况。
当Trajpar=0.3时
sd5=10+trajpar*50=10+0.3+50=25。
新建一个点。
选原点轨迹线。
比率0.3
过该点作一个平面,与轨迹线垂直。
建一个截面,新建工程图
与计算结果一致。
总结:截面的变化可以是大小或位置。
可以是单个的尺寸也可是多个尺寸同时变化,可以是线性尺寸,也可以是角度尺寸。
当然截面大小或位置的控制不一定只能用关系式。
可以用别的轨迹线或图形函数。
后面再讲
以上几个例子只讲了截面,对于截面的方向都是用Creo默认的“垂直于轨迹”对于空间的任意一个截面,如果只知道一个原点是不能完全确定这个截面的。
所以接下来我们进一步来确定截面。
那么下一步就是确定Z方向了。
Z方向
原点确认好了后,我们接下来确定Z方向,之所以称为Z方向而不称Z 轴,是因为截面坐标系是一个二维的X-Y坐标系,但截面要做移动扫
描,将其移动方向称为Z方向。
确定Z方向时,CREO给出了三种方法:
1.垂直于轨迹
你可以在面板的“N”项中任选一条轨迹让扫描截面垂直于该轨迹,
称为N轨迹。
N轨迹可以是原点轨迹,也可以是一般轨迹。
扫描截面
在扫描移动过程中始终垂直于N轨迹,即N轨迹切向即是Z方向。
2.垂直于投影
截面垂直于轨迹在平面上的投影。
即我们可以选一条轨迹线在平面上投影的切向作为Z方向。
3.恒定法向
截面的法向(Z方向)始终与给定的方向平行。
方向可以是轴,曲
线,平面。
X轴
到现在为止我们已经确认了坐标系原点和Z方向。
下面我们确定二维截面的X方向。
即参考选项里的“水平/垂直控制”。
CREO缺省状态下会自动根据原点轨迹的法向确定X轴。
你也可以在“X”项中任选一条轨迹线。
该轨迹线与扫描截面有一点交点,该交点与坐标系原点的连线即为X轴。
注意:X轨迹不能与原点轨迹相交,因为两点才能确定一条直线,一相交就表明坐标原点和交点重合了,X轴给不出来。
过一点有无数条直线。
原点轨迹与N轨迹
原点轨迹有且只有一条。
而且必须先选。
原点轨迹必须光滑。
不能有尖点。
(高等数学知识好的能理解,不能理解的就记住算了)
当我们Z方向用“垂直于轨迹控制”时,可以选另外一条链作为Z方向轨迹。
也可以用原点轨迹
是原点轨迹亦是N轨迹
垂直于投影与恒定法向非常简单。
不作介绍。
X轨迹
当Z确定好后,最后我们确定X就可以把截面完全确定了。
(Y轴根据右手螺旋法则确定)
我们可以指其他任意一条轨迹为X轨迹。
是原点轨迹亦是N轨迹
如上图:原点轨迹和N轨迹是一条。
链1为X轨迹。
我们还是以一般情况来举例说明。
设trajpar=0.3
在“链1”上建一个点。
比率=0.3。
建一个平面,经过上面所建的点且垂直于N轨迹。
再建一个点。
N轨迹与上面所建平面的交点。
建一条直线,连接PNT0和PNT1点。
从PNT1到PNT0的方向就是X方向。
很显然,如果原点轨迹和X相交。
则PNT1和PNT0在扫描过程中就会重合。
此时X则不能确定,扫描失败。
至此,截面完全确定了。
如下图:
上图实际上说明:当trajpar=0.3时。
可变截面的位置情况。
截面的控制方法
1.函数关系
实际上前面讲的例子就是用函数关系来控制截面的。
当然例子非常的简单,主要用到的数学函数有sin()及cos()。
a.草绘轨迹
b.进入VSS选择上面的草绘为原点轨迹
Z方向垂直于轨迹(上面草绘的线即
是原点轨迹与是N轨迹)。
X轴自动
c.草绘一个圆,标注圆的直径。
d.写关系式:
sd3=100+sin(trajpar*360*15)*10
其意义是: Trajpar对应整个草绘线
Trajpar=0时,截面在起始点
Trajpar=1时,截面在终点。
由于函数sin()是周期函数,
sin(trajpar*360*15) 其最小正周
期T=1/15,说明在整个扫描过程中sd3
这个尺寸走了15个周期。
特别的当:Trajpar=1/15时。
Sd3=100
读者可按上面的方法自行验证。
完成如果如下图
关系式函数
a.草绘轨迹
b.进入VSS,选上一步建产的草绘为原点轨迹,Z方向垂直于轨迹,
X轴自动
c.草绘一个圆,加上关系式
if trajpar>0.25&trajpar<0.75
sd3=50+sin(trajpar*360*50)*5
else
sd3=50
endif
此关系式相当一个分段函数
Y=50+5*sin(x*360*5) x∈(0.25,0.75)
Y=50 X∈[0,0.25]或者[0.75,1]
2.轨迹
有时候并不知道函数关系,可以通过附加轨迹线来控制截面
中间的链是原点轨迹也是N轨迹。
链1和链2分别用来控制截面。
扫描过程中,截面上有一个点始终链1上,另外一个点在链2上。
一步VSS下图:
分析:用一个与Front平面平行的平面去截此零件,其截面都是矩形,矩形高度都是一样。
只是宽度在中间有一段是变化的。
那我们把宽度用辅助轨迹去控制。
具体步奏:
a.草绘轨迹
b.进入VSS,先选直线为原点轨迹。
再按Ctrl选上右边的草绘线。
c.进入草绘,草绘一矩形。
两端点分别与原点轨迹和辅助轨迹
重合。
点确定,完成。
3.图形
3.1.图形特征
从图标就可以很形象的看出来。
图形特征就是指函数的图形或
者说曲线。
有些函数写关系式太麻烦,有些甚至写不出来。
这
时候用图形特征来表达更合适。
下面看一个简单的例子。
点基准下的国“图形”
系统提示为特征输入一个名字
可以输入中文,确定。
既然是函数的图形,首先建一个坐标系
按右图草绘。
很显然,此图形是一个分段函数。
当0≤x≤10 y=x
当10<x≤20 y=10
3.2.Creo曲线表计算函数
利用曲线表计算函数,可使用曲线表特征通过关系驱动尺寸。
这些尺寸可为截面、零件或装配尺寸。
格式如下:
evalgraph("graph_name", x)
其中:
•graph_name- 曲线表的名称。
x- 是沿曲线表 x 轴的值,为其返回 y 值。
我们先来一个非常简单的例子帮助大家理解
a.建一个图形特征。
b.草绘一条直线。
长度16
c.进入VSS。
截面画一个圆。
标注圆的直径
d.写上关系式:sd3=evalgraph("图形_1",trajpar*16)
完成如图:
这时候有人可能会说:搞那么麻烦,直接旋转不就得了。
我只是通过简单的例子来说明曲线表函数。
前面多次说过,Trajpar=0及Trajpar=1 时,是代表扫描的起点和终点。
当Trajpar=0时,Trajpar*16=0,
evalgraph("图形_1",trajpar*16)=?
看下图,很显然:evalgraph("图形_1",trajpar*16)=5 即x=0时,Y的值
所以Trajpar=0时,sd3=5
上图还标出了。
Trajpar=1时,sd3=10.815
再例如:Trajpar=0.75时,Trajpar*16=0.75*16=12
sd3取图形上X=12时的Y值。
Y=11.223.即sd3=11.223 注意:写关系式时,trajpar后的系数最好要与图形上的X 对应。
因为trajpar的范围是【0,1】
如上面的例子,图形没变。
在写关系的时候把
“trajpar*16”写成了“trajpar*12”了。
当trajpar=1,时,指的是扫描的终点。
这时候
sd3=11.223。
而不是10.815
读者可以自己验证trajpar等于其他值的情况。
另外一种情况。
如果把“trajpar*16”写成了
“trajpar*20”了。
当trajpar=1时。
X=20,图形上没有Y的值。
这时系统会把16<X≤20的值找出来的。
见下图中红色线段
虽然Creo不会把这条直线段画出来。
但Y的取值按这条直线段取。
这条直线段与图形在X=16处相切。
终点坐标为
x=20
凸轮
a.建图形特征
b.草绘一个直径200的圆。
并建轴线
c.进入VSS。
选草绘圆为原点轨迹,Z方向垂直于轨迹。
d.选取轴线为草绘截面参考。
草绘一个矩形。
右边与轴重
合。
e.输入关系sd4=evalgraph("1",trajpar*360)
f.确定,完成。
通常,我们做凸轮时,图形中的X指的是角度。
扫描时指是曲线长度。
但是,曲线长度和角度正好是成正比关系。
弧长=圆心角*半径。
正好可以对应。
也就是说:Trajpar*360这个角度,正好在这个圆心角的弧长上。
常用函数
前面已经介绍过几个,如:sin(),cos(),evalgraph() 下面详细介绍几个。
并通过实例讲解其中一些函数的用法
1.abs()
abs() 为绝对值函数
2.sqrt()
sqrt()开平方函数。
也可以实现绝对函数一样的功
能。
如sqrt(t^2)等价于abs(t)
3.ceil()与floor()
ceil() 为不小于其值的最小整数
floor()不大于其值的最大整数
如:ceil(2.56)=3,ceil(-2.5)=-2
floor(2.56)=2 floor(-2.5)=-3
括号内可以是实数类型参数
可以给函数ceil和floor加一个可选的自变量,用
它指定要圆整的小数位数。
语法是:
ceil(参数名或数字, 要圆整的小数位数)
floor(参数名或数字, 要圆整的小数位数)
如 ceil(2.56,1)=2.6 ceil(-2.56,1)=-2.5
floor(2.56,1)=2.5 floor(-2.56,1)=-2.6
再例如:
A=2.56
Ceil(a,1)=2.6 floor(a,1)=2.5
4.mod()余项函数
mod(x,y)的计算方法是:
a.先求出x/y的整数部份。
(假设用int(x/y)来表
示)
b.然后用这个整数部份乘以y。
即(int(x/y))×y
c.Mod(x,y)=x-(int(x/y))×y
如 mod(2,3)=2-(int(2/3))×2=2-0×3=2
mod(5.5,3)=5.5-(int(5.5/3))×3=5.5-1×3=2.5
X和Y的值可以是变量。
如mod(20*trajpar,10) 显然 0≤20*trajpar≤20
他相当于这样一个函数:
当0≤trajpar<0.5时。
0≤20*trajpar<10
∴ int(20*trajpar/10)=0
∴ mod(20*trajpar,10)=20*trajpar-0*10=20*trajpar
相当于:Y=20×x 0≤x<0.5
当0.5≤trajpar<1时。
10≤20*trajpar<20
∴ int(20*trajpar/10)=1
∴ mod(20*trajpar,10)=20*trajpar-1*10
相当于:y=20*x-10 0.5≤x<1
当trajpar=1时。
mod(20*trajpar,10)=0
函数图形如下。
一般的:mod(N*trajpar,10) (其中N为正整数)
被10整除后的余数。
他是一个周期函数。
T=N/10
数学函数
数学函数在这不作介绍,Creo中常用到有
Sin() sinh() cos() cosh() tan() tanh() Asin() acos() atan()
Ln() log()
Abs()
Sqrt()
Max()
Min()
另外还有if 语句的用法。
前面已经介绍过了。
下面通过一个例子来说明部份函数的用法。
a.草绘一个100的圆。
并建立轴线。
b.草绘截面,选取轴线为参考线。
c.添加关系
a=2.5*cos(trajpar*360*16)+2.5
b=5*cos(trajpar*180*16)
c=ceil(trajpar*16)
if mod(c,2)==0
if mod(c,4)==0
sd21=12+b
else
sd21=12-b
endif
endif
if mod(c+1,2)==0
if mod(c+1,4)==0
sd21=12-a
else
sd21=12+a
endif
d.完成。
步骤比较简单,现主要说明这段关系的含义。
首先,为了使方便建立了三个参数a,b,c。
分别用到了数学函数cos()及ceil()函数。
a和b就不做介绍了。
C=ceil(trajpar*16)相当于这样一个函数
当0<trajpar≤1/16时, c=1
当1/16<trajpar≤2/16时, c=2
………………
当15/16<trajpar≤1时,C=16
If mod(c,2)==0 /*如果C能够被2整除
If mod(c,4)==0 /*如果C能够被4整除,
sd21=12+b
else
sd21=12-b 如果C不能被4整除,但能被2整除。
endif
endif
如果C不能被2整除(奇数)
if mod(c+1,2)==0 /*如果C+1能够被2整除
if mod(c+1,4)==0 /*如果C+1能够被4整除
sd21=12-a
else
sd21=12+a /*如果C+1不能够被4整除, 但能被2整除。
endif
现在大致描绘一下这个函数的图形。
y=2.5*cos(trajpar*360*16)+2.5)
trajpar∈(4/16,5/16]∪(8/16,9/16] ∪(12/16,13/16]∪(0/16,1/16] y=5*cos(trajpar*180*16)
trajpar∈(3/16,4/16]∪(7/16,8/16] ∪(11/16,12/16]∪(15/16,16/16] y=-2.5*cos(trajpar*360*16)-2.5
trajpar∈(2/16,3/16]∪(6/16,7/16] ∪(10/16,11/16]∪(14/16,15/16] y=-5*cos(trajpar*180*16)
trajpar∈(1/16,2/16]∪(5/16,6/16] ∪(9/16,10/16]∪(13/16,14/16]
总结:对于网上的那些复杂模型,无非就是多种手段同时控制截面的多种尺寸。
以及原点轨迹线的形状复杂。
只要把原理搞清了才能举一反三,打开思路。
有兴趣的朋友可以去群文件下载VSS模型。
去学习思路与方法。