RubendeBruin / DAVE

DAVE - Design Analysis Visualization and Engineering
Mozilla Public License 2.0
29 stars 7 forks source link

Non-converging model #136

Closed RubendeBruin closed 7 months ago

RubendeBruin commented 9 months ago
from DAVE import *

def solved(v):
    return v

s = Scene()

# code for Load
s.new_rigidbody(name='Load',
                mass=65,
                cog=(0,
                     0,
                     0),
           position=(solved(0.8953797202329822),
                     solved(-3.311762470229878e-06),
                     solved(-8.7318317056331)),
           rotation=(0,
                     solved(-149.106),
                     0),
           fixed =(False, False, False, True, False, True),
                )

# code for point_right
s.new_point(name='point_right',
          position=(0.492,
                    0,
                    0))

# code for point_left
s.new_point(name='point_left',
          position=(0,
                    0,
                    -4.5095))

# code for Pnt
s.new_point(name='Pnt',
          parent='Load',
          position=(0,
                    0,
                    0))

# code for right
c = s.new_circle(name='right',
            parent='point_right',
            axis=(1, 0, 0),
            radius=0.254 )

# code for left
c = s.new_circle(name='left',
            parent='point_left',
            axis=(1, 0, 0),
            radius=0.05 )

# code for sheave
c = s.new_circle(name='sheave',
            parent='Pnt',
            axis=(0, 1, 0),
            radius=2 )

# code for Grommet/_grommet
s.new_cable(name='Grommet/_grommet',
            endA='point_left',
            endB='point_left',
            length=40.531,
            diameter=0.06,
            EA=246099.80211161007,
            sheaves = ['sheave',
                       'right',
                       'sheave'])
s['Grommet/_grommet'].reversed = (False, True, True, False, False)

s['point_left']._visible = False
RubendeBruin commented 9 months ago

Simpler model:

image

# code for Load
s.new_rigidbody(name='Load',
                mass=65,
                cog=(0,
                     0,
                     0),
           position=(solved(0.9385348048949009),
                     solved(-3.2431331580789704e-16),
                     solved(-8.413940370879835)),
           rotation=(0,
                     solved(-101.516),
                     0),
           fixed =(False, False, False, True, False, True),
                )

# code for point_right
s.new_point(name='point_right',
          position=(0.492,
                    1,
                    0))

# code for point_left
s.new_point(name='point_left',
          position=(0,
                    0,
                    -4.5095))

# code for point_right2
s.new_point(name='point_right2',
          position=(0.492,
                    -1,
                    0))

# code for Pnt
s.new_point(name='Pnt',
          parent='Load',
          position=(0,
                    0,
                    0))

# code for sheave
c = s.new_circle(name='sheave',
            parent='Pnt',
            axis=(0, 1, 0),
            radius=2 )

# code for Grommet/_grommet
s.new_cable(name='Grommet/_grommet',
            endA='point_left',
            endB='point_left',
            length=40.531,
            diameter=0.06,
            EA=246099.80211161007,
            sheaves = ['sheave',
                       'point_right',
                       'point_right2',
                       'sheave'])
s['Grommet/_grommet'].reversed = (False, True, False, False, False, False)
RubendeBruin commented 9 months ago

If a round-bar is used instead of a circle then the model DOES converge

RubendeBruin commented 9 months ago

--> DAVECore branch fix_136