Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Получение технических требований, Как получить техтребования документа и на чертеже.
 
Подскажите, пожалуйста, как программным путем получить техтребования документа и техтребования на чертеже? Приведите пример кода, если можно.
Заранее спасибо.
 
C техтребованиями на чертеже разобрался. Но как получить доступ к техтребованиям документа?
 
А если не секрет то как техтребования с чертежа получить? Смотрел в API, но так и не нашёл или не там смотрел.
 
Я использую такой метод:


Код
 Public Function GetTechDemFromTFlexDoc(ByRef Doc As TFlex.Model.Document, ByRef TechDem As ArrayList) As Integer
      'Получить тех. требования из документа T-Flex.
      'Возвращается 1, если все прошло успешно, иначе - 0.
      'Если отсут. необход. данные, возвращается 2.
      '=================================================================================
      TechDem.Clear() 'массив типа ArrayList, куда будем помещать техтребования
      Try
        If Doc Is Nothing Then Return 2
        Dim Ts As ICollection(Of TFlex.Model.Model2D.Text) = Doc.GetTexts
        If Ts IsNot Nothing AndAlso Ts.Count > 0 Then
          Dim TDs As String = "" 'строка со всеми техтребованиями
          For Each T As TFlex.Model.Model2D.Text In Ts
            If T.Name Like "DrawingNotes" And T.SubType = TFlex.Model.Model2D.TextType.ParagraphText Then
              Dim PT As TFlex.Model.Model2D.ParagraphText = CType(T, TFlex.Model.Model2D.ParagraphText)
              Doc.BeginChanges("")
              PT.BeginEdit()
              TDs = PT.TextValue
              PT.EndEdit()
              Doc.CancelChanges()
              Exit For
            End If
          Next
          If Not TDs Like "" Then
            Dim Lines() As String = TDs.Split(vbLf)
            If Lines IsNot Nothing AndAlso Lines.Count > 0 Then
              Dim I As Integer = 1 'счетчик строк, нужен для того, чтобы убрать номера строк техтребований (его можно не использовать)
              For Each TD As String In Lines
                If TD.Trim.ToLower Like "технические требования" Then GoTo metka 'в некоторых случаях допускается писать заголовок "Технические требования", его мы не будет учитывать
                Dim Str As String = TD.Replace(CStr(I) + ".", "")
                Str = ConvertTFlexSpecSymbolsToTxt(Str) 'ConvertTFlexSpecSymbolsToTxt - метод, конвертирующий спецсимволы в текст
                Str = Str.Trim
                If Not Str Like "" Then TechDem.Add(Str)
                I = I + 1
metka:
              Next
            Else
              Return 2
            End If
          Else
            Return 2
          End If
        Else
          Return 2
        End If
        Return 1
      Catch ex As Exception
        TechDem.Clear()
        Return 0
      End Try
    End Function
 
Можно на основе этого метода сделать свой, покомпактнее.
 
public ModelObject GetObjectByName(string Name)
Можно без перебора получить параграф-текст. Искать DrawingNotes и по Атрибуту. Скриншот приложен.
Страницы: 1