2015-04-25 2 views
0

Je veux obtenir des positions de bord de polygone 3Ds Max avec maxscript. Je l'ai essayé ce qui suit:position de bord de polygone dans maxscript

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 

sortie doit être quelque chose comme format de fichier OBJ, mais je veux avoir des connexions que de bord montré dans le cadre de fil.

Exemple de sortie:

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

EDIT: je pouvais trouver des bords invisibles via ce code.

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 
) 

Répondre

0

Vous pouvez obtenir les sommets d'un bord à l'aide meshop.GetVertsUsingEdge comme ceci:

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 
+0

Merci, mais je dois bords affichés en fil de fer. – Afshin