Страница 1 из 1

Размеры из Drafting в Excel

СообщениеДобавлено: 16 апр 2009 12:26
CATmonkey
Привет всем.
Вопрос такой. Возможно ли передать численные значения размеров из Драфтинга в Excel с помощью Automation пробегая по всем видимым размерам на чертеже?
Задача сделать код, который бы формировал Excel документ для измерительного отчета, который сейчас делается руками. Этот шаблон должет включать как сами значения размеров с допусками, так и элементы geometrical tolerance.
Интересует именно теоретическая возможность, но если у кого есть практические наработки то буду благодарен за практический совет.

Re: Размеры из Drafting в Excel

СообщениеДобавлено: 16 апр 2009 12:53
booSter
С теоретической частью со стороны M$.Excel никаких проблем не вижу.
Все M$.Excel (до версии 2003 включительно) имеют на борту VBA-API который без проблем должен дёргаться из CATVBA-проектов.
С 2007-ым - немного сложнее, поскольку у него уже не VBA, а .Net-API; который, впрочем, доступен и скриптам (а-ля CATVBA) через .NET COM Interoperability Layer. Т.е. с точки зрения скрипта всё как-бы по-старому (хотя и работает по-новому). ... экий :[|||]: получился то :)

Со стороны КАТЬКИ - нужно проверить доступность всех интересующих значений из-под CATVBA,
а ежели на CAA-RADE - то всё гарантированно делается.

Re: Размеры из Drafting в Excel

СообщениеДобавлено: 16 апр 2009 13:00
CATmonkey
booSter спасибо. :good: Буду ковырять.
Excel 2003 используется и вряд ли в скором времени будет апгрейд.

Re: Размеры из Drafting в Excel

СообщениеДобавлено: 16 апр 2009 15:04
Artem
Код: Выделить всё
Sub CATMain()
    Dim exsl As Object
    Dim pril As Excel.Application
    Dim objExcel As Excel.Application
    Dim objWorkBook As Excel.Workbook
    Dim objsheet As Excel.Worksheet

    On Error Resume Next
    Set exsl = GetObject(, "Excel.Application")
    Set pril = exsl.Application
    pril.Visible = True
    Set objWorkBook = pril.Workbooks.Item(1)
    If Err.Number <> 0 Then
        Err.Clear
        Set exsl = CreateObject("Excel.Application")
        Set pril = exsl.Application
        pril.Visible = True
        Set objWorkBook = pril.Workbooks.Add
    End If
    Set objsheet = objWorkBook.Sheets.Item(1)
    On Error GoTo 0
    Dim drawingDocument1 As DrawingDocument
    Set drawingDocument1 = CATIA.ActiveDocument
    Dim selection1 As Selection
    Set selection1 = drawingDocument1.Selection
   
    Dim aa As SelectedElement
    Dim dd As DrawingDimension
    Dim ss As DrawingDimValue

    selection1.Search "CATDrwSearch.DrwDimension,all"
    For i = 1 To selection1.Count
        Set aa = CATIA.ActiveDocument.Selection.Item(i)
        Set dd = aa.Value
        Set ss = dd.GetValue
        objsheet.Cells(i, 1) = Replace(CStr(ss.Value), ",", ".")
    Next
End Sub

Re: Размеры из Drafting в Excel

СообщениеДобавлено: 16 апр 2009 15:34
CATmonkey
Artem, спасибо за код.
У меня VBA ругается правда на "Dim pril As Excel.Application", пишет ошибку, что user defined type not defined. В чем может быть проблема?

Re: Размеры из Drafting в Excel

СообщениеДобавлено: 16 апр 2009 16:04
Artem
прилинкуй в tools/references библиотеку Microsoft Excel 11.0

Re: Размеры из Drafting в Excel

СообщениеДобавлено: 21 апр 2009 14:53
CATmonkey
Artem писал(а):прилинкуй в tools/references библиотеку Microsoft Excel 11.0

Отлично, спасиб, заработало все.