SolidWorks專門論壇 SolidWorks forum

 找回密碼
 註冊
查看: 12039|回復: 15

鈑金計算畫線長度

[複製鏈接]
發表於 2019/7/19 10:12:04 | 顯示全部樓層 |閱讀模式
目前要將 SOLIDWORKS 與生產方面更進一步結合,要得知水刀所有 切割 畫線 長度。
目前由除料清單屬性可得到切割的內外長度,但畫線(圖片中紅線)要如何計算呢? 一個一個算太慢了...

本帖子中包含更多資源

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

x
 樓主| 發表於 2019/7/19 15:36:50 | 顯示全部樓層
例如像這塊板子,我可以很清楚地算出切割長度~ 但畫線就要另外手工計算(深藍色)~

本帖子中包含更多資源

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

x

點評

[attachimg]235904[/attachimg] 如下代码:  詳情 回復 發表於 2019/7/19 17:21
發表於 2019/7/19 17:21:16 | 顯示全部樓層
YOYOYO 發表於 2019/7/19 15:36
例如像這塊板子,我可以很清楚地算出切割長度~ 但畫線就要另外手工計算(深藍色)~ ...


宏代码如下:
  1. Option Explicit
  2. Public Enum swSketchSegments_e
  3.     swSketchLINE = 0
  4.     swSketchARC = 1
  5.     swSketchELLIPSE = 2
  6.     swSketchSPLINE = 3
  7.     swSketchTEXT = 4
  8.     swSketchPARABOLA = 5
  9. End Enum
  10. Sub main()
  11.     Dim swApp                   As SldWorks.SldWorks
  12.     Dim swModel                 As SldWorks.ModelDoc2
  13.     Dim swSelMgr                As SldWorks.SelectionMgr
  14.     Dim swFeat                  As SldWorks.Feature
  15.     Dim swSketch                As SldWorks.Sketch
  16.     Dim j                       As Long
  17.     Dim bRet                    As Boolean
  18.     Dim vSketchSeg              As Variant
  19.     Dim swSketchSeg             As SldWorks.SketchSegment
  20.     Dim nLength                 As Double
  21.     Dim SelobjCount             As Integer
  22.     Dim i                       As Long

  23.     Set swApp = Application.SldWorks
  24.     Set swModel = swApp.ActiveDoc
  25.     Set swSelMgr = swModel.SelectionManager
  26.     SelobjCount = swSelMgr.GetSelectedObjectCount
  27.     If SelobjCount <> 0 Then
  28.         For i = 1 To SelobjCount
  29.             If (swSelMgr.GetSelectedObjectType(i) = swSelSKETCHES) Then
  30.                 Set swFeat = swSelMgr.GetSelectedObject5(i)
  31.                 Set swSketch = swFeat.GetSpecificFeature2
  32.                 vSketchSeg = swSketch.GetSketchSegments
  33.                 For j = 0 To UBound(vSketchSeg)
  34.                     Set swSketchSeg = vSketchSeg(j)
  35. '                    Ignore construction lines     忽略构照线
  36.                     If swSketchSeg.ConstructionGeometry = False Then
  37. '                        Ignore text   忽略文本
  38.                         If swSketchTEXT <> swSketchSeg.GetType Then
  39.                             nLength = nLength + swSketchSeg.GetLength
  40.                         End If
  41.                     End If
  42.                 Next
  43.             End If
  44.         Next
  45.     End If
  46.     MsgBox "Total Length = " & Format(nLength * 1000, "0.0") & " mm"
  47. End Sub
複製代碼






本帖子中包含更多資源

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

x
 樓主| 發表於 2019/7/19 20:47:39 | 顯示全部樓層

哇~ 謝謝大大 ! 解決了我的問題~
發表於 2019/7/19 22:13:07 | 顯示全部樓層
我蠻期待SOLIDWORKS可以計算全部內外輪廓 總路徑長度... ,不然依之前做法...有時要算報價 工時部份都只能用經驗去粗估,現在是用雷射切割軟體在做切割程式的時候 有支援可以看總體路徑長度。希望以後SOLIDWORKS有機會也能有,畢竟設計端先看總比出圖以後到跑程式才看到好。
 樓主| 發表於 2019/7/19 22:26:58 | 顯示全部樓層
ming_lak 發表於 2019/7/19 22:13 我蠻期待SOLIDWORKS可以計算全部內外輪廓 總路徑長度... ,不然依之前做法...有時要算報價 工時部份都只能 ...
分享一下,國外有NestingWorks可以外掛到solidworks,感覺也許可以。



