SolidWorks專門論壇 SolidWorks forum

 找回密碼
 註冊
查看: 36120|回復: 37

轉檔顯示所需要的檔案名稱

[複製鏈接]
發表於 2016/6/25 18:40:30 | 顯示全部樓層 |閱讀模式
如何轉出來的檔案呈現下列格式的檔案名稱,

第一種形式:
今天的日期-檔名.pdf
第二種形式:
料號-檔名-今天的日期.pdf
發表於 2016/6/25 19:34:47 | 顯示全部樓層
获取日期的代码,以下代码日期格式为双引号里面的内容,
yyyy代表年(2016)
mm代表月(06)
dd代表日(25)
  1. Dim ShortDate As String
  2. ShortDate = Format(Date, "yyyymmdd")
複製代碼
请问下料号是在模型属性里面吗?
如果是请问是在自定义属性还是配置特定里面?
保存的路径有什么要求?







 樓主| 發表於 2016/6/27 11:07:05 | 顯示全部樓層
1. 想在下列這巨集中增加可以轉出去的檔案名稱有:
第一種形式:
今天的日期-檔名.pdf
第二種形式:
料號-檔名-今天的日期.pdf
  1. Sub main()

  2. Set swApp = _
  3. Application.SldWorks

  4. Set Part = swApp.ActiveDoc
  5. Part.ViewZoomtofit2
  6. Part.ViewZoomtofit2
  7. PartName = Part.GetTitle
  8. PartName = Left(PartName, Len(PartName) - 6)
  9. longstatus = Part.SaveAs3("C:" & PartName & ".PDF", 0, 0)
  10. End Sub
複製代碼

2. 料號是在模型裡面輸入的

3.存檔路徑是固定的

本帖子中包含更多資源

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

x

點評

第一種形式: 今天的日期-檔名.pdf  詳情 回復 發表於 2016/6/27 14:25
發表於 2016/6/27 14:25:05 | 顯示全部樓層
baaltsai 發表於 2016/6/27 11:07
1. 想在下列這巨集中增加可以轉出去的檔案名稱有:
第一種形式:
今天的日期-檔名.pdf

第一種形式:
今天的日期-檔名.pdf
  1. Dim swApp As Object
  2. Dim Part As Object
  3. Dim FilePathname As String
  4. Dim FilePath As String
  5. Dim PartName As String
  6. Dim ShortDate As String
  7. Sub main()
  8. Set swApp = Application.SldWorks
  9. Set Part = swApp.ActiveDoc
  10. FilePathname = Part.GetPathName()
  11. FilePath = Left(FilePathname, InStrRev(FilePathname, "") - 1)
  12. PartName = Right(FilePathname, Len(FilePathname) - Len(FilePath) - 1)
  13. PartName = Left(PartName, Len(PartName) - 7)
  14. ShortDate = Format(Date, "yyyymmdd")
  15. PartName = ShortDate & "-" & PartName
  16. longstatus = Part.SaveAs3("C:" & PartName & ".PDF", 0, 0)
  17. End Sub
複製代碼
第二种形式
PartNo 属性在模型的自定义属性中还是配置特定属性中?

點評

OK 讚  詳情 回復 發表於 2016/7/4 10:09
 樓主| 發表於 2016/6/27 15:49:56 | 顯示全部樓層
