2016年3月24日 星期四

sla 3d printer 研究筆記 : printObject


 private void printObject() throws Exception {
        System.out.println("Printing Object layers");

        CommandBase cmd;
        SVGElement element;

        // Object layers
        // loop layers
        int total = Consts.sFLAG_DEBUG_MODE ? Math.min(6, root.getNumChildren()) : root.getNumChildren();
        int layerSteps = printingInfo.getStepsPerLayer();
        int layerExpoTime = printingInfo.getLayerExpoTimeInMillis();

        int upSteps = printingInfo.getUpLiftSteps();
        int downSteps = upSteps - layerSteps;
        System.out.println(String.format("Object layers upSteps: %d, layerSteps: %d, downSteps: %d",
                upSteps, layerSteps, downSteps));

        for (int i = 1; i < total; i++) {
            layerIndex = i;

            // Go up
           
            cmd = PrinterScriptFactory.generatePlatformMovement(PlatformMovement.UP, upSteps);
            processCommand(cmd);

            // Wait a little bit
            cmd = PrinterScriptFactory.generatePauseCommand(delayAfterAction);
            processCommand(cmd);

            // Go down
            cmd = PrinterScriptFactory.generatePlatformMovement(PlatformMovement.DOWN, downSteps);
            processCommand(cmd);
           
            // Exposure layer
            element = children.get(i);
            publish(element);
           
           
            for (int restExpoTime = layerExpoTime; restExpoTime > 0; restExpoTime -= Consts.MAX_EXPOSURE_MILLIS) {
                int expoTime = restExpoTime >= Consts.MAX_EXPOSURE_MILLIS ? Consts.MAX_EXPOSURE_MILLIS : restExpoTime;
                cmd = PrinterScriptFactory.generatePauseCommand(expoTime);
                processCommand(cmd, expoTime);
            }
           

            publish(layerCircle);
            cmd = PrinterScriptFactory.generatePauseCommand(delayAfterAction);
            processCommand(cmd);
        }
    }

沒有留言:

張貼留言