SolidWorks API,Macro在VSTA中工作但不在dll中工作

时间:2017-01-30 04:55:12

标签: vb.net macros solidworks vsta

真的很感激谁可以花几分钟来帮助我,所以提前感谢!

让我自己进入VSTA works (vb.net)中运行宏的情况,但是从实体工作中运行dll文件不起作用。可能会忘记一些非常简单的事情。原则是文本文件与dll文件位于同一文件夹中,默认情况下从该文件夹中读取没有长位置“string”

这适用于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并从实体工作运行后,它会出错:无法打开

  

“位置” \ 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 个答案:

答案 0 :(得分:1)

您打算如何运行代码?您必须构建其他功能,以通过SOLIDWORKS API创建按钮/任务窗格/属性页,以了解您要执行的操作。它比运行宏稍微复杂一点。您在项目中添加了哪些参考?您至少需要添加:

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

您是否正确实施了ISwAddin界面?另外,我没有太多运气只是用SOLIDWORKS打开一个DLL,我使用regasm.exe注册COM DLL或创建一个wix安装程序来创建注册表项,如果分发到多台机器。

API帮助中的Getting Started页面可以很好地参考一些示例以及如何配置环境。