使用Python脚本的CATIA V5自动化

2024-10-01 15:38:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个Python初学者,正试图用它在CATIA(Dassault Systemes CAD package)中实现一些自动化,但我遇到了一个问题,尽管我广泛地寻找解决方案,但我还是无法解决。在

我试图模拟在CATIAs native editor界面中编写的VBA宏的行为:

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脚本:

^{pr2}$

除for循环中返回错误的最后一个操作外,所有操作都正常:

Traceback (most recent call last):
<bound method DrawingDimension.GetValue of <win32com.gen_py.CATIA V5 
DraftingInterfaces Object Library.DrawingDimension instance at 0x67582896>>
File "C:/...", line 15, in <module>
aDimValue.SetFormatPrecision(1,0.001)
AttributeError: 'function' object has no attribute 'SetFormatPrecision'

注意,我使用makepy早期绑定COM对象,否则Python无法识别它(返回coobject[unknown]),但据我所知,这不会影响脚本行为。在

我无法成功地排除错误,因为我能找到的所有东西都表明对象应该具有属性SetFormatPrecision。我尝试了它应该具有的其他属性,但是它们都不起作用。因为我试图操作一个COM对象,我不知道有什么方法可以获得一个完整的合法属性列表,也不知道如何获取有关存储在aDimValue中的对象类型的任何信息

我检查了makepy输出文件,它确实包含了SetFormatPrecision的函数定义,所以我猜我有语法问题,但我不知道它是什么。在

我知道这是一个狭隘的问题,但我希望了解CATIA对象库的人能看到这一点。尽管我并不期待,但如果有人想多做一点,这里有关于CATIAs对象库的文档:

http://catiadoc.free.fr/online/CAAScdBase/CAAScdAutomationHome.htm

绘图>绘图参考>绘图尺寸值

为了得到特定的对象,我想我正在用一个值

感谢任何帮助。谢谢。在


Tags: 对象绘图属性asdimsetsubcatia

热门问题