SolidWorks專門論壇 SolidWorks forum

 找回密碼
 註冊
查看: 18858|回復: 20

圆筒壓縮彈簧力之計算-巨集的應用

[複製鏈接]
發表於 2013/5/17 14:57:43 | 顯示全部樓層 |閱讀模式
如題
一. 簡略說明
    1. 首先進入裝配體的spring零件編輯3D草圖,點選螺紋線並做刪除,
    2. VBA的數學方程式,寫入TEXTBOX要輸入的"節圓半徑","圈數"及"彈簧高"做出所要的彈簧螺線,
    彈簧高是取決於"加載"或是"不加載"之按鈕,加載就是    彈簧高 - 壓縮量.
    3. 依據TEXTBOX的線徑及節圓直徑(決定線徑的X座標值),掃出彈簧螺線就是.
二. 理想狀況
    是直接在裝配體就可以刪除前彈簧線,並寫入3D草圖的"數學方程式",
    但目前尚不知道在裝配體時,如何寫VBA作如上之動作,若是哪個前輩知道的話,
    誠請指導.

螺紋線是用vba寫數學方程式


本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?註冊

x
發表於 2013/5/17 17:28:32 | 顯示全部樓層
哇哩咧,如此好帖沒人頂?大家都趕著回去過周末?{:1_215:}

多向梁兄請益學習啊~~
 樓主| 發表於 2013/5/17 18:43:30 | 顯示全部樓層
謝謝丹兄支持
 樓主| 發表於 2013/5/21 10:32:28 | 顯示全部樓層
主題: 圓筒壓縮彈簧力之計算前言: 在幾個有關solidworks論壇看到有關彈簧,幾乎皆在討論作圖法,深深有感對一個機械設計者來說不但要學好正確理想的作圖法,減少製圖錯誤或是節省作圖時間,但最主要的
       ,設計者更應該知道設計的彈簧力量及在工作範圍的壓縮尺寸是否適用,這就是引發本人做這個巨集(宏)的用意,期望這個分享能引起經驗豐富的機械工程大師,更能把自身的十八般武藝和知識傳承給需要者.

彈簧力計算公式:
          參數: 線徑 d(mm) , 節圓直徑 D(mm) , 有效圈數 N , 彈簧常數 k(kg/mm) , 彈簧壓縮量 s(mm) , 彈簧力 P(kg), 材料橫向彈性係數 G(kg/mm2) ,各種材料的G值如附圖1.

操作說明:
1.   把Bass,Press   Plate兩個零件一個組件及spring force.swp編程存在同一個 檔案夾路徑,再開啟 組件檔.     
2.  進入Spring零件"3D草圖1"的編輯狀況,點選"彈簧螺旋曲線,如圖2.
3.  點選上面功能列 [工具]-[巨集]-[執行],叫出"sprintforce.swp"VBA編程.
4.  操作注意事項         
    * 按下[加負載]或是[未加負載]之按鈕前,皆須作第2項之操作.           
    * 在自訂表單輸入每筆資料後須跳出該TextBox或按"Enter"鍵離開      
5. 自訂表單內名稱定義說明:
            有效圈數-可以有效的變形圈數 , 彈簧高-有效圈數上下線徑的中心高.

