Hallo zusammen,
ich habe extrudiert Flaechen, welche über KF erstellt werden. Die Linien (Basis für den Extrude) will ich auf Layer 10 haben, die extrudierten Flächen auf Layer 20. Die Linien kann ich innerhalb der Klasse ug_line mit dem Layer Attribut steuern, die Extrudes werden auf dem Work Layer abgelegt. Also muss ich die Extrudes nachträglich noch auf den gewünschten Layer werfen. Dafür nehme ich die Funktion ug_setObjectLayer(). Dieser Funktion übergebe ich die Instanzen der Child List mit den Extrudes. Es kommt zu folgender Fehlermeldung beim Aufruf der funktion:
"Display Operation attempted on non-displayable Object".
Nun zwei konkrete Fragen:
-was muss ich der Funktion übergeben
-wie kann ich veranlassen, dass mein Attribut "ri_test_move_objects" aufgelöst wird, sobald die Extrudes erzeugt wurden (Stichwort DemandValue). Jetzt mache ich manuell einen ShowValue, weil ich es nicht automatisieren konnte.
Meine TestKlasse:
#! UG/KF 19.0
DefClass: test_layer (ug_base_part);
#Linien erzeugen, werden auf Layer 10 abgelegt
(Child List) ri_lines: {
Class, ug_line;
quantity, 10;
Start_Point, point(child:index:*100, 0, 0);
End_Point, point(child:index:*100, child:index:*100, 0);
Layer, 10;
};
#Linien extrudieren, sollten auf Layer 20 abgelegt werden
(Child List) ri_extrudes: {
Class, ug_extruded;
quantity, length(ri_lines:);
Taper_Angle, 0;
Start_Limit, 0;
End_Limit, 100;
Direction, Vector(0,0,1);
Profile, {nth(child:index:, ri_lines:)}
#Versuch, geht aber nicht, Extrude wird auf Work Layer abgelegt
#Layer, 20;
};
#Die Extrudes auf den Layer 20 verschieben
#Wie automatisieren???
(Integer Modifiable) ri_test_move_objects:
loop{
for $i from 1 to length(ri_extrudes:);
do ug_setObjectLayer(nth($i, ri_extrudes:), 20);
return is 0;
};
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP