无法正确显示ASCII STL文件

时间:2012-06-27 14:28:57

标签: xtk

我的问题与Not able to visualize a loaded data类似,但我没有控制台错误,我已经在我的Chrome浏览器中添加了'-allow-file-access-from-files'标志。这是我的Java编码,

window.onload = function() {

var r = new X.renderer3D();
  r.init();

  pros = new X.mesh();
  pros.file = 'file:///C:/Users/Nathan/Downloads/JB Farmer STL ACII.stl';
  pros.caption = 'Prosthetic';

  r.add(pros);

  r.render();

};

我应该用相机位置“玩”,我知道我必须在Three.js中这样做。 也许模型需要法线?我不确定它是否成功。除了Three.js之外,我还没有使用3D建模。

更新:嗯,我不确定这是怎么回事,但我意识到XTK生成了2幅画布。我查看了前两个课程,他们有一个课程。 ^现在消除了额外的画布,必须复制一块并且就在那里。

3 个答案:

答案 0 :(得分:0)

如果修改文件名没有空格会怎么样?

JB Farmer_STL_ACII.stl而不是JB Farmer STL ACII.stl

答案 1 :(得分:0)

目前,xtk的加载器似乎不是为本地做的。我的意思是:它使用XMLHttpRequest(XHR)来获取带有GET请求的文件。首先,请求必须发送到可以处理它的东西(由Wamp或等效的emilated服务器或localhost)。那么让我们想象一下,如果一个broswer,无论是什么,允许XHR在他的网址的客户端文件,并想象我是一个海盗,你来到我的网站。我很了解Windows,我知道在C:/ Windows / System32中总有一个文件,我可以找到你的个人数据。我该怎么办 ? XHR!你被黑了。这是一个故事,但你看到了这个想法。

这就是为什么浏览器允许访问本地文件的唯一方法是HTML5 File API& HTML5 Drag& Drop API (不幸的是......)。 Actualy一种经历这种限制的方法是在客户端使用二进制代码(flash,java applet)。客户是唯一可以要求打开文件或删除文件的人,因此浏览器确保不会因为他而导致任何安全故障。

所以你应该用Wamp之类的东西进行测试,并使用类似“http://localhost/.../myfile.stl”或相对网址“/.../myfile”的网址访问你的文件。 stl“,或者如果您真的想要本地文件,请执行以下操作。

几个星期前,我为xtk和本地文件编写了自己的私有格式解析器,它运行良好,我只是使用HTML5 API读取文件并从中获取String或BinaryArray,然后编写了一个解析器在X.mesh中转换它。所以我认为最好是扩展HTML5文件API的X.loader,或者像我一样手动加载文件。

来自Haehn的以下jsFiddle帮助 here

答案 2 :(得分:0)

X.loader支持本地文件 - 请查看以下js小提琴

http://jsfiddle.net/haehn/TaeEF/

并尝试在那里选择你的stl文件。如果这不起作用,那么它可能是文件或解析XTK的东西。你可以共享文件吗?