CATIA VBA更改ActivedOcument(DrawsDocument)在会话中名称



我有一个.catdrawing模板,用于为我的所有零件创建图纸。我当前的宏可根据需要打开模板。我想做的是更改文档的工作名称,以便用户单击"保存"正确的名称已在对话框中,他只需要浏览到正确的位置。

要澄清我将添加一个图像:https://i.stack.imgur.com/sbqog.png

在此图像中

我不想保存.catdrawing此刻,必须允许用户继续工作并保存该文档。

我一直在Google和v5automation.chm上进行一些搜索,但我似乎找不到执行此操作的代码。

我最好的猜测是尝试以下代码:

'remember currently opened part.
Dim partDoc As PartDocument
Set partDoc = CATIA.ActiveDocument
Dim documents1 As Documents
Set documents1 = CATIA.Documents
'Open drawing
Dim mydrawingdoc As DrawingDocument
Set mydrawingdoc = documents1.Open("X:PathTemplate.CATDrawing")
'rename drawing
Set CATIA.ActiveDocument.Name = partDoc.Part.Parameters.Item("CUSTOM_NAME").ValueAsString

但是我有一个错误说

属性的使用无效

任何帮助将不胜感激。

编辑:

我已经尝试了更多事情来做到这一点,但是到目前为止,我还没有看到成功:

Left(mydrawingdoc.FullName, 10) = partDoc.Part.UserRefProperties.Item("CUSTOM_NAME").ValueAsString

这也不起作用

edit2:

好吧,我发现了一些完全不同的错误:

mydrawingdoc.FullName = partDoc.Part.UserRefProperties.Item("CUSTOM_NAME").ValueAsString

无法分配给只读属性

这是否意味着不可能做我想做的事?

可能的解决方案可能是使用newflom而不是这样开放:

 Set mydrawingdoc = documents1.NewFrom("pathTemplate.CATDrawing")

,然后在创建此绘图图表时立即使用所需的名称?

无法更改尚未保存的顶级文档的名称。
据我所知,最好和唯一的解决方法是将文档保存在临时文件夹中。

示例:

'remember currently opened part.
Dim partDoc As PartDocument
Set partDoc = CATIA.ActiveDocument
Dim documents1 As Documents
Set documents1 = CATIA.Documents
'Open drawing
Dim mydrawingdoc As DrawingDocument
Set mydrawingdoc = documents1.NewFrom("pathTemplate.CATDrawing")
'Save drawing with custom name extracted from 3D part 
CATIA.ActiveDocument.SaveAs ("C:CATIA_temp" & partDoc.Product.UserRefProperties.Item("CUSTOM_NAME").ValueAsString & ".CATDrawing")

最新更新