반응형
□ 프로그램 기능
SolidWorks 환경에서 활성화된 문서의 모든 Feature 이름들을 가져와서 VBA 창의 SolidWorks 환경에서 활성화된 문서의 모든 Feature 이름을 가져와서 VBA 창의 Immediate 창에 출력하는 기능을 수행합니다. (작업 실행 창)에 출력하는 기능 입니다.
모델 Tree | 프로그램 실행 (Immediate 창) |
▷Code
Option Explicit
Sub GetFeatureNames()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swFeat As SldWorks.Feature
'// 이미 실행 중인 SolidWorks 찾기
Set swApp = GetObject(, "SldWorks.Application")
Set swModel = swApp.IActiveDoc
'// 활성화된 문서가 없는 경우 처리
If swModel Is Nothing Then
MsgBox "활성화된 문서가 없습니다.", vbExclamation, "Error"
Exit Sub
End If
'// 첫 번째 Feature 가져오기
Set swFeat = swModel.FirstFeature
'// Feature 이름 순회 및 출력
Do While Not swFeat Is Nothing
Debug.Print "Feature Name: " & swFeat.Name
'// 다음 Feature로 이동
Set swFeat = swFeat.GetNextFeature
Loop
MsgBox "Feature 이름을 확인하려면 VBA 창의 Immediate 창(Debug.Print)에서 확인하세요.", vbInformation, "완료"
End Sub
▷Code 설명
Set swApp = GetObject(, "SldWorks.Application"): 현재 실행 중인 SolidWorks 애플리케이션 객체를 가져옵니다.
Set swModel = swApp.IActiveDoc: 활성화된 문서(ModelDoc2) 객체를 가져옵니다.
Set swFeat = swModel.FirstFeature: 문서의 첫 번째 Feature를 가져옵니다.
Set swFeat = swFeat.GetNextFeature: 다음 Feature로 이동합니다.
▷프로그램 응용
번호 Feature 이름, 유형을 가져오는 코드
Option Explicit
Sub GetFeatureNames()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swFeat As SldWorks.Feature
'// 이미 실행 중인 SolidWorks 찾기
Set swApp = GetObject(, "SldWorks.Application")
Set swModel = swApp.IActiveDoc
'// 활성화된 문서가 없는 경우 처리
If swModel Is Nothing Then
MsgBox "활성화된 문서가 없습니다.", vbExclamation, "Error"
Exit Sub
End If
'// 첫 번째 Feature 가져오기
Set swFeat = swModel.FirstFeature
Dim i As Long
i = 0
'// Feature 이름 순회 및 출력
Do While Not swFeat Is Nothing
Worksheets("Program02").Cells(i + 5, "B") = i + 1
Worksheets("Program02").Cells(i + 5, "C") = swFeat.Name
Worksheets("Program02").Cells(i + 5, "D") = swFeat.GetTypeName
Worksheets("Program02").Cells(i + 5, "E") = swFeat.GetID
Worksheets("Program02").Cells(i + 5, "F") = swFeat.GetFaceCount
'// 다음 Feature로 이동
Set swFeat = swFeat.GetNextFeature
i = i + 1
Loop
MsgBox "Feature 정보를 모두 표시 했습니다", vbInformation, "완료"
End Sub
'VBA SOLIDWORK' 카테고리의 다른 글
어셈블리 구조를 가져 오는 코드 - 컨셉 (0) | 2024.12.19 |
---|---|
모델의 치수 이름 및 값을 가져오는 기능 (0) | 2024.12.17 |
모델 이름 Paramter 이름, 값, 유형 표시 하기 #2/2 (1) | 2024.12.13 |
모델 이름 Paramter 이름, 값, 유형 표시 하기 #1/2 (0) | 2024.12.13 |
VBA API 설치 및 설정 (0) | 2024.12.11 |