반응형
엑셀에서 선택한 재질 파일을 모델에 지정 하고, 무게를 저장 하는 프로그램 입니다. 무게의 단위는 모델의 단위를 사용 합니다.무게 기능은 재질 파일이 지정 되면, Creo에서 자동으로 계산되는 기능을 사용 합니다. 재질 파일 선택은 엑셀이 유효성 검사 기능을 사용 합니다.
1. 재질 폴더 지정 및 자동 계산 기능 구성 파일 설정
'// config.pro option
Call oSession.SetConfigOption("pro_material_dir", Worksheets("data").Cells(20, "B"))
Call oSession.SetConfigOption("mass_property_calculate", "automatic")
2. 디스크에 있는 재질 파일 불러오고, 지정 하기
- 재질 파일 이름은 반드시 "파일 확장자"를 제거 하고, 사용 합니다.
- 예) "iron.mtl" (오류 발생) / "iron" (사용 가능)
Set oPart = oModel
Set oMaterial = oPart.RetrieveMaterial(Worksheets("File Info").Cells(12, "C"))
Worksheets("File Info").Cells(13, "C") = oMaterial.Name
oPart.CurrentMaterial = oMaterial
3. 무게 계산을 위한 Regen 기능
'// SET Regenerate
Dim RegenInstructions As New CCpfcRegenInstructions
Dim oInstrs As IpfcRegenInstructions
Set oInstrs = RegenInstructions.Create(False, False, Nothing)
'// Regenerate 실행
Call oSolid.Regenerate(oInstrs)
Call oSolid.Regenerate(oInstrs)
4. 무게 값 표시
'//Mass
Dim oMassProperty As IpfcMassProperty
Set oMassProperty = oSolid.GetMassProperty("")
Worksheets("File Info").Cells(17, "C") = oMassProperty.Mass
전체 코드
Sub CreoMass()
Call Creo_Connect
Set oModel = oSession.CurrentModel
Set oSolid = oModel
'// config.pro option
Call oSession.SetConfigOption("pro_material_dir", Worksheets("data").Cells(20, "B"))
Call oSession.SetConfigOption("mass_property_calculate", "automatic")
Dim oPart As IpfcPart
Dim oMaterial As IpfcMaterial
If Worksheets("File Info").Cells(6, "E") Is Nothing Then
MsgBox "Please select a material file", vbInformation, "www.idt21c,com"
Exit Sub
ElseIf Worksheets("File Info").Cells(6, "E") = "prt" Then
Set oPart = oModel
Set oMaterial = oPart.RetrieveMaterial(Worksheets("File Info").Cells(12, "C"))
Worksheets("File Info").Cells(13, "C") = oMaterial.Name
oPart.CurrentMaterial = oMaterial
Else
MsgBox "Not a part file", vbInformation, "www.idt21c,com"
Exit Sub
End If
'// SET Regenerate
Dim RegenInstructions As New CCpfcRegenInstructions
Dim oInstrs As IpfcRegenInstructions
Set oInstrs = RegenInstructions.Create(False, False, Nothing)
'// Regenerate 실행
Call oSolid.Regenerate(oInstrs)
Call oSolid.Regenerate(oInstrs)
'//Mass
Dim oMassProperty As IpfcMassProperty
Set oMassProperty = oSolid.GetMassProperty("")
Worksheets("File Info").Cells(17, "C") = oMassProperty.Mass
MsgBox "Part file weight was calculated", vbInformation, "www.idt21c,com"
End Sub
'VBA For Creo' 카테고리의 다른 글
함께 VBA 만들기 #7 - Creo 3D 모델 정보 보기 프로그램 사용 방법 (0) | 2023.02.08 |
---|---|
함께 VBA 만들기 #6 - Parameter 값 모델에 저장하기 (0) | 2023.02.08 |
VBA Start Template (0) | 2023.02.05 |
함께 VBA 만들기 #4 - Creo 3D 모델 정보 보기 (0) | 2023.02.05 |
함께 VBA 만들기 #3 - Creo 3D 모델 정보 보기 (0) | 2023.02.03 |