디자이너를 위한 포럼에 참여하기
여러분의 전문 지식은 커뮤니티에 매우 중요합니다. 참여하여 지식을 공유하세요
지금 포럼에 참여하세요업계 최고의 전문가들과 함께 공유하고 배우며 성장하세요.
요약
이 블로그의 목적은 두 가지입니다. 첫째, ANSYS SpaceClaim 내에서 Python 스크립팅을 사용하여 캠샤프트 로브 프로파일 생성을 성공적으로 자동화하는 것입니다. 둘째, 앤시스 스페이스클레임 내에서 파이썬 스크립팅과 관련된 특정 함정을 피하는 방법을 배우기 위해서입니다.
세부 정보
이제 캠샤프트 로브 생성을 자동화해야 하는 ‘이유’에 대해 이야기해 보겠습니다.
4행정 내연기관 엔진에서 캠샤프트는 엔진 크랭크축의 회전에 따라 흡기 및 배기 밸브를 열고 닫는 역할을 담당합니다. 캠샤프트는 밸브가 열리고 닫히는 시기, 밸브가 열리는 거리, 밸브가 열리고 닫히는 속도를 결정하는 구성 요소 시스템인 ‘밸브 트레인’의 일부입니다. 밸브 트레인 구성에 따라 관련된 구성 요소가 다를 수 있으며, 밸브 타이밍 이벤트의 세부 사항을 이해하려면 이러한 모든 구성 요소를 함께 평가해야 합니다. 캠샤프트 로브 프로파일을 생성하는 것은 완전히 임의적이지 않으며 때로는 매우 복잡할 수 있습니다. 이 프로파일을 생성하는 프로세스를 자동화하면 밸브 트레인 설계 과정에서 밸브 타이밍 이벤트를 보다 신속하게 평가할 수 있습니다.
이제 무엇을 할까요?
먼저 모델링할 캠축 프로파일의 유형을 파악한 다음 지오메트리를 수동으로 생성하고 SpaceClaim 스크립팅 내에서 작업을 기록하여 네이티브 Python 코드를 생성합니다.
그런 다음, 동일한 코드를 SpaceClaim의 새 인스턴스에서 ‘시도’하여 어떤 장애물이 있는지 파악하고 해당 장애물에 대한 해결책을 처방합니다. 그런 다음 Python 스크립팅을 사용하여 원래 설계된 캠샤프트 로브를 성공적으로 복제합니다.
마지막으로, 이 프로파일의 새로운 변형을 빠르게 생성할 수 있도록 Python 스크립팅을 매개변수화합니다.
캠샤프트 프로파일
캠샤프트 로브 프로파일은 단순한 것부터 복잡한 것, 대칭형 또는 비대칭형까지 다양합니다. 이 블로그에서는 베이스 원과 노즈 원을 기반으로 하는 가장 기본적인 디자인 중 하나에 초점을 맞출 것입니다. 두 원은 두 원에 접하는 선으로 연결됩니다.
38mm의 베이스 원과 26mm의 노즈 원으로 시작하며, 노즈 원의 중심은 베이스 원 중심보다 14mm 위에 위치합니다. 첫 번째 작업은 SpaceClaim을 연 다음 스크립팅 인터페이스에 액세스하는 것입니다.
기본적으로 “기록” 모드가 활성화됩니다.
먼저 기본 원을 추가한 후 기록되는 내용을 이해해 보겠습니다.
구체적으로 스케치 평면이 정의되고, 원이 생성되고, 제약 조건이 생성된 것을 볼 수 있습니다. 동일한 Python 코드를 SpaceClaim의 새 인스턴스에 복사하여 성공적으로 실행할 수 있는지 알아봅시다.
대답은 “아니오”입니다.. 왜 그럴까요? 일반적으로 스케치 평면을 선택하는 방식 때문입니다. 이 SpaceClaim 인스턴스를 닫고 새 인스턴스를 열어 보겠습니다. 스크립트를 기록하는 방법을 변경하고 새 원을 생성한 다음 테스트를 반복해 보겠습니다.
먼저 ‘자세한 설명’ 기록 옵션을 활성화합니다.
다음으로 선택 항목이 기록되는 방식을 “스마트 변수”에서 “광선”으로 변경합니다.
이제 기본 원을 추가한 후 기록된 스크립트가 다르게 보입니다.
이 새 스크립트를 SpaceClaim의 새 인스턴스 내에서 작동하기 이제 베이스 서클을 성공적으로 생성합니다!
코 원과 두 개의 접선을 추가하는 다른 작업은 어떨까요?
성공! 이 새 스크립트를 SpaceClaim의 새 인스턴스에 복사하면 지오메트리가 복제됩니다. 지금까지는 괜찮습니다. 하지만 지오메트리를 매개변수화하려고 하면 문제가 발생합니다. 데모를 위해 노즈 서클 지름을 26mm에서 20mm로 변경해 보겠습니다.
다음과 관련된 문제가 발생했습니다. “선택” 객체를 선택합니다. 선택이 우리의 가장 큰 과제가 될 것으로 보입니다. 따라서 이 지오메트리에서 ‘선택’을 최대한 줄일 것을 제안합니다. 선과 원과 같은 항목을 선택하는 것은 피해야 합니다. 이를 위해 다른 방법으로 지오메트리를 만들겠습니다. 원을 추가하고 접선을 만들어 연결하는 대신 호를 만든 다음 호 끝을 밑변에서 코끝까지 연결합니다. 이 방법을 사용하려면 스크립트 구성에 훨씬 더 신중해야 합니다.
스크립팅 블록 검토
원본 스크립트를 녹화할 때(원 추가) 스크립팅 블록에 특정 요소가 있는 것을 확인했습니다.
# 스케치 원
origin = Point2D.Create(MM(0), MM(0))
결과 = SketchCircle.Create(origin, MM(19))
baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes)[0].Curves[0].GetChildren[ICurvePoint]()[0])
targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes)[0].GetChildren[IDatumLine]()[0])
결과 = Constraint.CreateCoincident(baseSel, targetSel)
# EndBlock
두 개의 포인트가 정의된 것을 볼 수 있습니다: “원점”과 “MM(19)”입니다. 따라서 “SketchCircle.Create” 함수를 사용하려면 원점과 반지름을 정의해야 합니다. 이 블록의 다른 모든 것은 다음과 관련이 있습니다. 선택 생성한 항목과 제약 를 평면에 적용합니다. 이 마지막 섹션은 지오메트리를 성공적으로 생성하는 데 필요하지 않다고 제안합니다. 따라서 이러한 불필요한 명령을 삭제하고 다음 스크립트를 간단히 실행하는 것이 좋습니다.
# 스케치 원
origin = Point2D.Create(MM(0), MM(0))
결과 = SketchCircle.Create(origin, MM(19))
# EndBlock
그리고… 작동합니다!
이제 호와 선에 대한 스크립팅 블록을 기록하여 캠 샤프트 프로파일을 생성하는 데 필요한 필수 요소를 식별하여 직접 검사하는 것이 좋습니다. 이미 이 작업을 수행했으며 다음을 첨부했습니다. 내 스크립트를 여기에 첨부했습니다. 에서 검토할 수 있습니다.
또한 자동차 캠축 특성을 식별할 때 일반적으로 사용되는 용어로 스크립트를 매개변수화했습니다(예: 자동차 캠축 특성):
이러한 파라미터를 사용하면 다음과 같은 지오메트리가 생성됩니다.
이 스크립트 다운로드 캠샤프트 프로파일 디자인을 살펴보고… 그 과정에서 SpaceClaim을 위한 실용적인 Python 스크립트를 만드는 방법을 배워보세요!!! 😊
디자이너를 위한 포럼에 참여하기
여러분의 전문 지식은 커뮤니티에 매우 중요합니다. 참여하여 지식을 공유하세요
지금 포럼에 참여하세요업계 최고의 전문가들과 함께 공유하고 배우며 성장하세요.