[MAXScript] Array auf 20 Werte begrenzt?

AuPfusch

Mitglied
Hallo,

ich nutzte 3ds Max 2010 und habe folgendes Problem:

Input:
test=#()
for i=1 to 30 do
(
append test i
)
test

Output:
#()
OK
#(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...)

Wie man sieht, werden die Werte lediglich bis 20 angezeigt und scheinbar auch nur bis dorthin ins Array geschrieben. Sobald ich durchnummerierte Objekt von 1 bis 30 mit Hilfe des o.g. Arrays markieren lassen möchte markiert 3ds Max nur bis Objekt 20.

Kennt ihr eine Möglichkeit dieses Problem zu umgehen ohne ein neues Array für Nr. 21 bis 30 zu erstellen?

Gruß Sven
 
Zuletzt bearbeitet:
Also irgendwie kann ich Dein Problem nicht nachvollziehen. Die Ausgabe bis 20 ist nur eine verkürzte Darstellung - deshalb die Punkte am Ende. Wenn Du Dein Script ausführst und dann z.B.
Code:
test[30]
eingibst, wird völlig korrekt die Zahl ausgegeben. Zeig doch mal, wie Du die Objekte markierst. Ich vermute mal, dass der Fehler woanders liegt.
Code:
select test
wählt bei mir auch problemlos 30 Objekte aus...
 
Zuletzt bearbeitet:
Danke für die Antwort,

ich gebe dir Recht. Die ins Array geschriebenen Werte sind richtig eingetragen und werden auch richtig abgefragt.

Die Objekte welche ich markieren möchte sind Vertexe eines Polygons.

Zur Vorgehensweise:

Ich lasse via MAXScript alle Vertexe in einem Poly zählen und füge jede Vertexnummer in das beschriebene Array. Im Anschluss lösche ich eine bestimme an Anzahl an Werten aus diesem Array. Alle nicht aus dem Array gelöschten Vertexnummern sollen aus dem Polygon gelöscht werden. Das Problem ist, dass nach dem Verfahren noch zu löschende Vertexe übrig bleiben.

Code:
for i=1 to (polyop.getNumVerts $poly) do
(	
	append vertex_nr (i)
)	

x = --zufälliger Wert

deleteItem vertex_nr x

for j in vertex_nr do
(
	select $poly
	$.EditablePoly.SetSelection #Vertex #{j}
	$.EditablePoly.delete #Vertex
)
 
Könnte daran liegen, dass sich bei jedem Löschen in Deiner Schleife die Nummerierung der Vertices verändert... ;)
Versuch es mal so:
Code:
obj = $
vertex_nr=#()
for i=1 to (polyop.getNumVerts obj) do append vertex_nr i

--- x aus Array löschen ---

polyop.deleteVerts  obj vertex_nr
Ich bin jetzt mal davon ausgegangen, dass nur genau das gewünschte EditablePoly ausgewählt ist.
 
Zuletzt bearbeitet:
Zurück