2017-01-30 8 views
0

本当にありがとうございました。SolidWorks API、マクロはVSTAで動作しますが、DLLではなく

マクロを実行しているところがVSTA works (vb.net)ですが、実体のある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を構築した後(非常に単純な)dllファイルと、デフォルトでは、長い場所「文字列」せずにそのフォルダから読み込むように、そのテキストファイルが同じフォルダ内にあるんI

ではありませんテキストファイルからレイヤー名を読み込む方法で同じことをしたい。 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
  • は、あなたが適切ISwAddinインタフェースを実装している

をSolidWorks.Interop.swpublished?また、私はSOLIDWORKSでDLLを開くだけでなく、regasm.exeを使用してCOM DLLを登録するか、複数のマシンに配布する場合はレジストリエントリを作成するためのwixインストーラを作成します。

APIヘルプのGetting Startedページは、いくつかの例と環境の設定方法を参照してください。

+0

プラスanwserのために1 –

+0

私はそれらのことを知り、それらを理解しました。 SolidWorksでdllマクロを実行するには、VSTAをインストールする必要があります。私はこれが大きなコードの一部であると言っています。例1を使用すると、VSTAとSolidworksで動作します。例2を使用するとVSTAでは動作しますが、SolidWorksでは動作しません。 VSTAはVisual Studio 2005を使用します.... – Alar

関連する問題