Skip to content

Commit 9fa33d6

Browse files
committed
Alter the file loader so that it will use a generated blender file in
place of an STL when the user opens the STL in blender.
1 parent 7677fa3 commit 9fa33d6

2 files changed

Lines changed: 24 additions & 5 deletions

File tree

src/main/java/com/neuronrobotics/bowlerstudio/scripting/BlenderLoader.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,11 @@ public static void toBlenderFile(CSGDatabaseInstance db,CSG stlIn,File blenderfi
5353

5454

5555
public static void toBlenderFile(CSGDatabaseInstance db,File stl,File blenderfile) {
56-
com.neuronrobotics.sdk.common.Log.error("Converting to Blender file before loading");
56+
com.neuronrobotics.sdk.common.Log.debug("Converting to Blender file before loading");
5757

5858
File stlIn;
5959
try {
60-
stlIn = File.createTempFile(stl.getName(), ".stl");
60+
stlIn = File.createTempFile("scaletmp", ".stl");
6161
} catch (IOException e) {
6262
// Auto-generated catch block
6363
com.neuronrobotics.sdk.common.Log.error(e);

src/main/java/com/neuronrobotics/bowlerstudio/scripting/cadoodle/AddFromFile.java

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
import com.google.gson.annotations.Expose;
1818
import com.neuronrobotics.bowlerstudio.physics.TransformFactory;
1919
import static com.neuronrobotics.bowlerstudio.scripting.DownloadManager.*;
20+
21+
import com.neuronrobotics.bowlerstudio.scripting.BlenderLoader;
22+
import com.neuronrobotics.bowlerstudio.scripting.DownloadManager;
2023
import com.neuronrobotics.bowlerstudio.scripting.ScriptingEngine;
2124
import com.neuronrobotics.bowlerstudio.vitamins.VitaminBomManager;
2225
import com.neuronrobotics.sdk.addons.kinematics.VitaminLocation;
@@ -121,7 +124,7 @@ public List<CSG> process(List<CSG> incoming) {
121124
return back;
122125
}
123126

124-
public static File copyFileToNewDirectory(File sourceFile, File targetDirectory, String newBaseName)
127+
public static File copyFileToNewDirectory(CaDoodleFile cf, File sourceFile, File targetDirectory, String newBaseName)
125128
throws IOException {
126129
if (!sourceFile.exists()) {
127130
throw new IOException("Source file does not exist: " + sourceFile.getAbsolutePath());
@@ -139,6 +142,15 @@ public static File copyFileToNewDirectory(File sourceFile, File targetDirectory,
139142
if (dotIndex > 0 && dotIndex < fileName.length() - 1) {
140143
fileExtension = fileName.substring(dotIndex);
141144
}
145+
// if(fileExtension.toLowerCase().contains("stl")) {
146+
// if(DownloadManager.isDownloadedAlready("blender")) {
147+
// Log.debug("Convert STL to Blender for use in model");
148+
// String newFileName = newBaseName + ".blend";
149+
// File blenderfile = new File(targetDirectory, newFileName);
150+
// BlenderLoader.toBlenderFile(cf.getCsgDBinstance(),sourceFile, blenderfile);
151+
// return blenderfile;
152+
// }
153+
// }
142154

143155
String newFileName = newBaseName + fileExtension;
144156
File targetFile = new File(targetDirectory, newFileName);
@@ -168,7 +180,7 @@ public static File toLocal(File file, String name,CaDoodleFile cf ) {
168180
if (!isDoodle) {
169181
File copied;
170182
try {
171-
copied = copyFileToNewDirectory(file, parentFile, name);
183+
copied = copyFileToNewDirectory(cf,file, parentFile, name);
172184
file = copied;
173185
} catch (IOException e) {
174186
// Auto-generated catch block
@@ -292,8 +304,10 @@ private static boolean copyDirectory(File sourceDir, File targetDir) throws IOEx
292304
public static File getFile(String name,CaDoodleFile cf) {
293305
String strValue = cf.getSelf().getAbsolutePath();
294306
File parentFile = new File(strValue).getParentFile();
307+
File stl=null;
295308
for (File f : parentFile.listFiles()) {
296309
if (f.getName().contains(name)) {
310+
297311
if (f.isDirectory()) {
298312
// is a doodle file
299313
for (File d : f.listFiles()) {
@@ -304,13 +318,18 @@ public static File getFile(String name,CaDoodleFile cf) {
304318
} else {
305319
for (String s : ScriptingEngine.getAllExtentions()) {
306320
if (f.getName().toLowerCase().endsWith(s.toLowerCase())) {
307-
return f;
321+
if(s.toLowerCase().contains("stl")){
322+
stl=f;// return the stl if no blender file exists
323+
}else
324+
return f;
308325
}
309326
}
310327
}
311328
}
312329

313330
}
331+
if(stl!=null)
332+
return stl;
314333
throw new RuntimeException("File not found! " + name);
315334
}
316335
//

0 commit comments

Comments
 (0)