from oricrete.folding.cnstr_target_face import \ CnstrTargetFace, r_, s_, t_ from oricrete.folding.crease_pattern import \ CreasePattern from oricrete.folding.crease_pattern_view import \ CreasePatternView import numpy as np from scipy.optimize import fmin_slsqp if __name__ == '__main__': caf = CnstrTargetFace(F = [r_ , s_, 0.01 + t_ * (r_ ** 2 * s_ ** 2 + 0.2 * r_)]) # trivial example with a single triangle positioned cp = CreasePattern(n_steps = 3) cp.nodes = [[ 0, 0, 0 ], [ 1, 0, 0 ], [ 0.5, -0.5, 0 ], [ 0.5, 0.5, 0], [ 1, 1, 0], [ 1.5, 0.5, 0], [ 0, 1, 0], ] cp.crease_lines = [[ 0, 2 ], [ 2, 1 ], [ 0, 3 ], [ 3, 1 ], [ 2, 3],
from oricrete.folding.cnstr_target_face import CnstrTargetFace, r_, s_, t_ from oricrete.folding.crease_pattern import CreasePattern from oricrete.folding.crease_pattern_view import CreasePatternView import numpy as np from scipy.optimize import fmin_slsqp if __name__ == "__main__": caf = CnstrTargetFace( # F=[r_, s_, 0.01 + t_ * (r_ ** 2 * s_ ** 2 + 0.2 * r_)] F=[r_, s_, t_] ) # trivial example with a single triangle positioned cp = CreasePattern(n_steps=1) if False: cp.nodes = [[0, 0, 0], [1, 0, 0], [0.5, 0.5, 0]] cp.crease_lines = [[0, 1], [1, 2], [2, 0]] cp.facets = [[0, 1, 2]] else: cp.nodes = [[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [0.5, 0.5, 0]] cp.crease_lines = [[0, 1], [1, 2], [3, 0], [0, 4], [1, 4], [2, 4], [3, 4]] cp.facets = [[0, 1, 4], [1, 2, 4], [4, 3, 0]] cp.tf_lst = [(caf, [0, 1, 4])] cp.cnstr_lhs = [
caf = CnstrTargetFace(F = [r_ , s_, 2]) print 'x_arr:\n', caf.X_arr print 'r_arr:\n', caf.r_arr print 'd_arr:\n', caf.d_arr caf.X_arr = caf.X_arr + 1.0 print 'x_arr:\n', caf.X_arr print 'r_arr:\n', caf.r_arr print 'd_arr:\n', caf.d_arr # trivial example with a single triangle positioned cp = CreasePattern() cp.nodes = [[ 0, 0, 0 ], [ 1, 1, 0 ], [ 0, 2, 0 ]] cp.crease_lines = [[ 0, 1 ], [ 1, 2 ]] cp.cnstr_lhs = [[(0, 0, 1.0)], [(0, 1, 1.0)], [(0, 2, 1.0)], [(2, 0, 1.0)], [(2, 1, 1.0)], [(2, 2, 1.0)], ]
caf = CnstrTargetFace(F=[r_, s_, 1]) print "x_arr:\n", caf.X_arr print "r_arr:\n", caf.r_arr print "d_arr:\n", caf.d_arr caf.X_arr = caf.X_arr + 1.0 print "x_arr:\n", caf.X_arr print "r_arr:\n", caf.r_arr print "d_arr:\n", caf.d_arr # trivial example with a single triangle positioned cp = CreasePattern() cp.nodes = [[0, 0, 0], [1, 0, 0], [0.5, -0.5, 0], [0.5, 0.5, 0]] cp.crease_lines = [[0, 2], [2, 1], [0, 3], [3, 1], [2, 3]] cp.facets = [[0, 3, 2], [1, 2, 3]] cp.cnstr_lhs = [[(0, 0, 1.0)], [(0, 1, 1.0)], [(0, 2, 1.0)], [(1, 1, 1.0)], [(1, 2, 1.0)], [(3, 2, 1.0)]] cp.cnstr_rhs = [0.0, 0.0, 0.0, 0, 0, 0.2] x0 = np.zeros((cp.n_dofs), dtype=float) print "initial lengths\n", cp.c_lengths print "initial vectors\n", cp.c_vectors print "initial R\n", cp.get_G(x0)