Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Instanz Child list

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX
Autor Thema:  Instanz Child list (1345 mal gelesen)
thomas167
Mitglied
Ingenieur


Sehen Sie sich das Profil von thomas167 an!   Senden Sie eine Private Message an thomas167  Schreiben Sie einen Gästebucheintrag für thomas167

Beiträge: 42
Registriert: 20.05.2008

erstellt am: 01. Apr. 2009 15:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von thomas167 an!   Senden Sie eine Private Message an thomas167  Schreiben Sie einen Gästebucheintrag für thomas167

Beiträge: 42
Registriert: 20.05.2008

erstellt am: 07. Apr. 2009 08:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von AntonCAD an!   Senden Sie eine Private Message an AntonCAD  Schreiben Sie einen Gästebucheintrag für AntonCAD

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für thomas167 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von thomas167 an!   Senden Sie eine Private Message an thomas167  Schreiben Sie einen Gästebucheintrag für thomas167

Beiträge: 42
Registriert: 20.05.2008

erstellt am: 09. Apr. 2009 10:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von thomas167 an!   Senden Sie eine Private Message an thomas167  Schreiben Sie einen Gästebucheintrag für thomas167

Beiträge: 42
Registriert: 20.05.2008

erstellt am: 16. Apr. 2009 11:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von AntonCAD an!   Senden Sie eine Private Message an AntonCAD  Schreiben Sie einen Gästebucheintrag für AntonCAD

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für thomas167 10 Unities + Antwort hilfreich

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



Entwicklungsingenieur Abgasanlagen (m/w/d)
MITTELSTÄNDISCH ? PRAGMATISCH ? LEIDENSCHAFTLICH

ACONEXT ist Kompetenz in Technologieberatung, IT und Engineering. Gemeinsam arbeiten wir an den technischen Innovationen von morgen. Mit Leidenschaft für Technik und Technologie entwickeln wir mit unseren rund 700 Mitarbeiterinnen & Mitarbeitern neue Produktgenerationen für die Automobil- und Luftfahrtindustrie. Wir sind am Markt etabliert, langfristige Projekte und Geschäftsbeziehungen zeichnen uns aus....
Anzeige ansehenEntwicklung
thomas167
Mitglied
Ingenieur


Sehen Sie sich das Profil von thomas167 an!   Senden Sie eine Private Message an thomas167  Schreiben Sie einen Gästebucheintrag für thomas167

Beiträge: 42
Registriert: 20.05.2008

erstellt am: 23. Apr. 2009 11:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz