あなたの質問はかなり広く、私の説明はやや長くなりました。私は軸方向と半径方向の両方の治療のための爆発アルゴリズムの2つの変形を提案します。部品P4
からP1
が互いに正確に触れながら、
P1: [ 0,10] (battery)
P2: [10,14] (motor)
P3: [14,16] (cog)
P4: [16,24] (bit holder)
P5: [18,26] (gear casing)
P4
とP5
:私は(、唯一の軸に沿ってのみ、5つの部分を境界ボックス)以下の数字を使用します例でそれらを説明するために
実際に重なっている。
最初のアルゴリズムは、提案したような基本的な距離で距離をスケーリングするアルゴリズムです。アセンブリのサイズが大きく異なる場合でも、部品が重なっている場合(例えば、軸に沿った例では、円弧の延長線がビットホルダよりもはるかに小さい)、問題が発生します。
スケーリング係数をf
とすると、各境界ボックスの中心はf
でスケーリングされますが、拡張子はスケーリングされません。部品は、その後、差がf=0
ためではなく、任意のゼロであり、予想されたようP4
からP1'
部の間は、次に
P2' - P1' : (12*f-2) - (5*f+5) = 7*(f-1)
P3' - P2' : (15*f-1) - (12*f+2) = 3*(f-1)
P4' - P3' : (20*f-4) - (15*f+1) = 5*(f-5)
によって与えられる
P1: 5 + [-5,5] => P1': 5*f + [-5,5]
P2: 12 + [-2,2] => P2': 12*f + [-2,2]
P3: 15 + [-1,1] => P3': 15*f + [-1,1]
P4: 20 + [-4,4] => P4': 20*f + [-4,4]
P5: 22 + [-4,4] => P5': 22*f + [-4,4]
距離は、距離が強くサイズに依存するビューを分解することになります別々の部品の私はサイズのバリエーションが大きければ、これがあまりにも良く見えるとは思わない。重複する部分
P5' - P4' : (22*f-4) - (20*f+4) = 2*f-8
それらは依然として妥当fに対する重複のためにさらに
。
もう1つの可能性は、軸のスケーリング係数ではなく、一定の部分距離d
を定義することです。次いで、バウンディングボックスは、次のように整列される。
P1': [ 0,10]
P2': [10,14]+d
P3': [14,16]+2*d
P4': [16,24]+3*d
P5': [18,26]+4*d+6
注最後の行に、我々は2つの部分を区別するために、すなわち重なり、24-8=6
を追加しました。
このアルゴリズムは、私の意見では、複数の他の部分をカバーするパーツに特別な注意を払わなければならず、グルーピングに含めるべきではありません。 。
最初の手順でパーツをグループにグループ化し、アルゴリズムをこれらのグループのバウンディングボックスに適用することが考えられます。その後、複数のサブグループをカバーする部品を省略して、各グループの部品に再度適用することができます。あなたのケースでは、(ネストされたグループ化が可能であることに注意)次のようになります。
[
([battery,(switch,circuit switch),motor],handle top),
motor cog,
tri-cog,
red-cog,
circle-cog,
bit-holder,
(gear casing,spring,lock knob)
]
あなたは、私がグループの二つの異なる種類を導入していることが表示される場合があります。角括弧内の部品/グループは、アルゴリズムによって処理され、間隔は、すなわちそのようなグループ内の各パート/サブグループの間に追加されますが、中括弧内のグループは分解されません。
これまでは軸治療から切り離されていたため、半径方向の爆発は扱っていませんでした。しかし、やはり、ラジアル爆発の場合にも、どちらのアプローチも同じように使用できます。しかし、私の意見では、2番目のアルゴリズムはより快適な結果をもたらします。例えば。放射状の治療のために次のようにグループを行うことができる。この場合
[
(battery,switch,<many parts>,gear casing),
(switch,spring),
(handle top, lock knob)
]
我々は第三のグループ内のすべてのに追加の第二のグループ内のすべての半径方向中心に成分r
と2*r
を追加します。
シンプルスケーリングアルゴリズムは特別なユーザーガイダンス(スケーリングファクタが与えられた後)なしで実行され、2番目のものは追加情報(グループ化)を使用します。
これよりかなり長い説明が、今後の進め方についてのご意見をお寄せください。私の説明がある時点で不明確な場合や、さらに質問がある場合は、お気軽にコメントしてください。
ワウ。徹底的に+1。私がもっと与えることを望みます。 –