예제 #1
0
파일: preset.php 프로젝트: Jaesin/zim-web
 public function listpreset()
 {
     $display_presetlist = array();
     $display_all_list = array();
     $template_data = array();
     $this->load->library('parser');
     $this->lang->load('preset/listpreset', $this->config->item('language'));
     // prepare display data
     $json_data = ZimAPI_getPresetListAsArray();
     foreach ($json_data as $preset) {
         $preset_basepath = NULL;
         $system_preset = FALSE;
         ZimAPI_checkPreset($preset[ZIMAPI_TITLE_PRESET_ID], $preset_basepath, $system_preset);
         $display_all_list[] = array('name' => $preset[ZIMAPI_TITLE_PRESET_NAME], 'id' => $preset[ZIMAPI_TITLE_PRESET_ID]);
         if (!$system_preset) {
             $display_presetlist[] = array('name' => $preset[ZIMAPI_TITLE_PRESET_NAME], 'id' => $preset[ZIMAPI_TITLE_PRESET_ID]);
         }
     }
     usort($display_presetlist, 'ZimAPI_usortComparePreset');
     usort($display_all_list, 'ZimAPI_usortComparePreset');
     // parse the main body
     $template_data = array('home' => t('Home'), 'back' => t('back'), 'search_hint' => t('search_hint'), 'model_lists' => $display_presetlist, 'newmodel_lists' => $display_all_list, 'new_preset_label' => t('new_preset_label'), 'submit_button' => t('submit_button'), 'delete_popup_text' => t('delete_popup_text'), 'delete_yes' => t('delete_yes'), 'delete_no' => t('delete_no'));
     // parse all page
     $this->_parseBaseTemplate(t('preset_list_title'), $this->parser->parse('preset/listpreset', $template_data, TRUE));
     return;
 }
