在VBA im Solidworks中选择特定视图

在VBA im Solidworks中选择特定视图,vba,solidworks,Vba,Solidworks,我有一个宏,它使用以下代码选择SolidWorks图形中的视图 Set swDraw = swApp.ActiveDoc Set swView = swDraw.GetFirstView Set swView = swView.GetNextView 如何更改此选项以选择名为“Drawing View1”的视图?假设您的swView对象的类型为iView,则可以使用GetName2方法获取名称。因此,您可以使用已经使用的GetNextView方法枚举图形中的每个视图,并检查名称是否

我有一个宏,它使用以下代码选择SolidWorks图形中的视图

Set swDraw = swApp.ActiveDoc  
Set swView = swDraw.GetFirstView  
Set swView = swView.GetNextView  

如何更改此选项以选择名为“
Drawing View1
”的视图?

假设您的
swView
对象的类型为
iView
,则可以使用
GetName2
方法获取名称。因此,您可以使用已经使用的
GetNextView
方法枚举图形中的每个视图,并检查名称是否匹配

它并没有很好的文档记录,但值得一提的是,
GetNextView
方法在枚举结束后返回一个空引用指针(例如vb中的
nothing

Set swDraw = swApp.ActiveDoc  
Set swView = swDraw.GetFirstView  
Do While Not swView is Nothing
    If swView.GetName2 = "Drawing View1" then Exit Do
    Set swView = swView.GetNextView  
Loop
  • 使用此方法:
  • 其中Name=“图形视图1”
  • Type=“DRAWINGVIEW”
  • 十、 Y,Z=0(如果未知)
  • 返回类型(值)为布尔值
  • i、 e

    Dim instance As IModelDocExtension
    value = instance.SelectByID2(Name, Type, X, Y, Z, Append, Mark, Callout, SelectOption)
    
    Set Part = swApp.OpenDoc6(drawpathandfile, 3, 0, "", longstatus, longwarnings)
    Dim swDrawing   As Object
    Set swDrawing = Part
    Set Part = swApp.ActiveDoc
    Dim myModelView As Object
    Set myModelView = Part.ActiveView
    myModelView.FrameLeft = 0
    myModelView.FrameTop = 33
    Set myModelView = Part.ActiveView
    myModelView.FrameState = swWindowState_e.swWindowMaximized
    swApp.ActivateDoc2 "Drawing View1", False, longstatus
    Set Part = swApp.ActiveDoc
    Set myModelView = Part.ActiveView
    myModelView.FrameState = swWindowState_e.swWindowMaximized