發表於 2019/7/20 08:03:16 | 顯示全部樓層
是有sw的切割插件,而且有破解版
發表於 2019/7/23 11:51:18 | 顯示全部樓層
算長度要幹嘛?

點評

計算費用  詳情 回復 發表於 2019/7/23 16:59
發表於 2019/7/23 16:59:28 | 顯示全部樓層

計算費用
 樓主| 發表於 2019/7/23 17:06:19 | 顯示全部樓層

1. 算長度可以用來推估水刀切割工時,因為板材不同厚度的切割時間有差。
2. 為何要預估工時?
    主要是為了排程,必須知道切割進度是不是能在正確時間提供給現場施工人員施作,例如: 加工、研磨、焊接...等。
    才不會有待料的情形,也就是不能讓人員沒事做。
 樓主| 發表於 2019/7/24 09:41:40 | 顯示全部樓層

成功~ 請問顯示長度的數字有辦法可以複製嗎? 因為我想貼在excel做統計~

本帖子中包含更多資源

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

x

點評

添加代码,将计算结果复制到剪贴板  詳情 回復 發表於 2019/7/24 18:28
發表於 2019/7/24 18:28:42 | 顯示全部樓層
YOYOYO 發表於 2019/7/24 09:41
成功~ 請問顯示長度的數字有辦法可以複製嗎? 因為我想貼在excel做統計~

添加代码,将计算结果复制到剪贴板
  1. Option Explicit
  2. Public Enum swSketchSegments_e
  3.     swSketchLINE = 0
  4.     swSketchARC = 1
  5.     swSketchELLIPSE = 2
  6.     swSketchSPLINE = 3
  7.     swSketchTEXT = 4
  8.     swSketchPARABOLA = 5
  9. End Enum
  10. Sub main()
  11.     Dim swApp                   As SldWorks.SldWorks
  12.     Dim swModel                 As SldWorks.ModelDoc2
  13.     Dim swSelMgr                As SldWorks.SelectionMgr
  14.     Dim swFeat                  As SldWorks.Feature
  15.     Dim swSketch                As SldWorks.Sketch
  16.     Dim j                       As Long
  17.     Dim bRet                    As Boolean
  18.     Dim vSketchSeg              As Variant
  19.     Dim swSketchSeg             As SldWorks.SketchSegment
  20.     Dim nLength                 As Double
  21.     Dim SelobjCount             As Integer
  22.     Dim i                       As Long
  23.     Dim TLength                 As String

  24.     Set swApp = Application.SldWorks
  25.     Set swModel = swApp.ActiveDoc
  26.     Set swSelMgr = swModel.SelectionManager
  27.     SelobjCount = swSelMgr.GetSelectedObjectCount
  28.     If SelobjCount <> 0 Then
  29.         For i = 1 To SelobjCount
  30.             If (swSelMgr.GetSelectedObjectType(i) = swSelSKETCHES) Then
  31.                 Set swFeat = swSelMgr.GetSelectedObject5(i)
  32.                 Set swSketch = swFeat.GetSpecificFeature2
  33.                 vSketchSeg = swSketch.GetSketchSegments
  34.                 For j = 0 To UBound(vSketchSeg)
  35.                     Set swSketchSeg = vSketchSeg(j)
  36. '                    Ignore construction lines     忽略构照线
  37.                     If swSketchSeg.ConstructionGeometry = False Then
  38. '                        Ignore text   忽略文本
  39.                         If swSketchTEXT <> swSketchSeg.GetType Then
  40.                             nLength = nLength + swSketchSeg.GetLength
  41.                         End If
  42.                     End If
  43.                 Next
  44.             End If
  45.         Next
  46.     End If
  47.     TLength = Format(nLength * 1000, "0.0")
  48.     With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
  49.         .SetText TLength
  50.         .PutInClipboard
  51.     End With
  52.     MsgBox "Total Length = " & TLength & " mm(结果已复制到剪贴板)"
  53.     swModel.ClearSelection
  54. End Sub
複製代碼


 樓主| 發表於 2019/7/25 09:22:33 | 顯示全部樓層
DaveChan 發表於 2019/7/24 18:28
添加代码,将计算结果复制到剪贴板

成功囉,連框選數字都不用就直接複製數值,謝謝大大~



本帖子中包含更多資源

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

x
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 2024/3/29 01:48 , Processed in 0.223656 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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