예제 #2
0
function ZimAPI_getPresetList($set_localization = TRUE)
{
    $array_data = ZimAPI_getPresetListAsArray($set_localization);
    $CI =& get_instance();
    $CI->load->helper('json');
    return json_encode_unicode($array_data);
}
예제 #3
0
    function slice()
    {
        $ret_val = 0;
        $status_current = NULL;
        $list_display = array();
        $template_data = array();
        $current_stage = 'wait_slice';
        $current_scale = 100;
        $current_xrot = 0;
        $current_yrot = 0;
        $current_zrot = 0;
        $current_scale_max = 100;
        $current_xsize = 0;
        $current_ysize = 0;
        $current_zsize = 0;
        $multi_part = FALSE;
        $heat_bed = $this->config->item('heat_bed');
        // redirect the client when in slicing
        $this->load->helper('corestatus');
        $ret_val = CoreStatus_checkInIdle($status_current);
        // check status in slicing
        if ($ret_val == FALSE || $status_current == CORESTATUS_VALUE_SLICE) {
            $this->output->set_header('Location: /sliceupload/slicestatus');
            return;
        }
        $this->load->helper(array('zimapi', 'printerstate', 'slicer'));
        if ($this->input->get('callback') !== FALSE) {
            $current_stage = 'wait_print';
        } else {
            // need preset list only in wait slice mode
            $list_preset = ZimAPI_getPresetListAsArray();
            foreach ($list_preset as $preset) {
                //TODO add rollback function to get correct values here
                $list_display[] = array('name' => $preset[ZIMAPI_TITLE_PRESET_NAME], 'id' => $preset[ZIMAPI_TITLE_PRESET_ID], 'infill' => isset($preset[ZIMAPI_TITLE_PRESET_INFILL]) ? $preset[ZIMAPI_TITLE_PRESET_INFILL] : '30%', 'skirt' => isset($preset[ZIMAPI_TITLE_PRESET_SKIRT]) ? $preset[ZIMAPI_TITLE_PRESET_SKIRT] : 0, 'raft' => isset($preset[ZIMAPI_TITLE_PRESET_RAFT]) ? $preset[ZIMAPI_TITLE_PRESET_RAFT] : 0, 'support' => isset($preset[ZIMAPI_TITLE_PRESET_SUPPORT]) ? $preset[ZIMAPI_TITLE_PRESET_SUPPORT] : 1);
            }
            usort($list_display, 'ZimAPI_usortComparePreset');
        }
        try {
            $tmp_string = NULL;
            $tmp_array = NULL;
            // 			$this->load->helper('slicer');
            $ret_val = Slicer_listModel($tmp_string);
            $tmp_array = json_decode($tmp_string, TRUE);
            if ($ret_val == ERROR_OK && count($tmp_array)) {
                $current_scale = $tmp_array[0][SLICER_PRM_SCALE];
                $current_xrot = $tmp_array[0][SLICER_PRM_XROT];
                $current_yrot = $tmp_array[0][SLICER_PRM_YROT];
                $current_zrot = $tmp_array[0][SLICER_PRM_ZROT];
                $current_xsize = number_format($tmp_array[0][SLICER_TITLE_XSIZE], 1);
                $current_ysize = number_format($tmp_array[0][SLICER_TITLE_YSIZE], 1);
                $current_zsize = number_format($tmp_array[0][SLICER_TITLE_ZSIZE], 1);
                $current_scale_max = floor($tmp_array[0][SLICER_TITLE_MAXSCALE]);
                if (count($tmp_array[0][SLICER_TITLE_COLOR]) > 1) {
                    $multi_part = TRUE;
                }
            }
        } catch (Exeception $e) {
            $this->load->helper('printerlog');
            PrinterLog_logError('synchronize slicer model info error', __FILE__, __LINE__);
        }
        $this->load->library('parser');
        $this->lang->load('sliceupload/slice', $this->config->item('language'));
        // parse the main body
        $template_data = array('home' => t('home'), 'back' => t('back'), 'slice_button' => t('slice_button'), 'goto_preset' => t('goto_preset'), 'value_rho' => ZIMAPI_VALUE_DEFAULT_RHO, 'value_delta' => ZIMAPI_VALUE_DEFAULT_DELTA, 'value_theta' => ZIMAPI_VALUE_DEFAULT_THETA, 'preset_list' => $list_display, 'current_stage' => $current_stage, 'goto_hint' => t('goto_hint'), 'wait_preview' => t('wait_preview'), 'wait_slice' => t('wait_slice'), 'wait_in_slice' => t('wait_in_slice'), 'near_button' => t('near_button'), 'far_button' => t('far_button'), 'color_default' => PRINTERSTATE_VALUE_DEFAULT_COLOR, 'preview_fail' => t('preview_fail'), 'setmodel_fail' => t('setmodel_fail'), 'scale_rotate_title' => t('scale_rotate_title'), 'scale_title' => t('scale_title'), 'rotate_title' => t('rotate_title'), 'select_hint' => t('select_hint'), 'rotate_x_title' => t('rotate_x_title'), 'rotate_y_title' => t('rotate_y_title'), 'rotate_z_title' => t('rotate_z_title'), 'set_model_button' => t('set_model_button'), 'reset_model_button' => t('reset_model_button'), 'preset_title' => t('preset_title'), 'slice_risk_confirm' => t('slice_risk_confirm'), 'model_key_smax' => SLICER_TITLE_MAXSCALE, 'model_key_xsize' => SLICER_TITLE_XSIZE, 'model_key_ysize' => SLICER_TITLE_YSIZE, 'model_key_zsize' => SLICER_TITLE_ZSIZE, 'model_scale' => $current_scale, 'model_xrot' => $current_xrot, 'model_yrot' => $current_yrot, 'model_zrot' => $current_zrot, 'model_xsize' => $current_xsize, 'model_ysize' => $current_ysize, 'model_zsize' => $current_zsize, 'model_smax' => $current_scale_max, 'multi_part' => $multi_part ? 'true' : 'false', 'enable_heatbed' => t('enable_heatbed'), 'heat_bed' => $heat_bed ? 'true' : 'false', 'checked_heatbed' => $heat_bed ? 'checked="checked"' : NULL);
        $this->_parseBaseTemplate(t('sliceupload_slice_pagetitle'), $this->parser->parse('sliceupload/slice', $template_data, TRUE), '<!-- client rendering part -->
				<script type="text/javascript" src="/assets/rendering/ivmatrix3d.js"></script>
				<script type="text/javascript" src="/assets/rendering/ivwindow3d.js"></script>
				<script type="text/javascript" src="/assets/rendering/ivspace3d.js"></script>
				<script type="text/javascript" src="/assets/rendering/ivmtl3d.js"></script>
				<script type="text/javascript" src="/assets/rendering/ivmesh3d.js"></script>
				<script type="text/javascript" src="/assets/rendering/ivnode3d.js"></script>
				<script type="text/javascript" src="/assets/rendering/ivextra.js"></script>
				<script type="text/javascript" src="/assets/rendering/stl.js"></script>
				<script type="text/javascript" src="/assets/rendering/zpviewer.js"></script>');
        return;
    }