コード例 #1
0
func Slice(nameTag *data.NameTag, printer *data.Printer, config *config.Config) error {
	if nameTag.Name == "" {
		return errors.New("Name tag has no name set")
	}
	var configFile string
	if printer.ConfigFile == "" {
		configFile = config.DefaultConfig
	} else {
		configFile = printer.ConfigFile
	}

	slic3rArgs := fmt.Sprintf(" %s/%s.stl --output %s/%s.gcode --load %s", config.StlDirectory,
		nameTag.Name, config.GcodeDirectory, nameTag.Name, configFile)

	fmt.Println("Slicing STL...")
	wg := new(sync.WaitGroup)
	wg.Add(1)
	go exe_cmd("slic3r"+slic3rArgs, wg)
	wg.Wait()
	gcode := config.GcodeDirectory + "/" + nameTag.Name + ".gcode"
	if _, err := os.Stat(gcode); os.IsNotExist(err) {
		return errors.New("An Error occured while slicing STL")
	}
	nameTag.Gcode = nameTag.Name + ".gcode"
	fmt.Println("Done slicing STL")
	return nil
}