我有一个.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")
然后在创建此绘图文档时立即使用所需的名称?
答案 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")