catia vba在会话中更改activedocument(drawingdocument)名称

时间:2017-11-27 12:49:06

标签: vba catia

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

为了澄清我将添加图片:https://i.imgur.com/eckBwRQ.png

在此图像中,“Drawing2”文本需要更改为我想要的内容。

此时我不想保存.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:\Path\Template.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
  

无法分配给只读属性

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

可能的解决方案是使用NewFrom而不是Open这样:

 Set mydrawingdoc = documents1.NewFrom("path\Template.CATDrawing")

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

1 个答案:

答案 0 :(得分:1)

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

示例:

'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("path\Template.CATDrawing")

'Save drawing with custom name extracted from 3D part 
CATIA.ActiveDocument.SaveAs ("C:\CATIA_temp\" & partDoc.Product.UserRefProperties.Item("CUSTOM_NAME").ValueAsString & ".CATDrawing")