Тема: TechnologiCS и Pro/Engineer

Здравствуйте.
У нас есть необходимость интеграции TechnologiCS с Pro/Engineer. Дело в том, что у Pro/Engineer версии документа указываются в последнем расширении файла (например *.prt.2), т. е. после  редактирования и сохранения документа последняя версия будет записана в новый файл, и например, эскизу надо будет переназначить ссылку на этот новый файл, и так при каждом редактировании.
Кроме того, для добавления файлов с разными версиями приходится каждый раз создавать новый тип файла с соответствующим расширением.
Каким образом можно решить проблемы такого рода? Заранее спасибо за ответ.

Re: TechnologiCS и Pro/Engineer

Хм .Так сразу и не скажешь. А версия TechnologiCS какая?

Re: TechnologiCS и Pro/Engineer

версия 5-я

Re: TechnologiCS и Pro/Engineer

а точнее? их три у нас.

В текущих версиях эта проблема скорей всего не решается в нормальном виде (обдумываем сейчас). Но можно попробовать решить ее на макросах хоть как-то упростив работу. Возможно все таки можно как то настроить Pro/Engineer.

Re: TechnologiCS и Pro/Engineer

версия - 5.0.2.0

Re: TechnologiCS и Pro/Engineer

Ну вот небольшое макрос, который несколько облегчит работу (но не решит проблему).

Зайдите в справочник TechnologiCS Заблокированные документы  и добавьте в модуль вот такой код

Const PRO_ENG_DOCTYPE = "Документ Pro/Engineer"
Const PRO_FILE_TYPE = "Файл Pro/Engineer"

Sub FormMacro_CloseProEngDOCs(TCSActiveModule) 'Закрыть документы Pro/Engineer 
  Call DoCloseProEngDOCs( TCSActiveModule, True )
End Sub



Sub FormMacro_RefreshProEngDOCs(TCSActiveModule) 'Обновить документы Pro/Engineer
  Call DoCloseProEngDOCs( TCSActiveModule, False )
End Sub

Sub DoCloseProEngDOCs( TCSActiveModule, DoClose )
  If TCSActiveModule.Properties("TYPE_NOTE").AsString<>PRO_ENG_DOCTYPE Then
    Call TCSApp.ShowErrorMessage( "Документ не является документом '" + PRO_ENG_DOCTYPE + "'! Не могу продолжать работу." )
    Exit Sub
  End If
  TCSApp.FileTypes.Filter.Active = False
  Call TCSApp.FileTypes.Refresh
  Call TCSApp.FileTypes.First
  If Not TCSApp.FileTypes.Locate( "DESC", PRO_FILE_TYPE, 0 )  Then 
    Call TCSApp.ShowErrorMessage( "Не могу найти тип файла '" + PRO_FILE_TYPE + "'! Не могу продолжать работу." )
    Exit Sub 
  End If
  FileTypeId = TCSApp.FileTypes.Properties("ID").AsInteger
  FileTypeExt = TCSApp.FileTypes.Properties("EXT").AsString
                                 
  OldMode = TCSApp.ShowOneTreeNodeData
  TCSApp.ShowOneTreeNodeData = False
  Set Files = TCSActiveModule.Properties("FILES").AsIDispatch
  TCSApp.ShowOneTreeNodeData = OldMode
  Set Msgs = TCSApp.CreateStrings  
  'Dim Msgs As ICSDNStrings
  If Not Files Is Nothing Then 
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set Folder = Fso.GetFolder( TCSActiveModule.GetDefaultUnloadPath )
    For Each File in Folder.Files
      Names = Split( File.Name, "." )
      NamesLen = UBound( Names, 1 )
      If ( "." + Names(NamesLen-1)=FileTypeExt ) And ( TCSApp.StringToIntDef( Names(NamesLen), -1 )<>-1 ) Then
        If Not Files.Locate( "NAME", File.Name, 0 ) Then
          If TCSApp.MessageBoxAskYesNo( "Запрос", "Обнаружен новый файл '" + File.Name + "'. Добавить его как тип '" + PRO_FILE_TYPE + "' ?", False, 0, False )=1  Then
            Call Files.AddFile( File.Path, FileTypeId )
            I = Msgs.Add( "Добавлен файл '"+File.Name+"' с типом '" + PRO_FILE_TYPE + "'" )             
          End If  
        End If
      End If      
    Next 
  End If  
         
  If DoClose Then 
    Call TCSActiveModule.CloseDoc( True )
  Else
    Call TCSActiveModule.SaveDoc
  End If
       
  If Msgs.Count>0 Then 
    Call Msgs.ShowModal( "В файловом составе были проведены следующие изменения", TCSApp.ScreenWidth / 2, TCSApp.screenHeight / 2 ) 
  End If  
  
End Sub

Замените на  правильное значение константы PRO_ENG_DOCTYPE, PRO_FILE_TYPE  (в коде).

Затем создайте два макроса FormMacro_CloseProEngDOCs(TCSActiveModule) Закрыть документы Pro/Engineer и FormMacro_RefreshProEngDOCs  Обновить документы Pro/Engineer.

Теперь на указанных документах можно запускать в данном окне эти макросы вместо стандартных команд Закрыть документ, Обновить документ ( в TechnologiCS 5.7 можно команды на панель вынести, а стандартные вообще скрыть).


Это просто пример демонстрирующий возможности, более менее рабочий, но скорей всего требует доработки.

Что он делает - просто сам добавляет файлы автоматически выставляя им тип файла и далее вызывает стандартный обработчик. С эскизами не совсем понято что именно вы делаете, так что здесь в примере отсутствует.

Ограничения примера

  • Галочка Выгружать все файлы документа в одну папку должна быть снята (ну похоже у вас именно так и стоит)

  • Пример обрабатывает файлы только из корневой папки документа


В будущем думаю проблема будет решаться значительно легче (сейчас перерабатываем эти механизмы) , а пока попробуйте вот такой вариант.