-
Notifications
You must be signed in to change notification settings - Fork 11
/
OpenSCAD.pde
58 lines (51 loc) · 1.42 KB
/
OpenSCAD.pde
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// OpenSCAD Wrapper Functions.
class OpenSCAD {
String execPath;
String execArgs;
String inputFile;
String outputType;
String outputFile;
OpenSCAD() {
execPath="/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD";
execArgs="-D render_select=0 -D slice_index=0";
outputType=DXF;
outputFile="output.dxf";
}
OpenSCAD(String iexecPath, String iexecArgs) {
execPath=iexecPath;
execArgs=iexecArgs;
}
void setInput(String iinputFile) { inputFile=iinputFile; }
void setExecArgs(String iexecArgs) { execArgs=iexecArgs; }
void setExecPath(String iexecPath) { execPath=iexecPath; }
void setOutput(String ioutputType, String ioutputFile) {
if( ioutputType==DXF ) {
outputType=ioutputType;
outputFile=ioutputFile;
}
}
String getInput() { return(inputFile); }
String getExecArgs() { return(execArgs); }
String getExecPath() { return(execPath); }
boolean run() {
String commandLine=execPath;
if(outputType==DXF) {
commandLine=commandLine+" -x "+outputFile+" "+execArgs;
}
if(!inputFile.equals("")) {
try {
commandLine+=" "+inputFile;
Runtime rtime = Runtime.getRuntime();
print("Command Line: "+commandLine+"\n");
Process child = rtime.exec(commandLine);
child.waitFor();
return(true);
} catch (Exception e) {
e.printStackTrace();
return(false);
}
} else {
return(false);
}
}
}