Private Sub cmdDraw_Click()
Form1.Hide
Dim swapp As Object
Dim part As Object
Set swapp = CreateObject("Sldworks.Application") '創建或獲取SldWorks物件
Set part = swapp.NewDocument(CurrentDir + "\temp\軸承.prtdot", 0, 0, 0) '打開模型
Dim fileName As String
fileName = part.gettitle '獲得檔案名
Dim CurCFG As Object
Set CurCFG = part.GetActiveConfiguration() '獲得配置
Dim ConfName As String
ConfName = CurCFG.Name '獲得配置名稱
boolstatus = part.Extension.SelectByID("D6@草圖1@" + fileName + ".SLDPRT", "DIMENSION", 0.1448, 0.0612, -0.0165, False, 0, Nothing)
part.Parameter("D6@草圖1").SystemValue = txtWj.Caption / 1000 '更改目標外徑
boolstatus = part.Extension.SelectByID("D1@草圖1@" + fileName + ".SLDPRT", "DIMENSION", 0.041, -0.0415, 0.00516, False, 0, Nothing)
part.Parameter("D1@草圖1").SystemValue = txtNj.Caption / 1000 '更改目標內徑
boolstatus = part.Extension.SelectByID("D4@草圖1@" + fileName + ".SLDPRT", "DIMENSION", -0.00518, 0.05451, -0.008906, False, 0, Nothing)
part.Parameter("D4@草圖1").SystemValue = txtHd.Caption / 1000 '更改目標厚度
part.EditRebuild
part.ShowNamedView2 "*等軸測", 7
part.ViewZoomtofit2
'添加屬性
part.AddCustomInfo3 ConfName, "代號", swCustomInfoText, txtBs.Caption
part.AddCustomInfo3 ConfName, "名稱", swCustomInfoText, "單列向心球軸承"
Form1.Show
End Sub
uj5u.com熱心網友回復:
不知LZ哪兒搞得代碼?
uj5u.com熱心網友回復:
Sldworks 機械行業一個比較有名的CAM軟體。

這個跟“行業”的相關性比較大。
圍觀一下…………
uj5u.com熱心網友回復:
如果是“ fileName = part.gettitle ”這句提示91錯誤,顯然,前面的那句:Set part = swapp.NewDocument(CurrentDir + "\temp\軸承.prtdot", 0, 0, 0) '打開模型
沒有成功執行,樓主應該查一下:
1. 文件路徑是否正確?
CurrentDir有可能會隨“作業環境”及指令代碼的執行而變化,你應該在此句處設定斷點,
當執行到此句時,確認一下“CurrentDir”是否為你需要的路徑!
2. 你確定“打開”已有的工程檔案,不是用的“Openxxxxx”的函式,而是這個“Newxxxxx”的函式?
3. 查一下相關檔案,確認一下你的“NewDocument( )”傳的另外幾個引數是否正確(假設確實是用這個函式)。
uj5u.com熱心網友回復:
Set swapp = CreateObject("Sldworks.Application")這句也最好檢查一下,執行完了以后swapp是不是又物件生成了。加個監視啥的,看這句執行前后swapp有沒有東西。
如果上面這句沒問題那問題就必然出在下一句。
Set part = swapp.NewDocument(CurrentDir + "\temp\軸承.prtdot", 0, 0, 0)
樓上對這句的分析已經很詳細了
uj5u.com熱心網友回復:
VBA扎根于各類行業軟體了,不知道哪些用vb排行語言的是不是把這些也都算入了。樓主你單步除錯對part右擊添加監視看看。
Set part = swapp.NewDocument(CurrentDir + "\temp\軸承.prtdot", 0, 0, 0)
這里再改用全路徑測驗看看是不是檔案路徑問題,然后后面3個引數仔細研究下,是不是打開了要前端顯示啥的,記得以前用com打開ppt檔案要操作還得設定個引數的,不然都是無法操作物件。
uj5u.com熱心網友回復:
Set swapp = CreateObject("Sldworks.Application")肯定執行成功了的,要不然它的下一句就沒法執行了,在執行那一句時就會報錯;
而不是在后面的 fileName = part.gettitle才報錯。
uj5u.com熱心網友回復:
注釋掉所有On Error Resume Next陳述句,在IDE中運行,出錯后點擊除錯,游標會停在出錯的那條陳述句處,
或者
事先在懷疑可能有邏輯錯誤的陳述句處設定斷點,運行經過斷點時中斷,
此時可以在立即視窗中使用
?變數名
或
?函式名(函式引數)
或
程序名(引數)
輔助除錯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/57426.html
標籤:VBA
