我正在用Python脚本自动创建一个新产品,但遇到了一个问题,即交互事件卡在“partnumber”对话框中。创建新零件时不会发生这种情况,只会创建新产品。以下是脚本的适用部分(CATIA已打开):import win32com.client.dynamic
CATIA = win32com.client.Dispatch("CATIA.Application")
catDocs = CATIA.Documents
# Create a new product
newProductDoc = catDocs.Add("Product")
# "Part Number" window appears, requesting a name for the product
# Interactive processes will not proceed
newProduct = newProductDoc.Product
newProductSet = newProduct.Products
newPart = newProductSet.AddNewComponent("Part", "dummyPart")
...
问题是我正在开发一个小工具供其他人使用,如果挂断它就没有多大用处。在
单击“取消”将取消对话框,但之后不会发生交互操作。单击“确定”解决了这个问题,但最好是脚本能够在没有交互的情况下准备产品作为最终结果,以限制用户错误并提高易用性。在
我知道我可以创建一个产品并对其进行操作(即添加部件、添加新产品等),然后成功地保存它。所以进程正在执行,只是不再显示。我好像找不到一种方法来跳过“零件号”对话框。我甚至试着用编程的方式命名它,虽然成功了,但并没有破坏对话框。在
打开一个现有的产品可以很好地工作,任何脚本过程都可以继续而没有问题。但是,以编程方式创建产品、保存和关闭会导致CATIA锁定。。。因此,作为现有产品保存并重新打开的选项已经不存在了。在
我还参考了v5自动化.chm,但我找不到与对话框交互的方法。在
我还尝试了新产品及其零部件。其他一些保证是CATIA.Visible = True和{}。在
免责声明:我知道可以使用VBA,但不会造成此问题。我正在寻找使用Python解决这个问题的方法(2或3,不重要)。在