我有一个.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")