2017-01-30 55 views
0

真的很感謝誰可以花幾分鐘幫助我,所以先謝謝了!SolidWorks API,宏在VSTA中工作,但不是從DLL

讓自己陷入在VSTA works (vb.net)中運行宏的情況,但是從固體作品運行dll文件不起作用。可能忘記了一些非常簡單的事情。原理是文本文件在同一文件夾中的DLL文件,在默認情況下從該文件夾讀不長的位置「串」

這個作品在VSTA和建設的dll(很簡單)

Partial Class SolidWorksMacro 
    Public Sub main() 
     Dim Model As ModelDoc2 = swApp.ActiveDoc 
     Dim LayerName As String = "Stamp" 
     MsgBox(LayerName) 
    End Sub 
    Public swApp As SldWorks 
End Class 

沒有我之後想要以從文本文件讀取圖層名稱的方式執行相同的操作。從VSTA運行的時候,但建設以DLL和固體工作運行後提示錯誤它的工作原理:無法打開

"Location"\macro.dll.

Partial Class SolidWorksMacro 
    Public Sub main() 
     Dim Model As ModelDoc2 = swApp.ActiveDoc 
     Dim LayerName As String = "Stamp" 
     Dim FileName As String = "LayerName.txt" 
     Dim LayerName As String 
     Dim sr As New StreamReader(FileName) 
     LayerName = sr.ReadLine 
     MsgBox(LayerName) 
    End Sub 
    Public swApp As SldWorks 
End Class 

回答

1

你是如何運行的代碼計劃?您將需要構建額外的功能來通過SOLIDWORKS的API創建按鈕/任務窗格/屬性頁面,以瞭解您想要執行的操作。這比運行宏稍微複雜一些。你爲你的項目添加了什麼參考?您將需要至少補充:

  • SolidWorks.Interop.sldworks
  • SolidWorks.Interop.swpublished

你正確地實施該ISwAddin接口?另外,我沒有太多的運氣,只是用SOLIDWORKS打開一個DLL,我使用regasm.exe來註冊COM DLL或創建一個wix安裝程序來創建註冊表項,如果分發到多臺機器。

API幫助中的Getting Started頁面將很好地參考一些示例以及如何配置您的環境。

+0

加1爲anwser –

+0

我知道這些事情,並已計算出來。爲了SolidWorks運行dll宏,必須安裝VSTA。正如我所說,這是更大代碼的一部分,如果我使用示例1,它適用於VSTA和Solidworks,如果我使用示例2,它適用於VSTA,但不適用於SolidWorks .... VSTA使用visual studio 2005 .... – Alar

相關問題