2012-12-08 32 views
0

我正在尝试在maxscript中编写一个简单的网格导出器。它没什么特别,只需要输出面,顶点和定位点。我的代码和工作一样好,但有时候我会在顶点位置得到非常奇怪的值(例如-1.1234e-005)。我知道这是一个非常大的数字,但问题是,我的垂直位置不在数字所指的位置附近(我已经看到这发生在1m * 1m * 1m的框中)。我发现,当它发生在网格中时,它总是发生在这个网格和相同的顶点上,直到我移动该特定的顶点(缩放/移动整个东西不起作用)。我用这个代码导出顶点位置:为什么我在MaxScript中获得奇怪的顶点位置值

num_verts = sel_mesh.numverts 
for i=1 to num_verts do (
    v = getVert sel_mesh i 
    format "v %\n" v to:out_file 
) 
format "\n" to:out_file 

我曾尝试谷歌搜索的问题,但似乎没有人有同样的问题。我使用相同的代码为我的tvertices和那些导出完美罚款。如果有必要,我可以发布整个出口商。请让我知道如果你需要看到更多的代码:)。

+0

这实际上可能是一个v.small数。您是否尝试限制到2个或3个小数位? –

+0

我曾尝试使用格式化的格式:“#。6f”和格式:“。6f”和一些与3,4,5而不是6.这些都没有修复它,有些格式打破了它甚至更多。 – Kevin

+0

对不起,我不能比这更有帮助,有几个好年头没有使用maxscript :( –

回答

2

这实际上是一个非常小的数字。

-1.1234e-005-1.1234 * (10^-5),这是非常小的。

与您的评论相反,formattedPrint会“修复”此问题。

formattedPrint -1.1234e-005 format:".6f" 

output: "-0.000011" 

您可以在出口用它作为这样的:

num_verts = sel_mesh.numverts 
for i=1 to num_verts do (
    v = getVert sel_mesh i 
    format "v %\n" (formattedPrint v format:".6f") to:out_file 
) 
format "\n" to:out_file 
相关问题