在模型的自訂屬性輸入 PartNo 的.
發表於 2016/6/27 18:15:50 | 顯示全部樓層
第二種形式:
料號-檔名-今天的日期.pdf
  1. Dim swApp As Object
  2. Dim Part As Object
  3. Dim FilePathname As String
  4. Dim FilePath As String
  5. Dim PartName As String
  6. Dim ShortDate As String
  7. Dim swView As SldWorks.View
  8. Dim swDrawModel As SldWorks.ModelDoc2
  9. Dim swModelDocExt As ModelDocExtension
  10. Dim swCustProp As CustomPropertyManager
  11. Dim bool As Boolean
  12. Dim val As String
  13. Dim valout As String
  14. Dim longstatus As Boolean
  15. Sub main()
  16. Set swApp = Application.SldWorks
  17. Set Part = swApp.ActiveDoc
  18. FilePathname = Part.GetPathName()
  19. FilePath = Left(FilePathname, InStrRev(FilePathname, "") - 1)
  20. PartName = Right(FilePathname, Len(FilePathname) - Len(FilePath) - 1)
  21. PartName = Left(PartName, Len(PartName) - 7)
  22. ShortDate = Format(Date, "yyyymmdd")
  23. Set swView = Part.GetFirstView
  24. Set swView = swView.GetNextView
  25. If swView Is Nothing Then
  26.     MsgBox "当前工程图未找到视图"
  27. Exit Sub
  28. End If
  29. Set swDrawModel = swView.ReferencedDocument
  30. Set swModelDocExt = swDrawModel.Extension
  31. Set swCustProp = swModelDocExt.CustomPropertyManager("")
  32. bool = swCustProp.Get4("PartNo", False, val, valout)
  33. PartName = valout & "-" & PartName & "-" & ShortDate
  34. longstatus = Part.SaveAs3("C:" & PartName & ".PDF", 0, 0)
  35. End Sub
複製代碼
请测试,并告知结果

點評

ok 修改路徑後 也ok  詳情 回復 發表於 2016/7/5 09:21
 樓主| 發表於 2016/7/4 10:09:14 | 顯示全部樓層
第一種 OK 沒問題

第二種
原本預設存檔路徑為 "C:\"
而我修改到 "C:\新增資料夾" 就會一直存檔到桌面上
這要怎樣修改呢?

點評

路径的最后需要有"\" 修改为:"C:\新增資料夾\" 替换代码  詳情 回復 發表於 2016/7/4 11:10
 樓主| 發表於 2016/7/4 10:09:28 | 顯示全部樓層
DaveChan 發表於 2016/6/27 14:25
第一種形式:
今天的日期-檔名.pdf
第二种形式

OK 讚
發表於 2016/7/4 11:10:40 | 顯示全部樓層
baaltsai 發表於 2016/7/4 10:09
第一種 OK 沒問題

第二種

路径的最后需要有"\"
修改为:"C:\新增資料夾\"
替换代码
  1. longstatus = Part.SaveAs3("C:\新增資料夾" & PartName & ".PDF", 0, 0)
複製代碼

點評

ok  詳情 回復 發表於 2016/7/5 09:21
 樓主| 發表於 2016/7/5 09:21:27 | 顯示全部樓層
DaveChan 發表於 2016/6/27 18:15
第二種形式:
料號-檔名-今天的日期.pdf
请测试,并告知结果

ok
修改路徑後 也ok
 樓主| 發表於 2016/7/5 09:21:40 | 顯示全部樓層
DaveChan 發表於 2016/7/4 11:10
路径的最后需要有"\"
修改为:"C:\新增資料夾\"
替换代码

ok
 樓主| 發表於 2016/7/5 09:23:00 | 顯示全部樓層
3D要轉存step檔案,出現錯誤,那要如何修改(第二種形式)?
第一種形式: 今天的日期-檔名.step --> OK

第二種形式: 料號-檔名-今天的日期.step -->有錯誤



點評

第二种形式:模型转档STEP  詳情 回復 發表於 2016/7/5 10:03
發表於 2016/7/5 10:03:33 | 顯示全部樓層
baaltsai 發表於 2016/7/5 09:23
3D要轉存step檔案,出現錯誤,那要如何修改(第二種形式)?
第一種形式: 今天的日期-檔名.step --> OK

