У меня нормально работает следующий код (упрощенно):
'===============================================================
Public Function DrawDocIsOpen(ByVal ffnDraw As String, _
ByRef bWasClosed As Boolean, _
ByVal swOpenDocOpt As swOpenDocOptions_e) As Boolean
Dim oModelDoc As SldWorks.ModelDoc2
Set oModelDoc = Nothing
DrawDocIsOpen = False
If moSW Is Nothing Then Exit Function
Set oModelDoc = moSW.GetOpenDocument(ffnDraw)
bWasClosed = oModelDoc Is Nothing
If bWasClosed Then
Скорее всего рост памяти связан с тем, что чертёж требуется обязательно отобразить. Память тут очищать бессмысленно, ибо если при обычном показе окна всё норм.
Так же, изучите зачем нужен DispatchWrapper
Нет ничего проще - если в обычной среде: создаешь фигурным фланцем цилиндрическую деталь (разомкнутую естественно), затем разгибаешь ее с помощью команды разогнуть, затем делаешь буртики на разогнутой детали соответствующей командой, и потом сгибаешь обратно командой Согнуть снова. деталь готова.
Прикольная фишка во время редактирования эскиза - клавиша ALT + клик по области -> выбор области эскиза
Клавиша ALT + клик по линии -> выбор цепочки линий
С кликом и Ctrl или Shift + Alt области/цепочки добавляются к предыдущему выбору. Это аналог контекстного меню меню -> Инструмент выбора контура/Выбор цепочки. Немного сокращает мышедвижения )