본문 바로가기
  • 환영 합니다 ! Welcome!
VBA For Creo

자동으로 부품을 기본 (Deault) 구속으로 조립하기 - 작업중

by ToolBOX01 2024. 4. 21.
반응형

□ vba 조입 구속 조건 

▷ 조립품 구속조건 유형이 포함되어 있습니다.

EpfcASM_CONSTRAINT_MATE Mate two surfaces.
EpfcASM_CONSTRAINT_MATE_OFF Mate two surfaces, with an offset.
EpfcASM_CONSTRAINT_ALIGN Align two items.
EpfcASM_CONSTRAINT_ALIGN_OFF Align two items, with an offset.
EpfcASM_CONSTRAINT_INSERT Insert a circular surface into another.
EpfcASM_CONSTRAINT_ORIENT Orient items with respect to one another.
EpfcASM_CONSTRAINT_CSYS Align by coordinate system.
EpfcASM_CONSTRAINT_TANGENT Make two entities tangent.
EpfcASM_CONSTRAINT_PNT_ON_SRF Place a point on a surface.
EpfcASM_CONSTRAINT_EDGE_ON_SRF Place an edge on a surface.
EpfcASM_CONSTRAINT_DEF_PLACEMENT Fix the component in the default location.
EpfcASM_CONSTRAINT_SUBSTITUTE Substitution (only used in simplified reps).
EpfcASM_CONSTRAINT_PNT_ON_LINE Place a point on a line.
EpfcASM_CONSTRAINT_FIX Automatic placement.


EpfcASM_CONSTRAINT_ALIGN_ANG_OFF  
EpfcASM_CONSTRAINT_MATE_ANG_OFF  
EpfcASM_CONSTRAINT_CSYS_PNT  
EpfcASM_CONSTRAINT_LINE_NORMAL  
EpfcASM_CONSTRAINT_LINE_COPLANAR  
EpfcASM_CONSTRAINT_LINE_PARL  
EpfcASM_CONSTRAINT_LINE_DIST  
EpfcASM_CONSTRAINT_PNT_DIST  
EpfcASM_CONSTRAINT_INSERT_NORM  
EpfcASM_CONSTRAINT_INSERT_PARL  
EpfcASM_CONSTRAINT_PNT_ON_LINE_DIST  
EpfcASM_CONSTRAINT_PNT_ON_SRF_DIST  
EpfcASM_CONSTRAINT_EDGE_ON_SRF_DIST  
EpfcASM_CONSTRAINT_EDGE_ON_SRF_ANG  
EpfcASM_CONSTRAINT_EDGE_ON_SRF_NORMAL  
EpfcASM_CONSTRAINT_ALIGN_NODEP_ANGLE  
EpfcASM_CONSTRAINT_MATE_NODEP_ANGLE  
EpfcASM_CONSTRAINT_LINE_ANGLE  
EpfcASM_CONSTRAINT_EDGE_ON_SRF_PARL  
EpfcASM_CONSTRAINT_SRF_NORMAL  
EpfcASM_CONSTRAINT_EXPLICIT  
EpfcComponentConstraintType_nil Use this enumerated value to represent "null" passed to optional properties or method arguments.

 

▷ VBA Assemble 관련 용어 정의 

  • assembly: Creo에서 어셈블리는 완전한 제품을 만드는 데 사용되는 개별 부품(구성 요소) 콜렉션입니다.
    마치 최종적으로 만드는 구조물과 같습니다.
  • component: component는 자체적으로 포함되고 재사용 가능한 디자인 요소이며 어셈블리에 삽입될 수 있습니다.
    더 큰 어셈블리 내의 단일 부품으로 생각하십시오.
  • references: references는 어셈블리의 두 엔터티(데이터, 표면 등) 간의 링크로 엔터티 간 특정 기하학적 관계를 정의합니다. 구성 요소가 어떻게 맞물려야 하는지 Creo에게 알려주는 연결 지점과 같습니다. 그런 다음 제약을 이러한 references에 적용하여 구성 요소의 정확한 위치와 동작을 정의합니다.

 

▷ VBA 어셈블리 조립 자동화 명령 순서

CREO VBA를 사용하여 어셈블리를 자동으로 조립하는 과정을 수행합니다.

1. 어셈블리 열기:
open 또는 retrieve 함수를 사용하여 어셈블리 파일을 열고 세션에 로드합니다.

2. 구성 요소 열기:
(선택사항) display 함수를 사용하여 열린 어셈블리를 화면에 표시합니다.