第二种形式:模型转档STEP
  1. Dim swApp As Object
  2. Dim Part As Object
  3. Dim FilePathname As String
  4. Dim FilePath As String
  5. Dim PartName As String
  6. Dim ShortDate As String
  7. Dim ConfName As String
  8. Dim swModelDocExt As ModelDocExtension
  9. Dim swCustProp As CustomPropertyManager
  10. Dim bool As Boolean
  11. Dim val As String
  12. Dim valout As String
  13. Dim longstatus As Boolean
  14. Sub main()
  15. Set swApp = Application.SldWorks
  16. Set Part = swApp.ActiveDoc
  17. FilePathname = Part.GetPathName()
  18. FilePath = Left(FilePathname, InStrRev(FilePathname, "") - 1)
  19. PartName = Right(FilePathname, Len(FilePathname) - Len(FilePath) - 1)
  20. PartName = Left(PartName, Len(PartName) - 7)
  21. ShortDate = Format(Date, "yyyymmdd")
  22. ConfName = Part.GetActiveConfiguration.Name
  23. Set swModelDocExt = Part.Extension
  24. Set swCustProp = swModelDocExt.CustomPropertyManager(ConfName)
  25. bool = swCustProp.Get4("PartNo", False, val, valout)
  26. PartName = valout & "-" & PartName & "-" & ShortDate
  27. longstatus = Part.SaveAs3("C:" & PartName & ".STEP", 0, 0)
  28. End Sub
複製代碼

點評

都可以執行了,但出現一個很奇怪問題, 3D採用13樓的巨集轉STEP,但檔名跑出來的料號是在3D圖中 屬性-->"模型組態指定" 裡面的 PartNo 2D採用6樓的巨轉PDF及DWG,但檔名跑出來的料號是在3D圖中 屬性-->"自訂" 裡面的 Pa  詳情 回復 發表於 2016/7/5 17:09
 樓主| 發表於 2016/7/5 17:09:09 | 顯示全部樓層
DaveChan 發表於 2016/7/5 10:03
第二种形式:模型转档STEP

都可以執行了,但出現一個很奇怪問題,

3D採用13樓的巨集轉STEP,但檔名跑出來的料號是在3D圖中 屬性-->"模型組態指定" 裡面的 PartNo
2D採用6樓的巨轉PDF及DWG,但檔名跑出來的料號是在3D圖中 屬性-->"自訂" 裡面的 PartNo

能否可以3D及2D都在"自訂"或是"模型組態指定",同一個位置的PartNo

點評

将13楼代码修改为读取"自訂" 裡面的 PartNo  詳情 回復 發表於 2016/7/5 19:46
發表於 2016/7/5 19:46:16 | 顯示全部樓層
baaltsai 發表於 2016/7/5 17:09
都可以執行了,但出現一個很奇怪問題,

3D採用13樓的巨集轉STEP,但檔名跑出來的料號是在3D圖中 屬性-->"模 ...

将13楼代码修改为读取"自訂" 裡面的 PartNo
  1. Dim swApp As Object
  2. Dim Part As Object
  3. Dim FilePathname As String
  4. Dim FilePath As String
  5. Dim PartName As String
  6. Dim ShortDate As String
  7. Dim swModelDocExt As ModelDocExtension
  8. Dim swCustProp As CustomPropertyManager
  9. Dim bool As Boolean
  10. Dim val As String
  11. Dim valout As String
  12. Dim longstatus As Boolean
  13. Sub main()
  14. Set swApp = Application.SldWorks
  15. Set Part = swApp.ActiveDoc
  16. FilePathname = Part.GetPathName()
  17. FilePath = Left(FilePathname, InStrRev(FilePathname, "") - 1)
  18. PartName = Right(FilePathname, Len(FilePathname) - Len(FilePath) - 1)
  19. PartName = Left(PartName, Len(PartName) - 7)
  20. ShortDate = Format(Date, "yyyymmdd")
  21. Set swModelDocExt = Part.Extension
  22. Set swCustProp = swModelDocExt.CustomPropertyManager("")
  23. bool = swCustProp.Get4("PartNo", False, val, valout)
  24. PartName = valout & "-" & PartName & "-" & ShortDate
  25. longstatus = Part.SaveAs3("C:" & PartName & ".STEP", 0, 0)
  26. End Sub
複製代碼

點評

可應用 謝謝!!  詳情 回復 發表於 2016/7/6 15:39
 樓主| 發表於 2016/7/6 15:39:27 | 顯示全部樓層
DaveChan 發表於 2016/7/5 19:46
将13楼代码修改为读取"自訂" 裡面的 PartNo

可應用 謝謝!!
寫這樣巨集有辦法轉STP檔時,帶有設定好的顏色嗎?

