Ejemplo n.º 1
0
def rhombus_3x1_crane(n_steps = 10, dx = 1.0):
    '''
        This is a first modell, which should lift the creasepattern.
        It shows a configuration of constrains in which the crane will lift the pattern
        in the expectet form. NOTE: There is no influence of gravity.
    '''

    cp = Lifting(n_steps = n_steps, MAX_ITER = 500)

    cp.N = [[0, 0, 0], #0
                [0, 1, 0],
                [1, 0, 0],
                [1, 1, 0],
                [2, 0, 0],
                [2, 1, 0], #5
                [3, 0, 0],
                [3, 1, 0],
                [0, 0.5, 0],
                [3, 0.5, 0],
                [0.5, 0.5, 0], #10
                [1.5, 0.5, 0],
                [2.5, 0.5, 0],
                [0.5, 0.333, 0], #13
                [0.5, 0.667, 0],
                [1.5, 0.333, 0],
                [1.5, 0.667, 0],
                [2.5, 0.333, 0],
                [2.5, 0.667, 0],
                [1.5, 0.5, 1.0],
                [0, 0.5, 1], #20
                [3, 0.5, 1],
                [0, 0.333, 1.0],
                [0, 0.667, 1.0],
                [3, 0.333, 1.0],
                [3, 0.667, 1.0],
                [1.5, 0.333, 1.0],
                [1.5, 0.667, 1.0]
                ]

    cp.L = [[0, 2], #0
                       [0, 8],
                       [0, 10],
                       [1, 3],
                       [1, 8],
                       [1, 10],
                       [2, 4],
                       [2, 10],
                       [2, 11],
                       [3, 5],
                       [3, 10], #10
                       [3, 11],
                       [4, 6],
                       [4, 11],
                       [4, 12],
                       [5, 7],
                       [5, 11],
                       [5, 12],
                       [6, 9],
                       [6, 12],
                       [7, 9], #20
                       [7, 12],
                       [8, 10],
                       [9, 12],
                       [10, 11],
                       [11, 12],

                       [19, 20], #26
                       [19, 21],
                       [20, 22],
                       [20, 23],
                       [19, 26],
                       [19, 27],
                       [21, 24],
                       [21, 25],
                       [13, 22],
                       [14, 23],
                       [15, 26],
                       [16, 27],
                       [17, 24],
                       [18, 25],
                      # [20, 8],
                      # [9, 21]
                       ]

    cp.F = [[0, 2, 10],
                 [2, 4, 11],
                 [4, 6, 12],
                 [2, 11, 10],
                 [4, 11, 12],
                 [0, 8, 10],
                 [6, 9, 12],
                 [1, 3, 10],
                 [3, 5, 11],
                 [5, 7, 12],
                 [3, 10, 11],
                 [5, 11, 12],
                 [1, 8, 10],
                 [7, 9, 12]
                 ]
    cp.GP = [[13, 0],
                   [14, 7],
                   [15, 1],
                   [16, 8],
                   [17, 2],
                   [18, 9]
                   ]

    cp.cnstr_lhs = [[(19, 2, 1.0)],
                    [(19, 1, 1.0)],
                    [(19, 0, 1.0)],
                    [(20, 1, 1.0)],
                    [(20, 2, 1.0)],
                    [(21, 1, 1.0)],
                    [(21, 2, 1.0)],
                    [(20, 0, 1.0), (22, 0, -1.0)],
                    [(20, 0, 1.0), (23, 0, -1.0)],
                    [(20, 2, 1.0), (22, 2, -1.0)],
                    [(20, 2, 1.0), (23, 2, -1.0)],
                    [(19, 0, 1.0), (26, 0, -1.0)],
                    [(19, 0, 1.0), (27, 0, -1.0)],
                    [(19, 2, 1.0), (26, 2, -1.0)],
                    [(19, 2, 1.0), (27, 2, -1.0)],
                    [(21, 0, 1.0), (24, 0, -1.0)],
                    [(21, 0, 1.0), (25, 0, -1.0)],
                    [(21, 2, 1.0), (24, 2, -1.0)],
                    [(21, 2, 1.0), (25, 2, -1.0)],
                    [(14, 1, 1.0), (16, 1, -1.0)],

                    #[(8, 2, 1.0)],
                    [(11, 1, 1.0)],
                    #[(9, 2, 1.0)],
                    [(11, 0, 1.0)],
                    [(13, 0, 1.0), (14, 0, -1.0)],
                    [(16, 1, 1.0), (18, 1, -1.0)],
                    [(2, 2, 1.0), (4, 2, -1.0)],
                    #[(13, 2, 1.0), (17, 2, -1.0)],
                    [(13, 1, 1.0), (15, 1, -1.0)]
                    ]

    cp.cnstr_rhs[0] = dx

    cp.u_0[2] = 0.00005
    cp.u_0[5] = 0.00005
    cp.u_0[20] = 0.00005
    cp.u_0[23] = 0.00005

    cp.u_0[35] = 0.0003

    cp.u_0[8] = 0.00025
    cp.u_0[11] = 0.00025
    cp.u_0[14] = 0.00025
    cp.u_0[17] = 0.00025

    cp.u_0[32] = 0.00017
    cp.u_0[38] = 0.00017

    cp.u_0[41] = 0.00016334
    cp.u_0[44] = 0.00016334
    cp.u_0[47] = 0.00028335
    cp.u_0[50] = 0.00028335
    cp.u_0[53] = 0.00016334
    cp.u_0[56] = 0.00016334
    cp.u_0[59] = 0.00025
    cp.u_0[66] = 0.0001
    cp.u_0[68] = 0.00016334
    cp.u_0[69] = -0.0001
    cp.u_0[71] = 0.00016334
    cp.u_0[72] = 0.0001
    cp.u_0[74] = 0.00016334
    cp.u_0[75] = 0.0001
    cp.u_0[77] = 0.00016334
    cp.u_0[78] = -0.0001
    cp.u_0[80] = 0.00016334
    cp.u_0[81] = -0.0001
    cp.u_0[83] = 0.00016334
