반응형
□ CustomPropertyManager
SolidWorks VBA API에서 CustomPropertyManager 함수는 파일(파트, 어셈블리, 도면)에 저장된 사용자 지정 속성을 관리하기 위한 도구입니다. 사용자 지정 속성은 파일과 연관된 메타데이터(예: 재질, 작성자, 부품 번호 등)를 나타내며, SolidWorks 파일의 "속성 관리자" 탭에서 볼 수 있습니다. CustomPropertyManager는 특정 "구성(Configuration)"에 연결된 사용자 지정 속성을 추가, 편집, 삭제, 가져오는 데 사용됩니다.
기본 사용법 - CustomPropertyManager 객체 가져오기
ModelDoc2 객체에서 Extension.CustomPropertyManager 메서드를 사용하여 특정 구성의 사용자 지정 속성 관리자를 가져옵니다.
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swCustPropMgr As SldWorks.CustomPropertyManager
'// SolidWorks 앱과 활성 문서 가져오기
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
'// 특정 구성의 사용자 지정 속성 관리자 가져오기 (""는 기본 구성)
Set swCustPropMgr = swModel.Extension.CustomPropertyManager("")
CustomPropertyManager 함수 주요 메서드 및 기능
1. Add3 메서드: 사용자 지정 속성 추가
사용자 지정 속성을 추가하거나 기존 값을 업데이트합니다.
Dim result As Long
result = swCustPropMgr.Add3("속성 이름", swCustomInfoText, "값", swCustomPropertyReplaceValue)
매개변수:
1)"속성 이름": 사용자 지정 속성의 이름.
2)swCustomInfoText: 속성 유형(텍스트). SolidWorks는 텍스트, 날짜, 숫자 등을 지원.
3)"값": 속성에 저장될 값.
4)swCustomPropertyReplaceValue: 기존 값이 있으면 새 값으로 대체.
2. Get4 메서드: 사용자 지정 속성 읽기
지정된 속성의 값을 가져옵니다.
Dim valOut As String
Dim resolvedValOut As String
Dim wasResolved As Boolean
Dim linkToProperty As Boolean
swCustPropMgr.Get4 ("속성 이름", valOut, resolvedValOut, wasResolved, linkToProperty)
출력 매개변수:
1)valOut: 속성의 원래 값.
2)resolvedValOut: 해석된 값(예: $PRP:"속성 이름"과 같은 링크 해석).
3)wasResolved: 값이 성공적으로 해석되었는지 여부.
4)linkToProperty: 속성이 다른 속성 또는 매개변수에 연결되었는지 여부.
3. Delete 메서드: 사용자 지정 속성 삭제
지정된 이름의 사용자 지정 속성을 삭제합니다.
Dim result As Long
result = swCustPropMgr.Delete("속성 이름")
결과 값: 성공(1) 또는 실패(0).
4. GetNames 메서드: 모든 속성 이름 가져오기
현재 구성에 저장된 모든 사용자 지정 속성 이름을 배열로 반환합니다.
Dim propNames As Variant
propNames = swCustPropMgr.GetNames
결과: 문자열 배열로 속성 이름 목록이 반환됩니다.
5. Set 메서드: 사용자 지정 속성 값 설정
기존 속성 값을 설정하거나 업데이트합니다.
Dim result As Long
result = swCustPropMgr.Set("속성 이름", "새 값")
결과 값: 성공(1) 또는 실패(0).
예제: 사용자 지정 속성 추가 및 읽기
Sub ManageCustomProperties()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swCustPropMgr As SldWorks.CustomPropertyManager
Dim result As Long
Dim valOut As String
Dim resolvedValOut As String
Dim wasResolved As Boolean
Dim linkToProperty As Boolean
' SolidWorks 앱과 활성 문서 가져오기
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
' 사용자 지정 속성 관리자 가져오기 (기본 구성 사용)
Set swCustPropMgr = swModel.Extension.CustomPropertyManager("")
' 사용자 지정 속성 추가
result = swCustPropMgr.Add3("Author", swCustomInfoText, "John Doe", swCustomPropertyReplaceValue)
If result = swCustomInfoAddNew Then
MsgBox "속성이 새로 추가되었습니다!"
ElseIf result = swCustomInfoReplaceValue Then
MsgBox "속성 값이 업데이트되었습니다!"
Else
MsgBox "속성을 추가할 수 없습니다."
End If
' 사용자 지정 속성 읽기
swCustPropMgr.Get4 "Author", valOut, resolvedValOut, wasResolved, linkToProperty
MsgBox "속성 값: " & valOut & vbCrLf & "해석된 값: " & resolvedValOut
End Sub
실행 결과
- 새로운 사용자 지정 속성 "Author"가 추가됩니다.
- 이미 "Author" 속성이 존재한다면 값이 업데이트됩니다.
- 속성 값을 읽어와 메시지 박스로 표시합니다.
주요 사용 사례
- 속성 자동화: 부품 번호, 작성자, 재질 등을 사용자 지정 속성으로 자동 추가.
- 속성 업데이트: 설계 변경에 따른 메타데이터(예: 프로젝트 이름, 고객 정보) 수정.
- 속성 읽기: 설계 검토 및 BOM(부품 명세서) 자동 생성.
'VBA SOLIDWORK' 카테고리의 다른 글
모델의 치수 이름 및 값을 가져오는 기능 (0) | 2024.12.17 |
---|---|
모델의 Feature 이름 가져오기 (0) | 2024.12.15 |
모델 이름 Paramter 이름, 값, 유형 표시 하기 #1/2 (0) | 2024.12.13 |
VBA API 설치 및 설정 (0) | 2024.12.11 |
사용자로부터 파일을 선택 하는, 파일 열기 대화 상자를 표시 (1) | 2024.11.23 |