點評

转换STP档带有颜色,在转换代码之前加入以下代码[attachimg]188941[/attachimg]  詳情 回復 發表於 2016/7/6 18:50
發表於 2016/7/6 18:50:10 | 顯示全部樓層
baaltsai 發表於 2016/7/6 15:39
可應用 謝謝!!
寫這樣巨集有辦法轉STP檔時,帶有設定好的顏色嗎?

转换STP档带有颜色,在转换代码之前加入以下代码
  1. swApp.SetUserPreferenceIntegerValue 75, 214
複製代碼

本帖子中包含更多資源

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

x

點評

有另外一個需求, 在自訂表格欄中,有兩列 分別為PartNo 及 Test, 當轉出 PDF 及 DWG 及 STEP 自動行程這樣檔名: 檔案名稱 : PartNoTest_圖檔檔名_日期.pdf 請問這要怎樣寫?  詳情 回復 發表於 2016/7/22 17:50
讚~~~  發表於 2016/7/7 09:03
以上的執行都OK了 謝謝!!  詳情 回復 發表於 2016/7/7 09:02
 樓主| 發表於 2016/7/7 09:02:26 | 顯示全部樓層
DaveChan 發表於 2016/7/6 18:50
转换STP档带有颜色,在转换代码之前加入以下代码

以上的執行都OK了
謝謝!!
 樓主| 發表於 2016/7/22 17:50:17 | 顯示全部樓層
DaveChan 發表於 2016/7/6 18:50
转换STP档带有颜色,在转换代码之前加入以下代码

有另外一個需求,
在自訂表格欄中,有兩列 分別為PartNo 及 Test,
當轉出 PDF 及 DWG 及 STEP 自動形成這樣檔名:PartNoTest_圖檔檔名_日期.pdf
請問這要怎樣寫?

本帖子中包含更多資源

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

x

點評

完全可以利用15#代码,做点小改动就行了  詳情 回復 發表於 2016/7/23 09:06
發表於 2016/7/23 09:06:03 | 顯示全部樓層
baaltsai 發表於 2016/7/22 17:50
有另外一個需求, 在自訂表格欄中,有兩列 分別為PartNo 及 Test,當轉出 PDF 及 DWG 及 STEP 自動形成這樣檔 ...

完全可以利用15#代码,做点小改动就行了

點評

改不出來呢~~~ 我有嘗試用成: bool = swCustProp.Get4("Test", False, val, valout) PartName = valout & "-" & PartName & "-" & ShortDate 但是是錯誤的  詳情 回復 發表於 2016/7/23 15:16
 樓主| 發表於 2016/7/23 15:16:34 | 顯示全部樓層
DaveChan 發表於 2016/7/23 09:06
完全可以利用15#代码,做点小改动就行了

改不出來呢~~~
我有嘗試用成:
bool = swCustProp.Get4("Test", False, val, valout)
PartName = valout & "-" & PartName & "-" & ShortDate

但是是錯誤的
發表於 2016/7/23 20:07:52 | 顯示全部樓層
baaltsai 發表於 2016/7/23 15:16
改不出來呢~~~
我有嘗試用成:
bool = swCustProp.Get4("Test", False, val, valout)
  1. Dim swApp As Object
  2. Dim Part As Object
  3. Dim FilePathname As String
  4. Dim FilePath As String
  5. Dim PartName As String
  6. Dim ShortDate As String
  7. Dim swModelDocExt As ModelDocExtension
  8. Dim swCustProp As CustomPropertyManager
  9. Dim bool As Boolean
  10. Dim val As String
  11. Dim valout As String
  12. Dim val1 As String
  13. Dim valout1 As String
  14. Dim longstatus As Boolean
  15. Sub main()
  16. Set swApp = Application.SldWorks
  17. Set Part = swApp.ActiveDoc
  18. FilePathname = Part.GetPathName()
  19. FilePath = Left(FilePathname, InStrRev(FilePathname, "") - 1)
  20. PartName = Right(FilePathname, Len(FilePathname) - Len(FilePath) - 1)
  21. PartName = Left(PartName, Len(PartName) - 7)
  22. ShortDate = Format(Date, "yyyymmdd")
  23. Set swModelDocExt = Part.Extension
  24. Set swCustProp = swModelDocExt.CustomPropertyManager("")
  25. bool = swCustProp.Get4("PartNo", False, val, valout)
  26. bool = swCustProp.Get4("Test", False, val1, valout1)
  27. PartName = valout & valout1 & "-" & PartName & "-" & ShortDate
  28. longstatus = Part.SaveAs3("C:" & PartName & ".STEP", 0, 0)
  29. End Sub