#    cp.u_0[86] = 0.00025
#    cp.u_0[89] = 0.00025
    
    print 'n_dofs', cp.n_dofs
    print 'n_c', cp.n_c
    print 'n_g', cp.n_g
    print 'necessary constraints', cp.n_dofs - cp.n_c - cp.n_g * cp.n_d - cp.n_l * 2
    print 'cnstr', len(cp.cnstr_lhs)

    return cp
Ejemplo n.º 2
0
def rhombus_3x1_crane(n_steps = 10, dx = 1.5):

    cp = Lifting(n_steps = n_steps, MAX_ITER = 5000)

    cp.N = [[0, 0, 0], #0
                [0, 1, 0],
                [1, 0, 0],
                [1, 1, 0],
                [2, 0, 0],
                [2, 1, 0], #5
                [3, 0, 0],
                [3, 1, 0],
                [0, 0.5, 0],
                [3, 0.5, 0],
                [0.5, 0.5, 0], #10
                [1.5, 0.5, 0],
                [2.5, 0.5, 0],
                [0.5, 0.333, 0], #13
                [0.5, 0.667, 0],
                [1.5, 0.333, 0],
                [1.5, 0.667, 0],
                [2.5, 0.333, 0],
                [2.5, 0.666, 0],
                #crane
                [0, 0, 1], #19
                [0.5, 0, 1],
                [1.5, 0, 1],
                [2.5, 0, 1],
                [3, 0, 1],
                [0, 1, 1.01],
                [0.5, 1, 1.], #25
                [1.5, 1, 1.],
                [2.5, 1, 1.],
                [3, 1, 1.],
                [0, 0.5, 1.],
                [3, 0.5, 1.], #30

                [0.5, 0.333, 1.],
                [0.5, 0.667, 1.],
                [1.5, 0.333, 1.],
                [1.5, 0.667, 1.],
                [2.5, 0.333, 1.], #35
                [2.5, 0.667, 1.],

                [0.5, 0.333, 1.2],
                [0.5, 0.667, 1.2],
                [1.5, 0.333, 1.2],
                [1.5, 0.667, 1.2], #40
                [2.5, 0.333, 1.2],
                [2.5, 0.667, 1.2],
                ]

    cp.L = [[0, 2], #0
                       [0, 8],
                       [0, 10],
                       [1, 3],
                       [1, 8],
                       [1, 10],
                       [2, 4],
                       [2, 10],
                       [2, 11],
                       [3, 5],
                       [3, 10], #10
                       [3, 11],
                       [4, 6],
                       [4, 11],
                       [4, 12],
                       [5, 7],
                       [5, 11],
                       [5, 12],
                       [6, 9],
                       [6, 12],
                       [7, 9], #20
                       [7, 12],
                       [8, 10],
                       [9, 12],
                       [10, 11],
                       [11, 12],
                       #crane
                       [19, 20],
                       [20, 21],
                       [21, 22],
                       [22, 23],
                       [24, 25], #30
                       [25, 26],
                       [26, 27],
                       [27, 28],
                       [19, 29],
                       [29, 24],
                       [20, 25],
                       [21, 26],
                       [22, 27],
                       [23, 30],
                       [30, 28], #40

                       [29, 8],
                       [30, 9],

                       [37, 13],
                       [38, 14],
                       [39, 15], #45
                       [40, 16],
                       [41, 17],
                       [42, 18]
                       ]

    cp.F = [[0, 2, 10],
                 [2, 4, 11],
                 [4, 6, 12],
                 [2, 11, 10],
                 [4, 11, 12],
                 [0, 8, 10],
                 [6, 9, 12],
                 [1, 3, 10],
                 [3, 5, 11],
                 [5, 7, 12],
                 [3, 10, 11],
                 [5, 11, 12],
                 [1, 8, 10],
                 [7, 9, 12]
                 ]
    cp.LP = [[31, 36],
                   [32, 36],
                   [33, 37],
                   [34, 37],
                   [35, 38],
                   [36, 38],

                   [31, 43],
                   [32, 44],
                   [33, 45],
                   [34, 46],
                   [35, 47],
                   [36, 48], ]

    cp.GP = [[13, 0],
                   [14, 7],
                   [15, 1],
                   [16, 8],
                   [17, 2],
                   [18, 9]
                   ]

    cp.cnstr_lhs = [[(39, 2, 1.0)],
                    [(39, 2, 1.0), (40, 2, -1.0)],

                    [(19, 2, 1.0)],
                    [(19, 2, 1.0), (20, 2, -1.0)],
                    [(20, 2, 1.0), (21, 2, -1.0)],
                    [(21, 2, 1.0), (22, 2, -1.0)],
                    [(22, 2, 1.0), (23, 2, -1.0)],
                    [(19, 2, 1.0), (29, 2, -1.0)],
                    [(29, 2, 1.0), (24, 2, -1.0)],
                    [(24, 2, 1.0), (25, 2, -1.0)],
                    [(25, 2, 1.0), (26, 2, -1.0)],
                    [(26, 2, 1.0), (27, 2, -1.0)],
                    [(27, 2, 1.0), (28, 2, -1.0)],
                    [(28, 2, 1.0), (30, 2, -1.0)],
                    [(19, 1, 1.0)],
                    [(19, 1, 1.0), (20, 1, -1.0)],
                    [(20, 1, 1.0), (21, 1, -1.0)],
                    [(21, 1, 1.0), (22, 1, -1.0)],
                    [(22, 1, 1.0), (23, 1, -1.0)],
                    [(19, 0, 1.0)],
                    [(19, 0, 1.0), (24, 0, -1.0)],
                    [(23, 0, 1.0), (30, 0, -1.0)],
                    [(19, 0, 1.0), (29, 0, -1.0)],

                    [(13, 1, 1.0), (37, 1, -1.0)],
                    [(14, 1, 1.0), (38, 1, -1.0)],
                    [(15, 1, 1.0), (39, 1, -1.0)],
                    [(16, 1, 1.0), (40, 1, -1.0)],
                    [(17, 1, 1.0), (41, 1, -1.0)],
                    [(18, 1, 1.0), (42, 1, -1.0)],

                    [(31, 1, 1.0), (33, 1, -1.0)],
                    [(33, 1, 1.0), (35, 1, -1.0)],
                    [(32, 1, 1.0), (34, 1, -1.0)],
                    #[(34, 1, 1.0), (36, 1, -1.0)],

                    [(32, 1, 1.0), (31, 1, 1.0)],

                    #[(37, 2, 1.0), (38, 2, -1.0)],
                    #[(39, 2, 1.0), (40, 2, -1.0)], siehe oben verknuepfung lasteinleitung
                    [(41, 2, 1.0), (42, 2, -1.0)],

                    [(39, 0, 1.0)],
                    [(40, 0, 1.0)],

                    [(37, 2, 1.0), (41, 2, -1.0)],
                    [(2, 1, 1.0), (4, 1, -1.0)]
                    ]

    cp.cnstr_rhs[0] = dx

    cp.u_0[2] = 0.00005
    cp.u_0[5] = 0.00005
    cp.u_0[20] = 0.00005
    cp.u_0[23] = 0.00005

    cp.u_0[35] = 0.0003

    cp.u_0[8] = 0.00025
    cp.u_0[11] = 0.00025
    cp.u_0[14] = 0.00025
    cp.u_0[17] = 0.00025

    cp.u_0[32] = 0.00017
    cp.u_0[38] = 0.00017

    cp.u_0[41] = 0.00016334
    cp.u_0[44] = 0.00016334
    cp.u_0[47] = 0.00028335
    cp.u_0[50] = 0.00028335
    cp.u_0[53] = 0.00016334
    cp.u_0[56] = 0.00016334

    cp.u_0[119] = 0.00028335
    cp.u_0[122] = 0.00028335
    cp.u_0[113] = 0.00016334
    cp.u_0[116] = 0.00016334
    cp.u_0[125] = 0.00016334
    cp.u_0[128] = 0.00016334

    print 'n_dofs', cp.n_dofs
    print 'n_c', cp.n_c
    print 'n_g', cp.n_g
    print 'necessary constraints', cp.n_dofs - cp.n_c - cp.n_g * cp.n_d - cp.n_l * 2
    print 'cnstr', len(cp.cnstr_lhs)

    return cp
