Splines per Tastatur eingeben

met

Erfahrenes Mitglied
Hallo,
ich muß öfter Grundrisse von Gebäuden als Spline in 3ds max eingeben, die ich mir dann extrudiere. Da man bei der Srandard-Tastatureingabe von Splines immer den absoluten Wert vom 0-Punkt eingeben muß, habe ich mir selbst ein Makro geschrieben. Dieses Makro rechnet auch die Werte aus den Textfeldern aus, eingaben wie z.B. "408.5+608-467.9" sind möglich.

Doch warum sehe ich keine neue Linie, wenn ich einen neuen Punkt eingebe? Gibt es irgendeine refresh-Funktion oder so?

mfg met

siehe Bsp.-Code:
----------------

rollout roGrundriss "Grundriss"
(
-- Schaltflächen
button btGrundriss "neuen Grundriss beginnen"
label lbGrundriss "neuen Grundriss beginnen"
button btSpline "neuen Spline beginnen"
label lbSpline "neuen Spline beginnen"
checkbox chbRel "relative Werte (vom letzten Punkt aus)"
label lbKnoten "Knoten: 0"
edittext etX caption:"X" text:"0.0" fieldWidth:50
edittext etY caption:"Y" text:"0.0" fieldWidth:50
edittext etZ caption:"Z" text:"0.0" fieldWidth:50


button btPunkt "Punkt hinzufügen"
on btGrundriss pressed do
(
print "neuer Grundriss begonnen"
Linie1 = line name:("Grundriss")
select $objects[objects.count]
roGrundriss.lbGrundriss.text = "Name: " + $objects[objects.count].name
roGrundriss.lbSpline.text = "neuen Spline beginnen"
)
on btSpline pressed do
(
print "neuer Spline begonnen"
roGrundriss.lbSpline.text = "Nummer: " + (addNewSpline $objects[objects.count]) as string
roGrundriss.lbKnoten.text = "Knoten: 0"
)
on btPunkt pressed do
(
print "Punkt wurde eingeben"
S = (subString roGrundriss.lbSpline.Text 9 -1) as integer
K = (subString roGrundriss.lbKnoten.Text 9 -1) as integer
print S
print K
if roGrundriss.chbRel.checked == false or K == 0 then
(
roGrundriss.etX.text = (execute roGrundriss.etX.Text as string)
roGrundriss.etY.text = (execute roGrundriss.etY.Text as string)
roGrundriss.etZ.text = (execute roGrundriss.etZ.Text as string)
X = roGrundriss.etX.text as float
Y = roGrundriss.etY.text as float
Z = roGrundriss.etZ.text as float
print X as string
print Y as string
print Z as string
roGrundriss.lbKnoten.text = "Knoten: " + (addKnot $objects[objects.count] S #corner #line [X,Y,Z]) as string
)
else
(
roGrundriss.etX.text = (execute roGrundriss.etX.Text as string)
roGrundriss.etY.text = (execute roGrundriss.etY.Text as string)
roGrundriss.etZ.text = (execute roGrundriss.etZ.Text as string)
X = ((getKnotPoint $objects[objects.count] S K).x + roGrundriss.etX.text as float)
Y = ((getKnotPoint $objects[objects.count] S K).y + roGrundriss.etY.text as float)
Z = ((getKnotPoint $objects[objects.count] S K).z + roGrundriss.etZ.text as float)
print X as string
print Y as string
print Z as string
roGrundriss.lbKnoten.text = "Knoten: " + (addKnot $objects[objects.count] S #corner #line [X,Y,Z]) as string
)
)
-- Ereignisse
on roInfo open do
(
print "Rollout Grundriss wird geöffnet"

Akt #()
)
)
 
Ich war leider ein bisschen mit höher priorisierter Arbeit befasst, aber so hängt man ein Segment an eine vorhandene "Line01" an:

PHP:
addKnot $Line01 1 #corner #line [0,0,0]
updateShape $Line01

Ähnliches sollte bei dir auch klappen :)
 
Zurück