| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX | | |  | Solid Edge 2025 First Look Online-Event 14.11.2025, eine Pressemitteilung
|
Autor
|
Thema: Instanz Child list (1433 mal gelesen)
|
thomas167 Mitglied Ingenieur

 Beiträge: 42 Registriert: 20.05.2008
|
erstellt am: 01. Apr. 2009 15:37 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe eine Frage zu der Instanziierung von den Elementen einer Child List in KF. Ich möchte alle Instanzen einer Child list einzeln ansprechen. Es gibt die Funktion: (instance) H1: First (Geometrie ; wobei Geometrie: die Child list ist. Wenn die Liste nun mehr als 3 Inhalte hat klappt dies nicht mehr, da nur first, second, third und last mit dieser Funktion anwedbar sind. also keine Zahlen und keine nth Funktion. Weiß jemand Rat, wie ich die Instanzen weiter nutzen kann. Ich möchte bestimmte Childs aus der liste, wenn Sie bestimmte Bedingungen erfüllen, unterdrücken (supress?). Weiß jemand bitte Rat? Sonnige Grüße Thomas [Diese Nachricht wurde von thomas167 am 01. Apr. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thomas167 Mitglied Ingenieur

 Beiträge: 42 Registriert: 20.05.2008
|
erstellt am: 07. Apr. 2009 08:19 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe mir ein paar Gedanken gemacht, wie ich eine ChildList anspreche. Vielleicht kann mir jemand noch einen Tipp geben: Die ChildList, die ich erstelle, bekommt eine bestimmte Anzahl von Childs. Abhängig von dieser Zahl möchte ich jedes Child ansprechen. Dafür habe ich mir eine Liste erstellt: (list) ListeDerChilds: loop{ for $i from 1 to (AnzahlDerChilds); for $y is ($i); for $name is "ChildPfadUndName" + $y +"body:"; collect $name; }; Ich möchte eine Liste die etwa aussieht wie z.B. Baugruppe:Block_1:body: Baugruppe:Block_2:body: Baugruppe:Block_3:body: ...usw. hierbei soll die nummer für jede Stelle in der Liste, die ensteht um ein zunehmen, damit jedes Child angesprochen wird. Dummerweise bekomme ich keine Zahl in die Liste hinein. kann mnir jemand helfen? Schönen Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AntonCAD Mitglied Konstrukteur

 Beiträge: 19 Registriert: 12.09.2007 HP Z400 WIN 7 64bit NX 7.5.5.4 MP01
|
erstellt am: 08. Apr. 2009 14:09 <-- editieren / zitieren --> Unities abgeben:          Nur für thomas167
Hallo Thomas, um eine Zahl zu einem String hinzufügen zu können, mußt Du diese erst mit FORMAT erst in ein String umwandeln. Die vierte Zeile müsste wie folgt aussehen. for $y is FORMAT("%d", $i); Hoffe eine Hilfe gewesen zu sein ------------------ Gruß Anton  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thomas167 Mitglied Ingenieur

 Beiträge: 42 Registriert: 20.05.2008
|
erstellt am: 09. Apr. 2009 10:41 <-- editieren / zitieren --> Unities abgeben:         
Hallo Anton! Vielen Dank für deine Antort, das war genau das was ich gesucht habe! 10Points for You!!! Das Doofe ist nur, die erstellte Liste hat die Form: Baugruppe:Klotz_1:Body: in Form eines Strings Wenn ich dieses Body manuell anspreche, erscheint mir als Value body{ug_body}. Wenn ich nun die Liste einfüge, erscheint ein Error, da dann ein String einegfügt wird. D.h. ich bekomme, der Zeichenfolge nach, genau die Liste der Childs, die ich ansprechen möchte, aber KF erkennt diese nicht als Childs an. Weiß du da vielleicht auch was? ich wünsche allen Frohe Ostern!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thomas167 Mitglied Ingenieur

 Beiträge: 42 Registriert: 20.05.2008
|
erstellt am: 16. Apr. 2009 11:46 <-- editieren / zitieren --> Unities abgeben:         
Hallo! Ich suche einen Fehler in dem folgedenden Abschnitt. Es wird geprüft, ob Bauteile sich überschneiden (Abfrage: ) und dann die Child List (Reihe) mit dem Zielkörper zu vereinen. Es wird weder eine Fehlermeldung angezeigt noch sehe ich ein Fehler. (method modifiable) Vereinigen: @{ $a<<loop{ for $i from 1 to length( Reihe: ); #Liste der Children collect nth($i, Reihe: ); }; $b<< Fertig:Body: ; # der Zielbody $c<<loop { for $z from 1 to length(Abfrage: ); collect If ( nth($z,Abfrage: ) = true ) Then ( ug_Boolean(nth($z,Abfrage: ), Fertig:Body: )) Else ( Nulldesign ); }; }; [Diese Nachricht wurde von thomas167 am 16. Apr. 2009 editiert.] [Diese Nachricht wurde von thomas167 am 16. Apr. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AntonCAD Mitglied Konstrukteur

 Beiträge: 19 Registriert: 12.09.2007 HP Z400 WIN 7 64bit NX 7.5.5.4 MP01
|
erstellt am: 20. Apr. 2009 14:51 <-- editieren / zitieren --> Unities abgeben:          Nur für thomas167
Hallo Thomas, zu deiner Frage vom 09. April, vieleicht kannst Du einmal versuchen über den Befehl REF auf die einzelnen Childs zuzugreifen. Anbei ein sehr vereinfachtes Beispiel: (Child List) Koerper: { #eine Liste von Koerpern, zum spielen Class, ug_block; quantity, 5; Length, 5; Width, 5; Height, 5; Origin, Point(child:index:*10 ,child:index:*2,0); }; Und so kann ich die Höhe des zweiten Blocks abfragen: (Number Modifiable) hoehe_abfragen: ref( nth(2,koerper: ), height ); Zu deiner Frage vom 16. April, vieleicht solltest Du im Befehl UG_Boolean als erstes den Zielkoerper aufführen.
------------------ Gruß Anton  [Diese Nachricht wurde von AntonCAD am 20. Apr. 2009 editiert.] [Diese Nachricht wurde von AntonCAD am 20. Apr. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| 3D ? Konstrukteur (m/w/d) | Die Feinblechsysteme Lentz GmbH ist ein innovatives Unternehmen im Bereich der Metallverarbeitung. Mit modernster Technik, langjähriger Erfahrung und einem engagierten Team sind wir für unsere Kunden täglich auf der Suche nach der optimalen Lösung. Wir produzieren qualitativ hochwertige Produkte wie Blech- und Laserteile, Schaltschränke und ?pulte, Gestelle und Maschinenverkleidungen. Unsere ... | Anzeige ansehen | Feste Anstellung |
|
thomas167 Mitglied Ingenieur

 Beiträge: 42 Registriert: 20.05.2008
|
erstellt am: 23. Apr. 2009 11:51 <-- editieren / zitieren --> Unities abgeben:         
Hallo Anton! vielen Dank für deine Antwort! Ich habe die Liste der Körper manuell erstellt, rufe sie aber mit demselbem Prinzip (nth) auf wie du es zeigst. Das mit der boolean Funktion hab ich auch hinbekommen die schleife sieht etwa so aus: ... for $i in bodys:; for $y from 1 to length(bodys: ); append{ ug_createInstance( class, ug_boolean, ...... unite target, (zielkörper: ), tool, (nth($y, bodys: ); )};}; die angedeutete Funktion klappt super. Leider ist sie von der Geometrie des Zielkörpers abhängig. D.h. bei komplexen Geometrien kommt eine Fehlermeldung mit dieser Schleife. Es wäre keine komplette Interference vorhanden (ich frage vorher mit der funktion predict boolean ob diese vorhanden ist..)wenn ich die körper einzeln manuell miteinander vereine, funktionert es. Ich hab aber leider keine Ahnung woran das liegt... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |