Hallo Stone,
wenn Du auf das Attribut root:children: zugreifst bekommst Du alle Instanzen auf dieser Ebene. Diese kannst Du nach dem Klassentyp überprüfen um festzustellen, ob diese Instanz ein solid ist.
Da ich nicht weiss wie Deine KF-Struktur aussieht (kombination von User- und System-Klassen) gehe ich erst mal von der einfachsten Variante aus.
(list) solids?:
loop
{
for $i in root:children:;
for $a is partdesign($i);
for $b is if ($a=ug_cylinder)|($a=ug_body)|($a=ug_boolean) then TRUE else FALSE;
for $c is if $b then {$i,TRUE} else {$i,FALSE};
collect $c
};
Das Programm müßte die Instanz mit TRUE zurückgeben, wenn ein Solid vorhanden ist oder FALSE, wenn kein Solid vorhanden ist.
Bei der IF-Anweisung für $b mußt Du allerdings alle Solid-Klassen einbauen. Vielleicht kann man hier auch mit ug_body_isSolid arbeiten.
Ist Deine KF-Struktur tiefer verschachtelt, so mußt Du dies auch in das Programm einbauen.
Vielleicht kannst Du ja etwas mit diesem Ansatz anfangen.
Gruss
Jörg
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP