2

我在visual sutio 2010中创建了表单并添加了按钮,当用户单击该按钮时,它应该打开Solid Works工具,因此代码是:

Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swconst
Imports System.Runtime.InteropServices
Imports System
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)        Handles Button1.Click
    Dim swDoc As ModelDoc2 = Nothing
    Dim swPart As PartDoc = Nothing
    Dim swDrawing As DrawingDoc = Nothing
    Dim swAssembly As AssemblyDoc = Nothing
    Dim boolstatus As Boolean = False
    swDoc = CType(swApp.NewDocument("C:\ProgramData\SolidWorks\SolidWorks 2012\templates\Part.prtdot", 0, 0, 0), ModelDoc2)
    swDoc = CType(swApp.ActiveDoc, ModelDoc2)
    boolstatus = swDoc.Extension.SelectByID2("Top Plane", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
    swDoc.SketchManager.InsertSketch(True)
    Dim skSegment As SketchSegment = Nothing
    skSegment = CType(swDoc.SketchManager.CreateCircle(-0.020947, 0.005368, 0, 0.012306, -0.016627, 0), SketchSegment)
    boolstatus = swDoc.EditRebuild3()
End Sub
End Class

但不幸的是我在导入时遇到错误请帮助我错误是:

导入不包含任何公共成员或找不到

4

2 回答 2

2

如果您想从应用程序启动 SolidWorks(单击按钮并启动 SoWo),那么您应该:

1)向 SolidWorks Interop 库添加必要的参考(正如 Vladyslav Litunovsky 正确指出的那样)

2) “附加/连接”到 SolidWorks 应用程序(对象),以便让您的应用程序启动并使用 SolidWorks。

如果您需要精确控制要附加的 SolidWorks 会话(即,如果超过 1 个正在运行),那么事情会变得更加密集,因为您必须使用 ROT (RunningObjectTable),您可以在其中获取可能正在运行 SolidWorks 实例。

一般来说,你可以使用

Set swApp = CreateObject("SldWorks.Application")

或版本相关实例(在本例中为 21 = 2013),如果您在目标系统上拥有多个版本并希望准确运行特定版本:

Set swApp = CreateObject("SldWorks.Application.21") // 

这会附加到现有的 SolidWorks 会话或创建一个新会话。

请注意,以编程方式启动和结束 SolidWorks 会话确实涉及控制会话应如何终止和/或显示的附加参数/属性。

您可以查看更多详细信息(显示如何实例化和控制 SolidWorks 会话):

http://help.solidworks.com/2013/English/api/sldworksapi/solidworks_visible_or_background_example_vb.htm

于 2014-01-19T14:46:10.200 回答
2

将这些 dll 作为参考添加到您的项目中:
SolidWorks.Interop.sldworks.dll
SolidWorks.Interop.swconst.dll
这些 dll 位于 Solidworks 文件夹中。在我的电脑上是
C:\Program Files\SolidWorks Corp\SolidWorks\

于 2012-12-05T17:00:16.603 回答