There are already some examples on this website, which explain, how to automate Dassault Systemes CATIA V5 with Python and Microsoft COM. Yesterday Paul sent me a mail and mentioned, that he has created a Python Library, which packs a few of the COM magics into a Python library with some basic functions. It covers things like, traversing assembly structures, context manager, convert files, find elements in a part, etc.
Here is an example:
from pycatia import CATIAApplication catia = CATIAApplication() documents = catia.documents() documents.open(r'tests\CF_TopLevelAssy.CATProduct') document = catia.document() product = document.product() products = product.get_products() if len(products) == 0: print("Active document has no children or is not a CATProduct.") for item in product.get_products(): if item.is_catpart(): print(f'This is a part: "{item}"') print('') if item.is_catproduct(): product = item print(f'This is a product: "{item}"') if item.has_children(): print('This product has children.') children = item.get_children() print(children) print('')
You can find pycatia on http://pypi.org/project/pycatia/ or on https://github.com/evereux/pycatia.
Or you can directly install it via pip in Python 3.6 by:
pip install pycatia