function doExecute(\Classes\Controller\Controller\Request $request) { \Classes\Utils\Timer\Timer::start('DIVIDE_ALL_MEMBERS'); \Classes\Utils\Member\DivideMember::divideAllMembersByExistingNodes(); \Classes\Utils\Timer\Timer::stop('DIVIDE_ALL_MEMBERS'); $request->addFeedback(\Classes\Utils\Timer\Timer::show('DIVIDE_ALL_MEMBERS')); include \Classes\Controller\Util\Utils::createViewName('divideAllMemberByExistingNodes'); }
function doExecute(\Classes\Controller\Controller\Request $request) { \Classes\Utils\Timer\Timer::start('COMBINE_DOUBLE_NODES'); \Classes\Utils\Node\DoubleNodes::combineAll(array(\Classes\Factory\Model\Model::getHashTable())); \Classes\Utils\Timer\Timer::stop('COMBINE_DOUBLE_NODES'); $request->addFeedback(\Classes\Utils\Timer\Timer::show('COMBINE_DOUBLE_NODES')); include \Classes\Controller\Util\Utils::createViewName('combineDoubleNodes'); }
function doExecute(\Classes\Controller\Controller\Request $request) { \Classes\Utils\Timer\Timer::start('LOADS_UPLOAD'); // Получаем переменные $filename = $request->getProperty('filename'); $uploadFactory = new \Classes\Factory\Import\Instance\InstanceUploaderFromExcel(); $objectArray = $uploadFactory->upload($filename, new \Classes\Instance\Load\Member\CommonMemberLoad()); $notFoundObjects = \Classes\Factory\Model\Addition\MemberLoadAddition::add($objectArray); $request->addFeedback($notFoundObjects); \Classes\Utils\Timer\Timer::stop('LOADS_UPLOAD'); $request->addFeedback(\Classes\Utils\Timer\Timer::show('LOADS_UPLOAD')); include \Classes\Controller\Util\Utils::createViewName('importCommonMemberLoadsFromExcel'); }
function doExecute(\Classes\Controller\Controller\Request $request) { \Classes\Utils\Timer\Timer::start('PARAMETER_MEMBER_UPLOAD'); // Получаем переменные $filename = $request->getProperty('filename'); $uploadFactory = new \Classes\Factory\Import\Instance\InstanceUploaderFromExcel(); $objectArray = $uploadFactory->upload($filename, new \Classes\Instance\Member\ParameterMember()); foreach ($objectArray as &$object) { \Classes\Factory\Model\Addition\ParameterMemberAddition::add($object); } \Classes\Utils\Timer\Timer::stop('PARAMETER_MEMBER_UPLOAD'); $request->addFeedback(\Classes\Utils\Timer\Timer::show('PARAMETER_MEMBER_UPLOAD')); include \Classes\Controller\Util\Utils::createViewName('importParameterMembersFromExcel'); }
function doExecute(\Classes\Controller\Controller\Request $request) { \Classes\Utils\Timer\Timer::start('MODEL_EXPORT'); // Получаем переменные $filename = $request->getProperty('filename'); $path = \Classes\Controller\Util\Utils::tempPath() . DIRECTORY_SEPARATOR . $filename; // NUMERATION \Classes\Utils\Member\Numeration::numerateFromOne(); \Classes\Utils\Node\Numeration::numerateFromOne(); // EXPORT \Classes\Factory\Export\Scad21ExportFactory::export($path); \Classes\Utils\Timer\Timer::stop('MODEL_EXPORT'); $request->addFeedback(\Classes\Utils\Timer\Timer::show('MODEL_EXPORT')); include \Classes\Controller\Util\Utils::createViewName('exportModelToScad21'); }
public static function divideAllMembersByExistingNodes() { // SORT NODES \Classes\Utils\Timer\Timer::start('SORT_NODES'); \Classes\Factory\Model\Model::sortNodes(); \Classes\Utils\Timer\Timer::start('SORT_NODES'); // Get nodes and members $nodes = \Classes\Factory\Model\Model::getNodes(); $hashTable = \Classes\Factory\Model\Model::getHashTable(); // Array [uin] => [0 - 1st point, 1 - 2nd point] $actualMemberUins = array(); foreach ($nodes as $node) { // Get $node coordinates $point = \Classes\Utils\AbstractInstance\Point::createFromNode($node); $nodeUin = $node->getUin(); $connections = $hashTable->getConnection($nodeUin); // echo "NODE (" . $node->getProperty('x')->get() . ", " . // $node->getProperty('y')->get() . ", " . // $node->getProperty('z')->get() . ") "; // // echo "ACTUAL MEMBERS COUNT = " . count($actualMemberUins) . "<br/>"; // echo "CONNECTIONS: " . implode('; ', array_keys($connections)) . "<br/>"; //Change $actualMemberUins array if (count($connections) > 0) { foreach ($connections as $uin => $c) { // Here $uin is uin of member connected with node if (isset($actualMemberUins[$uin])) { // If member is already included in $actualMemberUins -> delete it unset($actualMemberUins[$uin]); } else { // If member is NOT included in $actualMemberUins -> add it $keys = array_keys($hashTable->getConnection($uin)); $endNumber = array_search($nodeUin, $keys); $actualMemberUins[$uin] = $endNumber; } } } // Divide $actualMemberUins by $node foreach ($actualMemberUins as $memberUin => $endNumber) { // var_dump($actualMemberUins); // Get coordinates of members' ends $memberEndUins = array_keys($hashTable->getConnection($memberUin)); $node1 = $nodes[$memberEndUins[0]]; $node2 = $nodes[$memberEndUins[1]]; $line = \Classes\Utils\AbstractInstance\Line::createFromTwoNodes($node1, $node2); // If point is inside line if (\Classes\Utils\Math\Points::isPointOnLine($point, $line) == 3) { // Divide member by node $newMemberUin = self::divideMemberByNode($memberUin, $nodeUin); // If intersection found AND member's begin before sweep line if ($newMemberUin != FALSE && $endNumber == 0) { // Delete old member from actual array unset($actualMemberUins[$memberUin]); // Add new member to actual array (member's begin also before sweep line) $actualMemberUins[$newMemberUin] = 0; } // If intersection found AND member's begin after sweep line // it's necessary to do nothing, because divided member is // still located after sweep line } } } }
\Classes\Utils\Math\Constant::$epsilon = 0.01; try { // UPLOAD STEEL MEMBERS Classes\Utils\Timer\Timer::start('STEEL_MEMBER_UPLOAD'); $uploadFactory = new \Classes\Factory\Import\Instance\InstanceUploaderFromExcel(); $steelMemberArray = $uploadFactory->upload('./Source/Excel/Small_Model/Members.xlsx', new \Classes\Instance\Member\SteelMember()); foreach ($steelMemberArray as &$object) { Classes\Factory\Model\Addition\SteelMemberAddition::add($object); } Classes\Utils\Timer\Timer::stop('STEEL_MEMBER_UPLOAD'); // DELETE DOUBLE NODES \Classes\Utils\Timer\Timer::start('COMBINE_DOUBLE_NODES'); \Classes\Utils\Node\DoubleNodes::combineAll(array(Classes\Factory\Model\Model::getHashTable())); \Classes\Utils\Timer\Timer::stop('COMBINE_DOUBLE_NODES'); // DIVIDE MEMBERS BY NODES \Classes\Utils\Timer\Timer::start('DIVIDE_ALL_MEMBERS'); \Classes\Utils\Member\DivideMember::divideAllMembersByExistingNodes(); \Classes\Utils\Timer\Timer::stop('DIVIDE_ALL_MEMBERS'); // UPLOAD LOAD CASES Classes\Utils\Timer\Timer::start('LOAD_CASES_UPLOAD'); $loadCaseArray = $uploadFactory->upload('./Source/Excel/Small_Model/Load Cases.xlsx', new \Classes\Instance\LoadCase\LoadCase()); foreach ($loadCaseArray as $object) { Classes\Factory\Model\Addition\LoadCaseAddition::add($object); } Classes\Utils\Timer\Timer::stop('LOAD_CASES_UPLOAD'); // UPLOAD LOADS Classes\Utils\Timer\Timer::start('LOADS_UPLOAD'); $memberLoadArray = $uploadFactory->upload('./Source/Excel/Small_Model/Loads.xlsx', new \Classes\Instance\Load\Member\CommonMemberLoad()); $notFoundObjects = Classes\Factory\Model\Addition\MemberLoadAddition::add($memberLoadArray); foreach ($notFoundObjects as $object) { $name = $object->getProperty('name')->get();