Автоматизация CATIA V5 с помощью скрипта PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Автоматизация CATIA V5 с помощью скрипта Python

Сообщение Anonymous »

Я новичок в Python и пытаюсь выполнить некоторую автоматизацию в CATIA (пакет Dassault Systemes CAD) с его помощью, но столкнулся с проблемой, которую не смог решить, несмотря на долгие поиски решения.
Я пытаюсь имитировать поведение этого макроса VBA, написанного в собственном интерфейсе редактора CATIA:

Код: Выделить всё

Sub CATMain()

Dim drawingDocument1 As DrawingDocument
Set drawingDocument1 = CATIA.ActiveDocument

Dim selection1 As Selection
Set selection1 = drawingDocument1.Selection

selection1.Search "CATDrwSearch.DrwDimension,all"

For i = 1 To selection1.Count

Dim Dimension1 As DrawingDimension
Set Dimension1 = selection1.Item(i).Value

Dim DimDimValue As DrawingDimValue
Set DimDimValue = Dimension1.GetValue

DimDimValue.SetFormatPrecision 1, 0.001

Next

selection1.Clear

End Sub
Для этого я написал этот скрипт Python:

Код: Выделить всё

import win32com.client

CATIA = win32com.client.Dispatch('CATIA.Application')

ad = CATIA.ActiveDocument
sel = ad.Selection
sel.Search("CATDrwSearch.DrwDimension,all")

for i in range(1, sel.Count2+1):
aDim = sel.Item2(i).Value
aDimValue = aDim.GetValue
aDimValue.SetFormatPrecision(1,0.001)

sel.Clear
Все работает, кроме последней операции в цикле for, которая возвращает ошибку:

Код: Выделить всё

Traceback (most recent call last):

File "C:/...", line 15, in 
aDimValue.SetFormatPrecision(1,0.001)
AttributeError: 'function' object has no attribute 'SetFormatPrecision'
Обратите внимание, что я использовал makepy для ранней привязки COM-объекта, иначе Python его не распознает (возвращает COMObject [неизвестно]), но, насколько я понимаю, это не должно влиять на поведение сценария.
Мне не удалось успешно устранить эту ошибку, поскольку все, что я могу найти, предполагает, что объект должен иметь атрибут SetFormatPrecision. . Я перепробовал кучу других атрибутов, которые у него тоже должны быть, но ни один из них не работает. Поскольку я пытаюсь работать с COM-объектом, я не знаю, как получить полный список допустимых атрибутов или как получить какую-либо информацию о типе объекта, который я сохранил в aDimValue
Я проверил выходной файл makepy
и обнаружил, что он содержит определение функции для SetFormatPrecision, так что я предполагаю, что у меня есть проблема с синтаксисом, но я не понимаю, что это такое.
Я знаю, что это узконаправленный вопрос, но я надеюсь, что кто-нибудь, знакомый с библиотеками объектов CATIA, увидит это. И хотя я этого не ожидаю, если кто-то захочет приложить дополнительные усилия, здесь есть документация по библиотекам объектов CATIA:
http://catiadoc.free.fr/online/CAAScdBase /CAAScdAutomationHome.htm
Чертеж > Справочник по черчению > DrawingDimValue
, чтобы перейти к конкретному объекту, который, как я думаю, я работа с aDimValue

Подробнее здесь: https://stackoverflow.com/questions/481 ... hon-script
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»