CAX玩家論壇  

返回   CAX玩家論壇 > 技術討論區 > SolidWorks > SolidWorks 教學區
註冊 論壇輔助說明 會員名單 行事曆事件 標記討論區已讀 統計

回覆
 
主題工具
舊 2017-08-08   #41
Francis
西獨
 
Francis 的頭像
 
註冊日期: 2007-08-17
文章: 1137
聲望力: 18
聲望: 199 Francis 是一位成功的新星Francis 是一位成功的新星
預設

引用:
作者: 287636713 檢視文章

是的,只能修改單一圖頁。
基礎太差,暫時只能做到這樣。
SetupSheet4函數還沒怎麼搞懂。
到現在連一個簡單的 For 循環也不會用?

悶人在此懇請有朋友可以協助一下28大.
Francis 目前離線   回覆時引用此篇文章
舊 2017-08-08   #42
287636713
工程師
 
註冊日期: 2010-11-25
文章: 643
聲望力: 0
聲望: 10 287636713 正向着好的方向發展
預設

引用:
作者: Francis 檢視文章
到現在連一個簡單的 For 循環也不會用?
悶人在此懇請有朋友可以協助一下28大.
謝謝悶大關注。
以這個作為一個起點,俺28慢慢來學習SWAPI.
俺28比較愚鈍,學習週期比較長,慢點沒關係,俺28堅持下去就好啦。
287636713 目前離線   回覆時引用此篇文章
舊 2017-08-08   #43
Francis
西獨
 
Francis 的頭像
 
註冊日期: 2007-08-17
文章: 1137
聲望力: 18
聲望: 199 Francis 是一位成功的新星Francis 是一位成功的新星
預設

看到28大冒汗的樣子心有不忍, 嘗試解說一下, 如有遺漏, 請各位補充.

程式碼:
Sub Main()'程序開端
Set swApp = Application.SldWorks'建立SW對象
Set Drawing = swApp.ActiveDoc'建立文件對象
If Drawing.GetType <> 3 Then Exit Sub'不是工程圖>離開
RetoreSheetName = Drawing.GetCurrentSheet.GetName'記錄現正處於的圖頁
SheetName = Drawing.GetSheetNames'獲取文件內所有圖頁名稱
SheetCount = Drawing.GetSheetCount'獲取文件有多少圖頁
For i = 0 To SheetCount - 1'循環,變量i為整數,0代表第一頁,1代表第二頁,如此類推,最後一頁的i是總頁數減一.
    Drawing.ActivateSheet SheetName(i)'逐頁激活
    swTemplate = Drawing.GetCurrentSheet.GetTemplateName'獲取激活頁的模板檔案名稱(連完整路徑)
    swTemplatePath = Split(swTemplate, "\")'分拆文字成為矩陣
    swTemplate = swTemplatePath(UBound(swTemplatePath))'獲取不含路徑的模板檔案名稱
    vSheetProps = Drawing.GetCurrentSheet.GetProperties()'獲取圖頁的屬性矩陣
    Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 0, 0, vSheetProps(2), vSheetProps(3), vSheetProps(4), "", 1, 1, ""'先清空模板檔案名稱
    Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 12, 12, vSheetProps(2), vSheetProps(3), vSheetProps(4), swTemplate, 0, 0, ""'再設定模板檔案名稱, 以確保不殘留本來的路徑
    vSheetProps = Drawing.GetCurrentSheet.GetProperties()'此句是多餘的
Next'返回循環(有100頁就循環100次)
Drawing.ActivateSheet RetoreSheetName'返回以記錄的圖頁
End Sub'完結程序
Francis 目前離線   回覆時引用此篇文章
舊 2017-08-08   #44
Francis
西獨
 
Francis 的頭像
 
註冊日期: 2007-08-17
文章: 1137
聲望力: 18
聲望: 199 Francis 是一位成功的新星Francis 是一位成功的新星
預設

按照38樓28大的意願, 可修改成如下:
程式碼:
Sub Main()
Const swTemplate As String = "D:\Sheet Format\a4 - landscape.slddrt"
Set swApp = Application.SldWorks
Set Drawing = swApp.ActiveDoc
If Drawing.GetType <> 3 Then Exit Sub
RetoreSheetName = Drawing.GetCurrentSheet.GetName
SheetName = Drawing.GetSheetNames
SheetCount = Drawing.GetSheetCount
For i = 0 To SheetCount - 1
    Drawing.ActivateSheet SheetName(i)
    vSheetProps = Drawing.GetCurrentSheet.GetProperties()
    Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 12, 12, vSheetProps(2), vSheetProps(3), vSheetProps(4), swTemplate, 0, 0, ""
Next
Drawing.ActivateSheet RetoreSheetName
End Sub
Francis 目前離線   回覆時引用此篇文章
舊 2017-08-08   #45
287636713
工程師
 
註冊日期: 2010-11-25
文章: 643
聲望力: 0
聲望: 10 287636713 正向着好的方向發展
預設

先謝謝悶大分享的代碼教學。
俺28先收下啦。
287636713 目前離線   回覆時引用此篇文章
舊 2018-02-12   #46
Niker
助理工程師
 
註冊日期: 2018-01-12
文章: 23
聲望力: 0
聲望: 11 Niker 正向着好的方向發展
預設

來學習,謝謝闷大分享………………
Niker 目前離線   回覆時引用此篇文章
舊 2018-02-23   #47
st00084
工程師
 
註冊日期: 2012-09-01
文章: 67
聲望力: 0
聲望: 11 st00084 正向着好的方向發展
預設

批量轉換圖頁格式此功能已於SOLIDWORKS 2017版上架
點選圖頁>屬性>選擇圖頁格式>選擇要修改的圖頁>勾選要批量轉換的圖頁。
st00084 目前離線   回覆時引用此篇文章
舊 4 週前   #48
Yoo
助理工程師
 
註冊日期: 2016-05-22
文章: 4
聲望力: 0
聲望: 11 Yoo 正向着好的方向發展
預設

謝謝提供檔案,學習了
Yoo 目前離線   回覆時引用此篇文章
回覆


目前檢視此主題的會員: 1 (0 位會員和 1 位遊客)
 
主題工具

發表文章規則
不可以發表新主題
不可以回覆主題
不可以上傳附件
不可以編輯您的文章

開啟 vB 代碼
關閉 HTML 程式碼
論壇跳轉


所有時間均為中原標準時間。現在的時間是 03:34 AM


Powered by vBulletin® 版本 3.6.7
版權所有 ©2000 - 2018,Jelsoft Enterprises Ltd.