零件动画,需要不建地重建。。与关键帧有啥关系
SW的动画是通过插入关键帧来实现的,比如0秒拉伸高度为10,10秒拉伸高度改为100,那么就可以生成一段长度10秒的,从高度10拉伸到100的动画
这个动画是不是隔几个帧把左边的转一个角度,然后右边的弹簧长度拉伸一下 2011ayoon 发表于 2018-10-16 15:54
SW的动画是通过插入关键帧来实现的,比如0秒拉伸高度为10,10秒拉伸高度改为100,那么就可以生成一段长度 ...
你说的前提是装配体,多零件。并且只是位置变化。。
这种零件动画,和帧没产系,是通过宏程序,不断改变草图的尺寸,比如每1秒某尺寸减小0.1,这样来实现动画的。不信你试试。
本帖最后由 2011ayoon 于 2018-10-17 12:30 编辑
shentu 发表于 2018-10-17 11:09
你说的前提是装配体,多零件。并且只是位置变化。。
这种零件动画,和帧没产系,是通过宏程序,不断改变 ...
你自己试试就知道了,需不需要这么麻烦,看看SOLIDWORKS Motion的帮助吧 2011ayoon 发表于 2018-10-17 12:23
你自己试试就知道了,需不需要这么麻烦,看看SOLIDWORKS Motion的帮助吧
感觉驴头不对马嘴。做动画心里没点数吗
https://www.jxcad.com.cn/data/attachment/forum/pw/Mon_1205/45_379520_81a75616c04f66f.gif
这东西是6年前我做的,当时就因为不懂VBA编程,只能用装配体来动画之。今年又看到类同的,惭愧,还是不懂VBA(没基础,年纪大,事情也多),有感而发。
https://www.jxcad.com.cn/forum.php?mod=viewthread&tid=1362460
shentu 发表于 2018-10-17 11:09
你说的前提是装配体,多零件。并且只是位置变化。。
这种零件动画,和帧没产系,是通过宏程序,不断改变 ...
多討論多思考不管是對是錯總是會有進步.
1#動畫就是如s大說的作法,附sw2012文件及宏swp文件.
' ***********************************************
' macro recorded on 01/16/17 by scliang
' ***********************************************
Option Explicit '強制用戶需先聲明定義變數型態
Dim swApp As SldWorks.SldWorks '(Early Binding)
Dim Part As SldWorks.ModelDoc2
Dim myModelView As ModelView 'Object 通用數據類型(Late Binding 運算速度較慢)
Dim boolstatus As Boolean
Dim L, L1, L2, D1, D2, M2, N1, N2As Double
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
Dim myDimension_1 As Dimension 'Object
Dim myDimension_2 As Dimension
Set myDimension_1 = Part.Parameter("D5@螺旋曲線/渦捲線1") '材料圈數
Set myDimension_2 = Part.Parameter("D5@螺旋曲線/渦捲線2") '彈簧圈數
myDimension_1.SystemValue = 10
myDimension_2.SystemValue = 0.5
boolstatus = Part.EditRebuild3()
myModelView.RotateAboutCenter 0, 0
L = 3788.97938701496 '"D5@螺旋曲線/渦捲線1"+"D5@螺旋曲線/渦捲線2" 的線圈總長
D1 = 376.996476741742 '"D5@螺旋曲線/渦捲線1" 的單圈長
D2 = 38.0292391950834 '"D5@螺旋曲線/渦捲線2" 的單圈長
For N2 = 1 To 25.5 Step 0.5 '彈簧圈數之循環
myDimension_2.SystemValue = N2
L2 = D2 * (N2 - 0.5) '"D5@螺旋曲線/渦捲線2"展開長的增量
L1 = L - L2 '"D5@螺旋曲線/渦捲線1" 的目前展開長
N1 = L1 / D1 '"D5@螺旋曲線/渦捲線1" 的目前圈數
myDimension_1.SystemValue = N1
boolstatus = Part.EditRebuild3()
myModelView.RotateAboutCenter 0, 0
Next
Debug.Print "END"
End Sub
ryouss 发表于 2018-10-17 13:53
多討論多思考不管是對是錯總是會有進步.
1#動畫就是如s大說的作法,附sw2012文件及宏swp文件.
多谢楼主放源文件。
多讨论多进步~但这个代码,对我来说,还是像天书一样难懂。但难说某日我也能略通一二呢,时间挤一挤,总会有的,未来什么样,谁能说得定呢。
页:
1
[2]