SolidWorks机械工程师网——最大的SolidWorks学习平台

标题: 同步電腦系統時間 [打印本页]

作者: huang302    时间: 2013-12-24 23:35
标题: 同步電腦系統時間
請幫忙測試,時鐘是否能夠同步電腦系統時間
裡面的繁體字須更改為簡体,並對應秒分時三針的角度尺寸(請解除隱藏顯示)
' ******************************************************************************
' macro recorded on 12/24/13 by lsc
' 功能:同步電腦系統時間
'
' 操作說明:
' 1. 打開 now time.SLDDRW 檔.
' 2. 執行 Macro1.swp 巨集()
' 3. 須停止執行巨集()時,請同時按下 Ctrl-Pause Break 兩鍵.
'
' ******************************************************************************
Dim swApp As Object
Dim Part As Object
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Dim sec_rad As Double
Dim myDimension_s As Object
Dim myDimension_m As Object
Dim myDimension_h As Object
Set myDimension_s = Part.Parameter("D8@草圖1") '對應工程圖秒針角度值
Set myDimension_m = Part.Parameter("D9@草圖1") '對應工程圖分針角度值
Set myDimension_h = Part.Parameter("D10@草圖1") '對應工程圖時針角度值
pi = 4 * Atn(1)
sec = Second(Time)
sec_rad = sec * pi / 30
myDimension_s.SystemValue = sec_rad '執行程式起始的系統秒
While hor < 13
sec = Second(Time) '系統秒
min = Minute(Time) '系統分
hor = Hour(Time) Mod 12 '系統時(12小時制)
sec_rad = sec * pi / 30 '秒針轉動弧度
min_rad = min * pi / 30 '分針轉動弧度
hor_rad = hor * pi / 6 + (min * pi / 360) '時針轉動弧度
myDimension_s.SystemValue = sec_rad
myDimension_m.SystemValue = min_rad
myDimension_h.SystemValue = hor_rad
Set myModelView = Part.ActiveView
myModelView.RotateAboutCenter 0, 0
Wend
End Sub

now time.rar (27.14 KB, 下载次数: 63) [2012版]
Macro1.rar (8.18 KB, 下载次数: 12)
作者: andy_yyong    时间: 2013-12-25 03:03
試過了
,能同步


作者: wz3894873    时间: 2013-12-25 08:33
謝謝工程师的測試及評分,
本例碰到的問題是0和180度不知道如何處理較好.
作者: zy1774109703    时间: 2013-12-25 09:46


作者: wlylv    时间: 2013-12-25 19:11
很有趣的思維~經指導後測試成功,謝謝梁兄分享!


作者: ninul    时间: 2013-12-26 00:45
的確,角度限制會出現180°跳動的情況,附件略作如下修改:
1. 弧長代替角度,並修改了內碼配合
2. 新增圖層放置建構圖元,再隱藏該圖層
3. 呼叫Windows API的延遲功能,再放到循環裡,從而減小消耗系統資源。
Data.rar (46.23 KB, 下载次数: 12)
作者: yqh125    时间: 2013-12-26 07:53
工程师修改後的可以直接抓取系統時間,無需手動調整。


作者: 2585637429    时间: 2013-12-26 09:18
有趣的建模。。。
作者: liufeigskyd    时间: 2013-12-26 14:47
謝謝指導了


作者: liangaaaa    时间: 2013-12-27 09:11
測試後有兩個問題
1. 中斷再執行,有時會如下圖所示,執行就會出錯?

2.Debug.Print 的使用不瞭解,所謂的 &quot; [立即] 視窗 &quot; 是指 vba 偵錯的 &quot; 監看視窗 &quot; 嗎?但是又看不到變數值!

作者: hanqiang    时间: 2013-12-27 10:56
厉害啊!
作者: 尋夢    时间: 2013-12-27 12:32
顶梁大!
作者: 437730657    时间: 2013-12-27 14:09
1. 簡體的問題,草圖名稱不對。
2. 立即窗口可在功能表檢視中開啟。
作者: gts003320    时间: 2013-12-27 20:25
受教了,非常感謝!
作者: kpmaw7CdT    时间: 2013-12-28 08:23
有没有扫盲版教程啊????

作者: niyabizui    时间: 2013-12-28 08:42
什麼是扫盲版??

作者: 15298533113    时间: 2013-12-28 19:04
就是能让我们这些盲入门的教程。
看着大王、梁大玩得这么有趣,眼热啊
作者: JokerLock    时间: 2013-12-28 22:23
建議試著了解編程的每個指令,在vba窗口按 F1鍵,可以查到指令的用法例子,有問題提出討論,
我也是一個個指令學習過來的,指令瞭解了,最精彩的是如何構思把指令拼成你想要的結果,
一道努力了!

作者: 胡辉明    时间: 2013-12-28 22:28
感謝蛋大測試。

看到蛋大的動畫中的秒針在12時位置有跳格,才想起弧長不能是零。
暫時想到在內的sec_rad = 0.046 * (sec * pi / 30)再加多一點點(例如0.000001)避開零值。
作者: wuct88    时间: 2013-12-28 23:55
報告工程师,如您所說的設置經測試後,
可以解決59&quot;~01&quot;的停滯問題,
但是其他秒數會有一次跳動2秒的問題。

作者: liushuai123    时间: 2013-12-29 01:45
另外可以解決在一個,自訂表單(userform)的Flash時間和工程圖的時間同步動作嗎?
目前只能作到執行時只有工程圖時間動作,中斷(按下Ctrl-Pause Break兩鍵)時只有自訂表單(userform)的Flash時間動作.

作者: ljq0210    时间: 2013-12-29 08:00
1. 解決59&quot;~01&quot;的停滯問題
   試試在   Debug.Print hor_rad 之下,加入如下:   
    If sec_rad = 0 Then
    sec_rad = 0.0001
    End If
2. 其他跳格,可以試試,把如下去除,再不行也把 sleep 去掉看看.
    'Debug.Print sec_rad
    'Debug.Print min_rad
    'Debug.Print hor_rad




欢迎光临 SolidWorks机械工程师网——最大的SolidWorks学习平台 (https://www.swbbsc.com/) Powered by Discuz! X3.2