複製代碼

點評

謝謝 驗證OK  詳情 回復 發表於 2016/7/25 09:16
謝謝 驗證OK  詳情 回復 發表於 2016/7/25 09:16
 樓主| 發表於 2016/7/25 09:16:57 | 顯示全部樓層
 樓主| 發表於 2016/7/25 09:16:58 | 顯示全部樓層
 樓主| 發表於 2022/2/9 14:22:46 | 顯示全部樓層
之前都是採用下面的巨集來轉檔,都是抓 摘要資訊 --> 自訂 裡面的資料,
要修改巨集,能否有心人幫忙修改為 摘要資訊 --> 模型組態指定 裡面的資料,
已嘗試修改,但失敗了。
  1. Dim swApp As Object
  2. Dim Part As Object
  3. Dim FilePathname As String
  4. Dim FilePath As String
  5. Dim PartName As String
  6. Dim ShortDate As String
  7. Dim swView As SldWorks.View
  8. Dim swDrawModel As SldWorks.ModelDoc2
  9. Dim swModelDocExt As ModelDocExtension
  10. Dim swCustProp As CustomPropertyManager
  11. Dim bool As Boolean
  12. Dim val As String
  13. Dim valout As String
  14. Dim val1 As String
  15. Dim valout1 As String
  16. Dim longstatus As Boolean

  17. Sub main()

  18. Set swApp = Application.SldWorks

  19. Set Part = swApp.ActiveDoc
  20. Part.ViewZoomtofit2
  21. FilePathname = Part.GetPathName()
  22. FilePath = Left(FilePathname, InStrRev(FilePathname, "") - 1)
  23. PartName = Right(FilePathname, Len(FilePathname) - Len(FilePath) - 1)
  24. PartName = Left(PartName, Len(PartName) - 7)
  25. ShortDate = Format(Date, "yyyymmdd")

  26. Set swView = Part.GetFirstView

  27. Set swView = swView.GetNextView

  28. If swView Is Nothing Then
  29.     MsgBox "當前工程圖未找到視窗"
  30. Exit Sub
  31. End If
  32. Set swDrawModel = swView.ReferencedDocument

  33. Set swModelDocExt = swDrawModel.Extension

  34. Set swCustProp = swModelDocExt.CustomPropertyManager("")
  35. bool = swCustProp.Get4("Part number", False, val, valout)
  36. bool = swCustProp.Get4("PAC", False, val1, valout1)
  37. PartName = valout & valout1 & "_" & PartName & "_" & ShortDate
  38. longstatus = Part.SaveAs3("D:" & PartName & ".DWG", 0, 0)
  39. End Sub
複製代碼


點評

[*]裡面有一行 Set swCustProp = swModelDocExt.CustomPropertyManager("")←你沒有指定模型組態名稱 可能是因為這樣所以你抓不到資訊  詳情 回復 發表於 2022/8/3 21:44
發表於 2022/8/3 21:44:54 | 顯示全部樓層
baaltsai 發表於 2022/2/9 14:22
之前都是採用下面的巨集來轉檔,都是抓 摘要資訊 --> 自訂 裡面的資料,
要修改巨集,能否有心人幫忙修改為 ...

  • 裡面有一行  Set swCustProp = swModelDocExt.CustomPropertyManager("")←這地方如果要指定模型組態時需輸入組態名稱,不輸入時會到自訂的組態
  • 如下圖示↓↓

本帖子中包含更多資源

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

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

本版積分規則

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

GMT+8, 2024/4/17 05:16 , Processed in 0.140295 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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