3. 어셈블리에 component 피처 생성:
현재 어셈블리에 새로운 부품을 Session으로 가져옵니다.

4. 참조 선택:
선택 기능을 사용하여 어셈블리 및 구성 요소에서 참조(데이터, 표면 등)를 선택합니다.

5. 구성 요소 경로 설정:
구성 요소 경로를 생성하여 모델 트리에서 어셈블리 위치를 지정합니다. 이 경로는 어셈블리 피처를 적용할 모델을 정의합니다.

6. 제약 생성:
선택한 참조를 기반으로 제약을 생성합니다.

7. 제약 적용:
생성된 제약을 어셈블리의 제약 목록에 추가합니다.

 

1. Creo Assembly File Open (Creo Model Open)

2. Connecting creo model to VBA

3. Assemble the first component : 구속 조립 조건 없이 조립됩니다

 '// Load model into Session
    Dim CreateModelDescriptor As New CCpfcModelDescriptor
    Dim ModelDescriptor As IpfcModelDescriptor
    dim Componrnt01 as ipfcsolid
    Dim NewCreoFileName As String
    

    NewCreoFileName = Worksheets("Assy").Cells(2, "C")
    
    Set ModelDescriptor = CreateModelDescriptor.CreateFromFileName(NewCreoFileName)
    Set Componrnt0 = BaseSession.RetrieveModel(ModelDescriptor)

 

4. 조립된 부품의 조립 구속 조건을 정의 합니다.

1) 어셈블 파일을 무엇 입니까? (DIM  Model)

 

 

 

 

2) 부품 파일은 무엇 입니까? ( DIM    Componet01)

 

3) 조립 구속 조건 정의

 

 

4. Create a new component feature in the assembly

  Dim Assembly As IpfcAssembly
  Dim ComponentFeat As IpfcComponentFeat
     
  Set Assembly = Componrnt01
  Set ComponentFeat = Assembly.AssembleComponent(Componrnt01, Nothing)

 

5. Create constraint

'// Component Constraint setting
Dim CreateComponentConstraint As New CCpfcComponentConstraint
Dim ComponentConstraint As IpfcComponentConstraint
Set ComponentConstraint = CreateComponentConstraint.Create(EpfcASM_CONSTRAINT_DEF_PLACEMENT)
 
ComponentConstraint.AssemblyReference = solid
ComponentConstraint.ComponentReference = Componrnt01

 

 

 

 

 


□ 조립품 구속조건 조정

 어셈블리 기본 제약 조건 유형을 설정하는 구성 옵션이 있는지 궁금하십니까?
 예를 들어 기본값을 항상 일치로 설정하고 싶습니다. 

 

▷ 아래와 같이 Config.pro 파일을 구성 합니다.

auto_constr_always_use_offset NEVER
comp_angle_offset_eps 91
comp_normal_offset_eps -1
  • auto_constr_always_use_offset (Default Values: no)
자동 구속조건이 오프셋을 생성해야 하는지 여부를 제어합니다. 
yes - 자동 구속조건은 항상 오프셋을 생성합니다.
no - 표면의 허용 오차가 작은 경우 자동 구속조건 스냅이 정렬되거나 결합됩니다.
never - 자동 구속조건은 오프셋을 생성하지 않습니다.

 

auto_constr_always_use_offset / comp_angle_offset_eps / comp_normal_offset_eps  세부 내용

 

▷ 자동 구속 동작

컴포넌트를 어셈블리로 어셈블할 때 Creo가 선택하는 구속의 종류는 무작위적이고 일관성이 없는 것처럼 보입니다. 자세한것은 첨부 파일을 검토해 보세요

PTC User Group - 2013-10-03 - Auto Constraints.pdf
0.74MB

 

□ CREO Parametric 어셈블리 설계의 고정(Fix) 구속조건과 기본(default) 구속조건의
       차이점 이해

Creo Parametric을 사용한 어셈블리 설계의 'Fix' 유형 제약 조건과 'Default' 유형 제약 조건의 차이점에 대해 설명입니다. 이 두 가지 유형의 제약 조건은 둘 다 모델을 완전히 제약하기 때문에 비슷해 보이지만, 이 두 제약 조건 간의 뚜렷한 차이점을 이해할 수 있는 두 가지 예를 살펴보겠습니다.

 

참고자료

 

 

CS255437 - Understanding assembling components with component path in toolkit

Article - CS255437 Understanding assembling components with component path in toolkit Modified: 27-Jan-2017    Applies To Creo Parametric 1.0 to 4.0 Description Understanding assembling components with component path in toolkitHow to assemble components

www.ptc.com