Ejemplo n.º 3
0
def rhombus_3x1_crane_sticks(n_steps=10, dx=1.0):

    cp = Lifting(n_steps=n_steps, MAX_ITER=500)

    cp.N = [[0, 0, 0], #0
                [0, 1, 0],
                [1, 0, 0],
                [1, 1, 0],
                [2, 0, 0],
                [2, 1, 0], #5
                [3, 0, 0],
                [3, 1, 0],
                [0, 0.5, 0],
                [3, 0.5, 0],
                [0.5, 0.5, 0], #10
                [1.5, 0.5, 0],
                [2.5, 0.5, 0],
                [0.5, 0.333, 0], #13
                [0.5, 0.667, 0],
                [1.5, 0.333, 0],
                [1.5, 0.667, 0],
                [2.5, 0.333, 0],
                [2.5, 0.666, 0],
                [1.5, 0.5, 1.0],
                [0, 0.5, 1],
                [3, 0.5, 1],
                [0.5, 0.5, 1.0],
                [2.5, 0.5, 1.0],
                [0.5, 0.333, 1.0],
                [0.5, 0.667, 1.0],
                [2.5, 0.333, 1.0],
                [2.5, 0.667, 1.0],
                [1.5, 0.333, 1.0],
                [1.5, 0.667, 1.0]
                ]

    cp.L = [[0, 2], #0
                       [0, 8],
                       [0, 10],
                       [1, 3],
                       [1, 8],
                       [1, 10],
                       [2, 4],
                       [2, 10],
                       [2, 11],
                       [3, 5],
                       [3, 10], #10
                       [3, 11],
                       [4, 6],
                       [4, 11],
                       [4, 12],
                       [5, 7],
                       [5, 11],
                       [5, 12],
                       [6, 9],
                       [6, 12],
                       [7, 9], #20
                       [7, 12],
                       [8, 10],
                       [9, 12],
                       [10, 11],
                       [11, 12],
                       [19, 20], #26
                       [19, 21],
                       [22, 24],
                       [22, 25],
                       [19, 28],
                       [19, 29],
                       [23, 26],
                       [23, 27],
                       [13, 24],
                       [14, 25],
                       [15, 28],
                       [16, 29],
                       [17, 26],
                       [18, 27],
                       [20, 8],
                       [9, 21]
                       ]

    cp.F = [[0, 2, 10],
                 [2, 4, 11],
                 [4, 6, 12],
                 [2, 11, 10],
                 [4, 11, 12],
                 [0, 8, 10],
                 [6, 9, 12],
                 [1, 3, 10],
                 [3, 5, 11],
                 [5, 7, 12],
                 [3, 10, 11],
                 [5, 11, 12],
                 [1, 8, 10],
                 [7, 9, 12]
                 ]
    cp.LP = [[22, 26],
                   [23, 27]]

    cp.GP = [[13, 0],
                   [14, 7],
                   [15, 1],
                   [16, 8],
                   [17, 2],
                   [18, 9]
                   ]

    cp.cnstr_lhs = [[(19, 2, 1.0)],
                    [(19, 1, 1.0)],
                    [(19, 0, 1.0)],
                    [(20, 1, 1.0)],
                    [(20, 2, 1.0)],
                    [(21, 1, 1.0)],
                    [(21, 2, 1.0)],
                    [(22, 0, 1.0), (24, 0, -1.0)],
                    [(22, 0, 1.0), (25, 0, -1.0)],
                    [(22, 2, 1.0), (24, 2, -1.0)],
                    [(22, 2, 1.0), (25, 2, -1.0)],
                    [(19, 0, 1.0), (28, 0, -1.0)],
                    [(19, 0, 1.0), (29, 0, -1.0)],
                    [(19, 2, 1.0), (28, 2, -1.0)],
                    [(19, 2, 1.0), (29, 2, -1.0)],
                    [(23, 0, 1.0), (26, 0, -1.0)],
                    [(23, 0, 1.0), (27, 0, -1.0)],
                    [(23, 2, 1.0), (26, 2, -1.0)],
                    [(23, 2, 1.0), (27, 2, -1.0)],
                    [(14, 1, 1.0), (16, 1, -1.0)],

                    #[(8, 2, 1.0)],
                    [(11, 1, 1.0)],
                    #[(9, 2, 1.0)],
                    [(11, 0, 1.0)],
                    [(13, 0, 1.0), (14, 0, -1.0)],
                    [(16, 1, 1.0), (18, 1, -1.0)],
                    [(2, 2, 1.0), (4, 2, -1.0)],
                    #[(13, 2, 1.0), (17, 2, -1.0)],
                    [(13, 1, 1.0), (15, 1, -1.0)]
                    ]

    cp.cnstr_rhs[0] = dx

    cp.u_0[2] = 0.00005
    cp.u_0[5] = 0.00005
    cp.u_0[20] = 0.00005
    cp.u_0[23] = 0.00005

    cp.u_0[35] = 0.0003

    cp.u_0[8] = 0.00025
    cp.u_0[11] = 0.00025
    cp.u_0[14] = 0.00025
    cp.u_0[17] = 0.00025

    cp.u_0[32] = 0.00017
    cp.u_0[38] = 0.00017

    cp.u_0[41] = 0.00016334
    cp.u_0[44] = 0.00016334
    cp.u_0[47] = 0.00028335
    cp.u_0[50] = 0.00028335
    cp.u_0[53] = 0.00016334
    cp.u_0[56] = 0.00016334
    cp.u_0[59] = 0.00025
    cp.u_0[66] = 0.0001
    cp.u_0[68] = 0.00016334
    cp.u_0[69] = -0.0001
    cp.u_0[71] = 0.00016334
    cp.u_0[72] = 0.0001
    cp.u_0[74] = 0.00016334
    cp.u_0[75] = 0.0001
    cp.u_0[77] = 0.00016334
    cp.u_0[78] = -0.0001
    cp.u_0[80] = 0.00016334
    cp.u_0[81] = -0.0001
    cp.u_0[83] = 0.00016334
    cp.u_0[86] = 0.00025
    cp.u_0[89] = 0.00025

    print 'n_dofs', cp.n_dofs
    print 'n_c', cp.n_c
    print 'n_g', cp.n_g
    print 'necessary constraints', cp.n_dofs - cp.n_c - cp.n_g * cp.n_d - cp.n_l * 2
    print 'cnstr', len(cp.cnstr_lhs)

    return cp