デザイナーのためのフォーラムに参加しよう
あなたの専門知識はコミュニティにとって不可欠です。私たちに参加して、あなたの知識を提供してください。
今すぐフォーラムに参加する業界最高のプロフェッショナルと分かち合い、学び、成長する.
概要
このブログの目的は2つあります。1つ目は、ANSYS SpaceClaim内でPythonスクリプトを使用してカムシャフトローブプロファイルの自動生成に成功すること。2つ目は、ANSYS SpaceClaim内のPythonスクリプトに関連する落とし穴を回避する方法を学ぶことです。
詳細
では、「なぜ」カムシャフトローブの生成を自動化したいのでしょうか?
4ストローク内燃機関では、カムシャフトはエンジンのクランクシャフトの回転に対して吸気バルブと排気バルブを開閉する役割を担っています。カムシャフトは「バルブトレイン」の一部であり、バルブが開閉するタイミング、開く距離、バルブが開閉する速度を決定するコンポーネントのシステムです。バルブトレインの構成によっては、さまざまなコンポーネントが関与している場合があり、バルブタイミングイベントの詳細を理解するためには、それらのコンポーネントをすべて一緒に評価する必要があります。カムシャフトローブプロファイルの作成は完全に任意ではなく、時には非常に複雑になることもあります。このプロファイルの生成プロセスを自動化することで、バルブトレインの設計プロセスにおいて、バルブタイミングイベントをより迅速に評価することができます。
これからどうするの?
まずモデリングするカムシャフトのプロファイルのタイプを理解し、SpaceClaim Scriptingで動作を記録しながら手動でジオメトリを生成し、ネイティブのPythonコードを生成します。
次に、SpaceClaimの新しいインスタンスで同じコードを “試して “使用し、どのような障害が存在するかを学習し、それらの障害に対する改善策を処方します。そして、Pythonスクリプトを使って、私たちが最初に設計したカムシャフトローブを再現することに成功します。
最後に、Pythonスクリプトをパラメータ化して、このプロファイルの新しいバリエーションを迅速に生成できるようにします。
カムシャフトプロファイル
カムシャフトのローブプロファイルは、単純なものから複雑なもの、対称的なものから非対称的なものまで様々です。このブログでは、最も基本的な設計の一つである、ベース円とノーズ円に焦点を当てます。この2つの円は、両円の接線で結ばれています。
まず、ベースサークルを38mm、ノーズサークルを26mmとし、その中心をベースサークルの中心から14mm上に置きます。最初の操作は、SpaceClaim を開いて、スクリプトインターフェイスにアクセスすることです。
デフォルトでは、”Record “モードがアクティブになっています。
まず、ベースとなる円を追加した後、何が記録されるかを理解しましょう。
具体的には、スケッチ平面が定義され、円が生成され、制約が生成されたことがわかります。この同じPythonコードをSpaceClaimの新しいインスタンスにコピーして、うまく実行できるかどうか調べてみましょう。
答えは “No “です。.なぜでしょう?スケッチ平面を通常どのように選択するからです。この SpaceClaim のインスタンスを閉じて、新しいインスタンスを開きましょう。スクリプトの記録方法を変更し、新しい円を生成し、テストを繰り返します。
まず、”Verbose “記録オプションを有効にします。
次に、選択の記録方法を “Smart Variable “から “Ray “に変更します。
ベースとなる円を追加した後に記録されたスクリプトは、今までと違って見えます。
この新しいスクリプトを SpaceClaim の新しいインスタンスで操作します。 これで、ベースとなる円がうまく生成されました!
鼻の円と2本の接線を追加する他のアクションはどうですか?
成功です! この新しいスクリプトを SpaceClaim の新しいインスタンスにコピーすると、ジオメトリが複製されます。ここまでは順調です。しかし、ジオメトリをパラメータ化しようとすると問題が発生します。ノーズサークルの直径を26mmから20mmに変更して、デモンストレーションしてみます。
以下のような問題が発生しました。 “選択” オブジェクトの選択選択することが最大の課題になることがわかりました。そこで、このジオメトリでは「選択」をできるだけ減らすことを提案します。 線や円のようなアイテムの選択は避けるべきです。そのために、別の方法でジオメトリを作成します。円を追加し、それらを結ぶ接線を作る代わりに、弧を作り、弧の端をベースからノーズまでつなぎます。この方法では、スクリプトを作成する際に、より注意深く考える必要があります。
スクリプト・ブロックの復習
私たちがオリジナルのスクリプト(円の追加)を記録したとき、スクリプト・ブロックに特定の要素があることがわかりました。
# スケッチ円
原点 = 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])
result = Constraint.CreateCoincident(baseSel, targetSel)
# エンドブロック
2つの点が定義されていることがわかります:「原点 “と “MM(19) “です。したがって、”SketchCircle.Create “関数は原点と半径を定義する必要があります。このブロックの他のすべては 選択 作成したアイテムと 制約 を平面に拘束します。この最後のセクションは、ジオメトリをうまく生成するために必要なものではありません。したがって、これらの余計なコマンドを削除して、以下のスクリプトを実行することをお勧めします。
# 円のスケッチ
原点 = Point2D.Create(MM(0), MM(0))
結果 = SketchCircle.Create(origin, MM(19))
# ブロック終了
そして…うまくいきました!
ここで、カムシャフトのプロファイルを生成するために必要な要素を特定するために、円弧と直線のスクリプトブロックを記録して、自分で調べることをお勧めします。私はすでにこれを実行し、以下のファイルを添付しました。 私のスクリプトはこちら をご覧ください。
私のスクリプトは、自動車カムシャフトの特性を特定する際に一般的に使用される用語にパラメータ化されています:
これらのパラメータを使用すると、以下の形状が生成されます。
このスクリプトをダウンロード そして、SpaceClaim用の実用的なPythonスクリプトの作成について学びましょう!😊。
デザイナーのためのフォーラムに参加しよう
あなたの専門知識はコミュニティにとって不可欠です。私たちに参加して、あなたの知識を提供してください。
今すぐフォーラムに参加する業界最高のプロフェッショナルと分かち合い、学び、成長する.