|
今天闲,给大伙详细说下吧,就当这是个教程贴了(不过是在分析别人做的东西~~呵呵)
我从简单的开始分析这个弹簧,假如你现在要画一个一样弯曲的但不会变螺距的弹簧,用vss扫描是什么过程呢?
1,草绘一个弯曲的曲线
2,用vss扫沿着这条曲线螺旋扫面
3,沿着扫出的螺旋面的边扫描出弹簧实体
假设这些你都会,那么你应该知道在第二步vss扫描的时候有两个变量需要定义,
一个是扫描线的长度,这个参数在这里可以定义弹簧半径大小
另一个是角度,这个参数在这里就需要用关系来控制,我们希望它能沿着我们的轨迹旋转扫出,打个比方这个关系式是sdXX=trajpar*360*20,trajpar这个函数我就不解释了,360代表转了一圈360度,20就是我定义它在扫描的过程中转了20圈。
到了这里,你需要思考一个问题,为什么这样扫出的弹簧是均匀的?
因为trajpar这个函数,因为它是线性的,增长的速度一样,所以是均匀的,我们要变化斜率(也就改变了螺距),就要替换掉这个函数,用一个本身具有斜率变化的函数来控制,最后得到的必然是一个具有螺距变化的弹簧,这个控制最简单直观的就是调用图形。
evalgraph这个函数可以自己去看看定义,我不解释了,直接回到这个截图来说,这个图分了三段,那就有三个斜率,斜率大的,在横坐标走过相同值的时候纵坐标上升的自然就快,反之亦然。
怎么调用呢,放在关系里讲你会更容易理解。我们用图形控制换掉刚才关系式里的单一斜率函数,那么定义这个关系是sdxx=360*evalgraph("a",trajpar*L)
这其中的a就是这个图形的名称,L就是这个图形的横坐标总长度,那么trajpar*L也就取到了这个图形中所有的横坐标值,这个evalgraph("a",trajpar*L)最后的结果就是取到了所有的a图形中横坐标对应的纵坐标值。(这里多说两句,L是a图形的总长,换掉L乘个K什么结果,K大于L什么结果,K小于L什么结果,你可以自己去尝试下,这样会对这个函数有更深刻的认识。)
回到我们这个关系sdxx=360*evalgraph("a",trajpar*L),对应图形来说,开始斜率大纵坐标变化快,360一乘,自然一圈圈转的很快,(在相同的时间扫过同样的长度,转的圈数多了自然螺距就小了),中间斜率小了,转的也就慢了(螺距就大了),后面斜率大了又转的快了(螺距又小了)。
至此,基本完了,最后说两点
1,有人会问,刚才你还乘了个20圈呢,现在怎么不乘了?
这个跟图形有关系,如果你的图形很陡峭,那一遍走下来纵坐标都不知道多少了,圈数自然就很多了~当然随便乘个数也可以,就是让纵坐标更大,圈数更多,弹簧更密
2,这个图形里那个转接的地方是有圆弧过度的,角度变化平缓,扫描面过度是顺的,不然直接切过去会有一个明显的转折,这样出来的螺旋线不相切就没得搞了。 |
评分
-
查看全部评分
|