public static function add($object) { // ADD LOAD CASE \Classes\Factory\Model\Model::addInstance($object); //GET MASS MATRIX TABLE $massTable = \Classes\Factory\Model\Model::getMassMatrixTable(); $masses = json_decode($object->getProperty('masses')->get(), TRUE); if (!empty($masses)) { $connection = new \Classes\Factory\Connection\MassMatrixConnection\MassMatrixConnection($masses); $massTable->setConnection($object->getUin(), $connection); } }
public static function add($object) { // NODE 1 $node1 = new \Classes\Instance\Node\Node(); $node1->setProperty('x', $object->getProperty('x1')); $node1->setProperty('y', $object->getProperty('y1')); $node1->setProperty('z', $object->getProperty('z1')); // NODE 2 $node2 = new \Classes\Instance\Node\Node(); $node2->setProperty('x', $object->getProperty('x2')); $node2->setProperty('y', $object->getProperty('y2')); $node2->setProperty('z', $object->getProperty('z2')); // MEMBER $member = new \Classes\Instance\Member\Member(); $member->setProperty('betaAngle', $object->getProperty('betaAngle')); $member->setProperty('isDivided', $object->getProperty('isDivided')); $member->setProperty('name', $object->getProperty('name')); // SECTION $sectionString = NULL; if (\Classes\Utils\Section\Steel\SectionType::steelProfile($sectionString, $object->getProperty('sectionType')->get(), $object->getProperty('sectionName')->get())) { $section = new \Classes\Value\StringValue($sectionString); // var_dump($sectionString); $member->setProperty('section', $section); } // ADD TO MODEL \Classes\Factory\Model\Model::addInstance($node1); \Classes\Factory\Model\Model::addInstance($node2); \Classes\Factory\Model\Model::addInstance($member); // PINS $pin1 = new \Classes\Factory\Connection\SixFreedomConnection\PinConnection($object->getProperty('pin1')->get()); $pin2 = new \Classes\Factory\Connection\SixFreedomConnection\PinConnection($object->getProperty('pin2')->get()); // ADD TO HASH TABLE $hashTable = \Classes\Factory\Model\Model::getHashTable(); $hashTable->setConnection($node1->getUin(), $member->getUin(), $pin1); $hashTable->setConnection($node2->getUin(), $member->getUin(), $pin2); // MAKE CHECK GROUP FOR STEEL MEMBER $group = new \Classes\Instance\Group\SteelMember\SteelMemberCheckGroup(); $group->setProperty('steel', $object->getProperty('steel')); $group->setProperty('Ry', $object->getProperty('Ry')); $group->setProperty('muXZ', $object->getProperty('muXZ')); $group->setProperty('muXY', $object->getProperty('muXY')); $group->setProperty('gammaC', $object->getProperty('gammaC')); $group->setProperty('FC', $object->getProperty('FC')); $group->setProperty('name', $object->getProperty('name')); // CREATE LISTBOX $memberList = new \Classes\Listbox\Listbox(\Classes\Factory\Model\Model::getMemberActionCollection()); $memberList->add($member->getUin()); // ADD LISTBOX TO GROUP $group->setProperty('listbox', $memberList); // ADD GROUP TO MODEL \Classes\Factory\Model\Model::addInstance($group); }
public static function divideMemberByNode($memberUin, $nodeUin) { // Get nodes and members $nodes = \Classes\Factory\Model\Model::getNodes(); $members = \Classes\Factory\Model\Model::getMembers(); $hashTable = \Classes\Factory\Model\Model::getHashTable(); // TODO isDivided //Check are node and member exist or not if (!isset($nodes[$nodeUin]) || !isset($members[$memberUin])) { return FALSE; } // Check if member is divided if ($members[$memberUin]->getProperty('isDivided')->get() == FALSE) { return FALSE; } // Get 2nd connection from oldMember $hash = $hashTable->getConnection($memberUin); $uin2 = array_keys($hash)[1]; $con2 = array_values($hash)[1]; // Create zero Pin connection $zeroPin = new \Classes\Factory\Connection\SixFreedomConnection\PinConnection(); // Remove 2nd connection from oldMember $hashTable->removeConnection($memberUin, $uin2); // Set 2nd connection to oldMember $hashTable->setConnection($memberUin, $nodeUin, $zeroPin); // Create newMember same as oldMember $newMember = clone $members[$memberUin]; // echo "<br/>"; // echo "DIVIDE MEMBER $memberUin<br/>"; // echo "BY NODE $nodeUin<br/>"; // echo "NEW MEMBER " . $newMember->getUin() . "<br/>"; // echo "<br/>"; //Add member to Model \Classes\Factory\Model\Model::addInstance($newMember); // Set 1st connection to newMember $hashTable->setConnection($newMember->getUin(), $nodeUin, $zeroPin); // Set 2nd connection to newMember $hashTable->setConnection($newMember->getUin(), $uin2, $con2); // Add information about operation in ListBoxCollection $actionCollection = \Classes\Factory\Model\Model::getMemberActionCollection(); $actionCollection->addAction(new \Classes\Listbox\Action\ReplaceListboxAction($memberUin, array($memberUin, $newMember->getUin()))); return $newMember->getUin(); }
/** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. */ protected function setUp() { // NODE 1 $node1 = new \Classes\Instance\Node\Node(); $this->node1Uin = $node1->getUin(); $node1->setProperty('x', new \Classes\Value\FloatValue(0)); $node1->setProperty('y', new \Classes\Value\FloatValue(3)); $node1->setProperty('z', new \Classes\Value\FloatValue(0)); // NODE 2 $node2 = new \Classes\Instance\Node\Node(); $this->node2Uin = $node2->getUin(); $node2->setProperty('x', new \Classes\Value\FloatValue(0)); $node2->setProperty('y', new \Classes\Value\FloatValue(3)); $node2->setProperty('z', new \Classes\Value\FloatValue(5)); // NODE 3 $node3 = new \Classes\Instance\Node\Node(); $this->node3Uin = $node3->getUin(); $node3->setProperty('x', new \Classes\Value\FloatValue(0)); $node3->setProperty('y', new \Classes\Value\FloatValue(0)); $node3->setProperty('z', new \Classes\Value\FloatValue(0.5)); // MEMBER $member1 = new \Classes\Instance\Member\Member(); $member1->setProperty('isDivided', new \Classes\Value\IntValue(1)); $this->member1Uin = $member1->getUin(); // ADD TO MODEL \Classes\Factory\Model\Model::addInstance($node1); \Classes\Factory\Model\Model::addInstance($node2); \Classes\Factory\Model\Model::addInstance($node3); \Classes\Factory\Model\Model::addInstance($member1); // PINS $pin1 = new \Classes\Factory\Connection\SixFreedomConnection\PinConnection('000011'); $pin2 = new \Classes\Factory\Connection\SixFreedomConnection\PinConnection('000111'); // ADD TO HASH TABLE $hashTable = \Classes\Factory\Model\Model::getHashTable(); $hashTable->setConnection($this->node1Uin, $this->member1Uin, $pin1); $hashTable->setConnection($this->node2Uin, $this->member1Uin, $pin2); }
public static function add($object) { // NODE 1 $node1 = new \Classes\Instance\Node\Node(); $node1->setProperty('x', $object->getProperty('x1')); $node1->setProperty('y', $object->getProperty('y1')); $node1->setProperty('z', $object->getProperty('z1')); // NODE 2 $node2 = new \Classes\Instance\Node\Node(); $node2->setProperty('x', $object->getProperty('x2')); $node2->setProperty('y', $object->getProperty('y2')); $node2->setProperty('z', $object->getProperty('z2')); // MEMBER $member = new \Classes\Instance\Member\Member(); $member->setProperty('betaAngle', $object->getProperty('betaAngle')); $member->setProperty('isDivided', $object->getProperty('isDivided')); $member->setProperty('name', $object->getProperty('name')); // SECTION $sectionString = NULL; if (\Classes\Utils\Section\Parameter\SectionType::parameterSectionName($sectionString, $object->getProperty('E')->get(), $object->getProperty('nu')->get(), $object->getProperty('density')->get(), $object->getProperty('tmp')->get(), $object->getProperty('sectionType')->get(), $object->getProperty('sectionProperty')->get())) { $section = new \Classes\Value\StringValue($sectionString); // var_dump($sectionString); $member->setProperty('section', $section); } // ADD TO MODEL \Classes\Factory\Model\Model::addInstance($node1); \Classes\Factory\Model\Model::addInstance($node2); \Classes\Factory\Model\Model::addInstance($member); // PINS $pin1 = new \Classes\Factory\Connection\SixFreedomConnection\PinConnection($object->getProperty('pin1')->get()); $pin2 = new \Classes\Factory\Connection\SixFreedomConnection\PinConnection($object->getProperty('pin2')->get()); // ADD TO HASH TABLE $hashTable = \Classes\Factory\Model\Model::getHashTable(); $hashTable->setConnection($node1->getUin(), $member->getUin(), $pin1); $hashTable->setConnection($node2->getUin(), $member->getUin(), $pin2); }
public static function add($object, &$notFoundObjects) { // get OBJECT self::$object = $object; // Get NODES, MEMBERS self::$nodes = \Classes\Factory\Model\Model::getNodes(); self::$members = \Classes\Factory\Model\Model::getMembers(); //Get TABLES self::$hashTable = \Classes\Factory\Model\Model::getHashTable(); self::$loadTable = \Classes\Factory\Model\Model::getLoadTable(); // Set FOUND to FALSE self::$isFound = FALSE; self::$loads = array(); self::$notFoundObject = array(); //Get Properties self::$loadCase = $object->getProperty('loadCase'); self::$name = $object->getProperty('name'); $isDirectionCorrect = \Classes\Utils\Load\LoadDirection::get(self::$direction, $object->getProperty('direction')->get()); if (!$isDirectionCorrect) { throw new \Classes\Exception\Factory\Model\Addition\MemberLoadAddition\IncorrectDirectionException('Incorrect Load Direction'); } // Make direction Property self::$direction = new \Classes\Value\IntValue(self::$direction); self::$x1 = $object->getProperty('x1'); self::$y1 = $object->getProperty('y1'); self::$z1 = $object->getProperty('z1'); self::$value1 = $object->getProperty('value1'); // Check type of load $type = $object->getProperty('type')->get(); // Load type isn't correct if ($type != "C" && $type != "D") { throw new \Classes\Exception\Factory\Model\Addition\MemberLoadAddition\IncorrectTypeException('Incorrect Load Type'); } if ($type == "C") { // If $object will not be found // $object itself will be returned self::$notFoundObject = array(self::$object); // TRY TO APPLY TO NODE self::addNodeConcentratedLoad(); // TRY TO APPLY TO MEMBER if (!self::$isFound) { self::addMemberConcentratedLoad(); } } if ($type == "D") { self::addmemberDistributedLoad(); } foreach (self::$loads as $load) { // Set Properties $load->setProperty('loadCase', self::$loadCase); $load->setProperty('name', self::$name); $load->setProperty('direction', self::$direction); // Add to model \Classes\Factory\Model\Model::addInstance($load); } // If $object is NOT applied if (!self::$isFound) { // Return not found objects $notFoundObjects = self::$notFoundObject; return FALSE; } return TRUE; }
private static function setLoadProperties($load) { // Set Properties $load->setProperty('loadCase', self::$loadCase); $load->setProperty('name', self::$name); $load->setProperty('direction', self::$direction); // Add to model \Classes\Factory\Model\Model::addInstance($load); }