Solidworks 2013 - Обновление макроса и его ошибок в GetCurrentSheet

Set swDocument = Application.SldWorks.ActiveDoc
Set Sheet = swDocument.GetCurrentSheet
MySheet = Sheet.GetName
MyPath = swDocument.GetPathName
Const swSelNOTES = 15

Я беру макрос Solidworks 2010 и пытаюсь обновить его до Solidworks 2013, и мне кажется, что они удалили / обесценили свойство GetCurrentSheet на Application.SldWorks.ActiveDoc. Кто-нибудь знает текущий метод его получения?


person Mytheral    schedule 12.09.2013    source источник


Ответы (1)


Насколько я помню и знаю, никогда не было метода GetCurrentSheet для объекта ModelDoc2, это фактически метод DrawingDoc < / strong> тип.

Итак, читая ваш код, я предполагаю, что ActiveDoc не является DrawingDoc. Чтобы быть уверенным, просто используйте:

Dim swApp       as SldWorks
Dim swDrawing   as DrawingDoc
Dim swDocument  as ModelDoc2

Set swApp      = Application.SldWorks
Set swDocument = swApp.ActiveDoc 
Set swDrawing  = swDocument

If swDrawing is Nothing Then
   MsgBox "No valid drawing doc!"
   Exit Sub
End If

Or

Dim swApp       as SldWorks
Dim swDrawing   as DrawingDoc
Dim swDocument  as ModelDoc2

Set swApp      = Application.SldWorks
Set swDocument = swApp.ActiveDoc 

If swDocument.GetType() <> swDocumentTypes_e.swDocDRAWING Then
   MsgBox "No valid drawing doc!"
   Exit Sub
Else 
    Set swDrawing  = swDocument
End If

И вы знаете, так ли это. Я также рекомендую вам проверить следующую дополнительную информацию из документации API:

http://help.solidworks.com/2013/English/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.idrawingdoc~getcurrentsheet.html

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

person alphabit    schedule 19.01.2014