2017-11-27 1 views
0

모든 파트의 도면을 만드는 데 사용하는 .CATdrawing 템플릿이 있습니다. 현재 매크로가 원하는대로 템플릿을 엽니 다. 내가하고 싶은 것은 사용자가 "저장"을 클릭 할 때 올바른 이름이 이미 대화 상자에 있으며 올바른 위치로만 탐색하면되도록 문서의 작업 이름을 변경하는 것입니다. 텍스트 "Drawing2는"나는이 원하는 무엇이든을 변경해야이 이미지 https://i.imgur.com/eckBwRQ.pngcatia vba는 세션에서 activedocument (drawingdocument) 이름을 변경합니다.

:

내가 이미지를 추가 할 것입니다 명확히하기 위해.

이 순간 .CATdrawing을 저장하지 않으려면 사용자가 작업을 계속하고 문서를 저장할 때 문서를 저장해야합니다.

저는 Google과 V5Automation.chm에서 일부 검색을 해왔지만이 작업을 수행하는 코드를 찾을 수없는 것 같습니다. 내가 어떤 도움을 크게 감상 할 수

Invalid use of property

말하는 오류가 발생하지만

'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 

Can't assign to read-only property

내가 원하는 것을 할 수 없다는 뜻입니까?

가능한 해결책은 다음과 같이 열기 대신 NewFrom를 사용할 수 없습니다 :

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

그리고이 drawingdocument을 만드는 동안 즉시 원하는 이름을 사용할 수 있습니까?

+0

코드의 마지막 줄에 'Set'를 제거하십시오. –

+0

집합을 제거하면 다른 오류가 발생합니다.> 개체가이 작업을 지원하지 않습니다. –

답변

0

아직 저장되지 않은 최상위 문서의 이름을 변경할 수 없습니다.
최상의 방법은 임시 폴더에 올바른 이름으로 문서를 저장하는 것입니다.

예 :

'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")