彈簧力及壓縮量之分析:      
     參考圖3,當加壓到”壓縮量”接近”最大可壓縮量”時,負載欄的值,就是彈簧          理想的”最大受力負載”,也就是在加壓下去,可能彈簧壓死了,就算沒壓死,       也有可能變形壓縮量和負載,就不是依照”虎克定律(Hooke'slaw )”兩者是成線性變化了,最大可壓縮量一般是取彈簧自由長的0.3~0.35倍,若是不得已受空間所限,我是取  (彈簧自由長-壓死長度)*0.9 [僅作參考]

VBA巨集(部分參考):
' ******************************************************************************'  
'  macro compile on 05/18/2013 V001.00 by scliang
'  彈簧力計算螺線依數學方程式
'******************************************************************************
Dim swApp As ObjectDim Part As ObjectDim boolstatus As BooleanDim longstatus As Long, longwarnings As Long
Sub run_()
Set swApp = Application.SldWorksSet Part = swApp.ActiveDocWith UserForm1
Dim equationDriveCurve As Object '宣告方程式驅動曲線為物件Dim myModelView As Object '宣告模組視圖為物件Dim wire_dim As Double '宣告線徑為雙精度 mmDim pitch_dim As Double '宣告節圓直徑為雙精度 mmDim coil_num As Double '宣告有效圈數為雙精度Dim spring_hig As Double '宣告彈簧高度為雙精度 mmDim spring_pitch As Double '宣告彈簧節距為雙精度 mmDim spring_compression As Double '宣告彈簧壓縮量為雙精度 mmDim G As Double '宣告材料橫向彈性係數為雙精度 kg/mm^2Dim k As Double '宣告彈簧常數為雙精度 kg/mmDim load_ As Double '宣告彈簧負載為雙精度 kg
wire_dim = CDbl(.TextBox3.Value)pitch_dim = CDbl(.TextBox4.Value)coil_num = CDbl(.TextBox5.Value)spring_hig = CDbl(.TextBox6.Value)
If .CommandButton1.BackColor = vbYellow Thenload_ = CDbl(.TextBox1.Value)G = CDbl(.TextBox8.Value)k = CDbl(.TextBox9.Value)spring_compression = load_ / kspring_hig = spring_hig - spring_compression
End If
Part.EditDelete '刪除螺旋線
'輸入 數學關係式Set equationDriveCurve = Part.SketchManager.CreateEquationSpline2(pitch_dim / 2 & "*cos(t)", spring_hig / coil_num & "*(t/(2*pi))", _pitch_dim / 2 & "*sin(t)", "0", coil_num * 2 & "*pi", False, 0, 0, 0, True, True)Set myModelView = Part.ActiveViewmyModelView.RotateAboutCenter 0, 0
'解除方程式可能之錯誤boolstatus = Part.Extension.SelectByID2("Point3", "SKETCHPOINT", pitch_dim / 2 / 1000, 0, 0, False, 0, Nothing, 0) '選取彈簧起點座標Part.SketchAddConstraints "sgFIXED" '設起點為固定
'設定尺寸變數Set myDimension1 = Part.Parameter("D1@草圖1@Spring^組件.Part") '線徑變數Set myDimension2 = Part.Parameter("D2@草圖1@Spring^組件.Part") '節圓直徑變數Set myDimension3 = Part.Parameter("D1@平行相距1") '彈簧高變數Set myDimension4 = Part.Parameter("D1@草圖1@Press Plate.Part") '定義壓板邊長之變數Set myDimension5 = Part.Parameter("D1@填料-伸長1@Press Plate.Part") '定義壓板板厚之變數
myDimension1.SystemValue = wire_dim / 1000 '線徑myDimension2.SystemValue = pitch_dim / 2 / 1000 '線徑之X座標為節圓半徑
Part.EditAssembly '編輯組件myDimension3.SystemValue = spring_hig / 1000 '彈簧高myDimension4.SystemValue = pitch_dim * 1.6 / 1000 '壓板邊長為節圓直徑*1.6myDimension5.SystemValue = IIf(pitch_dim > 30, 0.016, 0.01) '壓板板厚計算
boolstatus = Part.EditRebuild3() '重新計算boolstatus = Part.SetUserPreferenceToggle(swUserPreferenceToggle_e.swViewDisplayHideAllTypes, True) '隱藏所有類型End WithEnd Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
附上原始檔2012版,使用前請詳看"操作注意"WORD檔





本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?註冊

x

點評

雖然看不懂,但這麼好的資料 ..... 先留著先 ...... 感謝大大無私的分享 ~~~~~  詳情 回復 發表於 2014/6/22 11:36
 樓主| 發表於 2013/5/25 15:47:26 | 顯示全部樓層
理想狀況之問題已解決!{:1_187:}
自己鼓勵一下

發表於 2013/8/17 20:02:42 | 顯示全部樓層
原來還可以這樣做~~
發表於 2013/9/10 13:45:10 | 顯示全部樓層
真的是太厲害了
發表於 2013/9/10 14:29:43 | 顯示全部樓層
完全看不懂{:1_244:}

不過梁大真的佛心來著

這麼珍貴的資料就這麼無償分享出來

感謝梁大
 樓主| 發表於 2013/9/10 19:11:06 | 顯示全部樓層
知識是傳承的,難道是要和黃土一道掩埋嗎?

點評

謝謝~大郎也是這樣想  發表於 2015/4/17 19:51
是阿 大大可以出書  發表於 2014/8/8 10:07
發表於 2013/10/4 11:41:42 | 顯示全部樓層
讚,又要腦力激盪
mark_in 該用戶已被刪除
發表於 2013/11/26 10:22:13 | 顯示全部樓層
0.0"!! 梁大大好強丫~~~快來學習學習~~~感恩丫~~
發表於 2013/11/26 13:48:00 | 顯示全部樓層
gt.adan 發表於 2013/5/17 17:28
哇哩咧,如此好帖沒人頂?大家都趕著回去過周末?

多向梁兄請益學習啊~~ ...

當然是過週末的,現今是退休時代,喝酒抽煙帶小孩過人生,多位博士輪來做,戰爭不會來的,放假走
p85201314 該用戶已被刪除
發表於 2013/12/14 19:08:54 | 顯示全部樓層
WOW

真是好東西呀!!

但是巨集部分我不會用呢

能否講解一下呢?
aj147852 該用戶已被刪除
發表於 2014/6/21 09:12:57 | 顯示全部樓層
GOOD!!實用謝謝分享
發表於 2014/6/22 11:36:51 | 顯示全部樓層
scliang 发表于 2013/5/21 10:32
主題: 圓筒壓縮彈簧力之計算前言: 在幾個有關solidworks論壇看到有關彈簧,幾乎皆在討論作圖法,深深有感對一 ...

雖然看不懂,但這麼好的資料 ..... 先留著先 ......

感謝大大無私的分享 ~~~~~
發表於 2014/7/7 22:01:30 | 顯示全部樓層
第一次看到這種東西有點太深奧了
發表於 2015/4/13 22:34:37 | 顯示全部樓層
太強了,看得我頭昏眼花!!!
發表於 2015/4/17 16:17:49 | 顯示全部樓層
巨集的應用
竟然能算應力
果然是專業的
還分享
感謝大師讚
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

論壇統計|手機版上論壇|論壇來自幾何科技 論壇架構版次 20240312

GMT+8, 2024/4/21 00:20 , Processed in 0.110806 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回復 返回頂部 返回列表