maxscript中的多边形边缘位置

时间:2015-04-25 14:23:25

标签: polygons maxscript

我想获得带有maxscript的多边形边缘位置3Ds Max。我尝试过以下方法:

tmesh = snapshotAsMesh selection[1]
out_name = ((GetDir #export)+"/testmesh.dat")
out_file = createfile out_name
num_verts = tmesh.numverts
num_faces = tmesh.numfaces

format "% % %\n" num_verts num_faces to:out_file

for v = 1 to num_verts do
(
 vert = getVert tmesh v
 format "%," vert to:out_file
)

format "\n" to:out_file

for f = 1 to num_faces do
(
 face = getFace tmesh f
 format "%," face to:out_file
)

close out_file
delete tmesh
edit out_name

输出需要类似于OBJ文件格式,但我想在线框中只显示边缘连接。

示例输出:

[0,0,0],[1,0,0],[0,1,0],[1,1,0]
[1,2],[2,3],[3,4],[4,1]

编辑: 我可以通过这段代码找到隐形边缘。

for f = 1 to num_faces do
(
   face = getFace tmesh f   
   edge1 = getEdgeVis tmesh f 1
   edge2 = getEdgeVis tmesh f 2
   edge3 = getEdgeVis tmesh f 3
   format "%,[%,%,%]" face edge1 edge2 edge3 to:out_file
   format "\n" to:out_file
)

1 个答案:

答案 0 :(得分:0)

您可以使用meshop.GetVertsUsingEdge获取边缘的顶点,如下所示:

tmesh = snapshotAsMesh selection[1]

allverts = #()

for v = 1 to num_verts do
(
    vert = getVert tmesh v
    append allverts vert
)
print allverts

format "\n" --to:out_file

edges = tmesh.Edges
for ed in edges do
(
    print ed
    edverts = meshop.GetVertsUsingEdge tmesh ed
    print "ed verts: "
    for v in edverts do (
        print allverts[v]
    )
    print "\n"
)

delete tmesh