Settings for stl export

- set cells size and wall thickness
- set reverse for path :
  when reverse is set then resolved path is higher ground
  else (default) it is lower ground.
This commit is contained in:
philippe lhardy
2020-10-13 16:49:00 +02:00
parent 159f408e7f
commit 046a7767a8
4 changed files with 202 additions and 30 deletions

View File

@@ -32,6 +32,7 @@ import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.artisanlogiciel.games.*;
import org.artisanlogiciel.games.stl.Maze3dParams;
import org.artisanlogiciel.games.stl.Wall3d;
import org.artisanlogiciel.games.stl.Wall3dStream;
import org.artisanlogiciel.util.UTF8Control;
@@ -57,6 +58,8 @@ public class Display extends JFrame {
MazeParams params = null;
Maze3dSettings stlsettings;
Display(LabyModel model, int W, int H, MazeParams params) {
super(labels.getString("title"));
if (params != null) {
@@ -367,17 +370,19 @@ public class Display extends JFrame {
System.out.println("save stl");
setMazeName(saveName.getText());
MazeParamsFixed p = (MazeParamsFixed) params;
saveStl(p, model);
saveStl(p, model,stlsettings.createParams());
}
};
saveStlButton.addActionListener(saveStlAction);
stlsettings = new Maze3dSettings(new Maze3dParams());
JMenu saveMenu = new JMenu("Save");
saveMenu.add(saveName);
saveMenu.add(saveSvgButton);
saveMenu.add(savePngButton);
saveMenu.add(saveButton);
saveMenu.add(stlsettings);
saveMenu.add(saveStlButton);
saveMenu.add(saveImcButton);
@@ -1011,13 +1016,13 @@ public class Display extends JFrame {
Display display = new Display(model, W, H, params);
}
public static void saveStl(MazeParamsFixed params, LabyModel model) {
public static void saveStl(MazeParamsFixed params, LabyModel model, Maze3dParams wallparams) {
File outfile = new File(params.getSaveDir(), params.getName() + ".stl");
if (!outfile.exists()) {
System.out.println("Saving to " + outfile + " ...");
try {
FileOutputStream out = new FileOutputStream(outfile);
new Wall3dStream(params.getName(), model, out, false).stream(10,10,10);
new Wall3dStream(params.getName(), model, out, wallparams).stream();
out.close();
System.out.println("... Done.");
} catch (IOException io) {