Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX
  KF hostpointer -> instance

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
  
HBB Engineering: Kostenlose NX Lernvideos auf YouTube (NX)
Autor Thema:  KF hostpointer -> instance (315 mal gelesen)
DinnerForOne
Mitglied



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

Beiträge: 62
Registriert: 29.10.2004

UG NX3

erstellt am: 21. Dez. 2004 15:56    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 KF Hackers,

folgendes Datentyp Problem:

Ich baue mit KF Funktionalität (ug_component) Baugruppen. Um diese zu platzieren, nehme ich Bezug auf bereits über KF eingefügte Komponenten. Dafür habe ich den Selektionsdialog von UG, dieser liefert eine Liste der selektierten Objekte, mit dem Datentyp Hostpointer.

Nun muss ich bei den Instanzen an das Attribut eines Childs kommen. Dafür gibt es die Funktion:
  ug_askAttrValue(Instance, $Instance, String, $title )
Diese braucht aber den Datentyp Instance. Wie kann ich den hostpointer in eine Instance umwandeln?

Der Instance-name ist variabel, kann also nicht hardcodiert arbeiten, Werte in Liste der Selektion sind variabel...

Danke für Tipps!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Joerg.A
Mitglied



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

Beiträge: 86
Registriert: 12.12.2001

erstellt am: 21. Dez. 2004 17:03    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 DinnerForOne 10 Unities + Antwort hilfreich

Hi,

interessant, ich hatte gerade vor ein paar Tagen genau das selbe Problem wie Du. Ich habe bis jetzt allerdings nur eine Lösung mit ug_adoptObject() gefunden. Hier bekommst Du bei einem Hostpointer, zu dem eine Instanz existiert, eine Referenz auf die zugehöige Instanz zurück. Nur leider werden dann halt auch alle nicht KF Komponenten nach KF adoptiert, was in meinem Fall nicht so befriedigend war.
Interessant ist allerdings, wenn man die Komponente manuell mit "Reference by Select" selektiert, bekommt man die Instanz zurück, nur in den Styler Dialogen bekommt man den Hostpointer. Ich werde mir diese Sache im neuen Jahr nocheinmal genauer ansehen und dann am besten mal einen IR aufmachen.

Nur zur Info!  ug_askAttrValue(Instance, $Instance, String, $title ) liest UG Objekt Attribute aus und keine KF Attribute.

Schöne Grüße
Joerg.A

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

DinnerForOne
Mitglied



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

Beiträge: 62
Registriert: 29.10.2004

UG NX3

erstellt am: 22. Dez. 2004 10:20    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 Joerg,

danke für deine Antwort. Ich habe mit der Problematik noch UGS angefragt, mal schauen ob was zurückkommt.

Dein Hinweis:
Nur zur Info!  ug_askAttrValue(Instance, $Instance, String, $title ) liest UG Objekt Attribute aus und keine KF Attribute.

Habe da was anderes herausgefunden (NX3), das mit lesen der KF Attribute hat funktioniert (aber nur wenn ich die Instance hardcodiert angegeben habe -> für meine Applikation nicht brauchbar).

Zum lesen von Part Attributen:

*************UG Help ****************************
Defun: ug_askAttrValue_(String, $part_name,String, $object_name,String, $title )@{...} Any;


Description: Returns the value of a given attribute of a given object in a given file

Use "PART_ATTRIBUTE" for the $object_name string to get the value of a part
attribute. For example, if the title is "my_attr" in the current part (""),
use:

        ug_askAttrValue_("", "PART_ATTRIBUTE", "my_attr");
--
Input Arguments:
part_name - Specify the part name
object_name - Specify the object name
title - Specify the title of the attribute
Returns:
Any- The value of a given attribute
********************************************************
Wenn ich eine Lösng habe (bin optimistisch), werde ich mich wieder melden.

Gruss

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

älg
Mitglied
CADmin


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

Beiträge: 403
Registriert: 17.06.2003

erstellt am: 22. Dez. 2004 10:58    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 DinnerForOne 10 Unities + Antwort hilfreich

Um auch hier meinen Senf hinzuzugeben:

ug_adoptObject(irgendeinhostpointer ist o.k. - funktioniert bei mir zumindest.

ug_askAttrValue_ ... ist auch o.k. - s.o.

Selbstverständlich kann ich auch beliebige (nicht hardcodierte) KF-Attribute lesen, indem ich mir in einer prozeduralen Sequenz den Namen bastele und dann hinterfrage, etwa so

Defun: KF_att? (integer $i, string $str)
@{
  $KF_attname << "irgendwas"+format("%d", $i)+"_nochwas"+$str;
  $KF_att << ref(self:, $KF_attname);
...
};

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

älg
Mitglied
CADmin


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

Beiträge: 403
Registriert: 17.06.2003

erstellt am: 22. Dez. 2004 11:00    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 DinnerForOne 10 Unities + Antwort hilfreich

Auch hier gilt: Smilies nerven bisweilen...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

DinnerForOne
Mitglied



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

Beiträge: 62
Registriert: 29.10.2004

UG NX3

erstellt am: 22. Dez. 2004 14:21    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 älg,

habe auch noch die ref() Funktion ausprobiert, das Problem ist aber, dass ich bei der Instance nicht "self" angeben kann. Ich möchte das Attribut einer durch den Selektionsdialog definierten KF-Objekts wissen, also nicht self sondern das Objekt definiert durch den HostPointer(aus der Selektion). Und hier loopt das Problem wieder, die Funktion self() motzt wegen der Typenverletzung wenn ich ihr den hostpointer gebe.
Habe die Instance schon als String aus dem Hostpointer herausgelesen, aber den String schlucken all die Funktionen auch nicht.
Eigentlich brauche ich eine simple HostName_to_instance() Funktion...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

älg
Mitglied
CADmin


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

Beiträge: 403
Registriert: 17.06.2003

erstellt am: 22. Dez. 2004 15:01    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 DinnerForOne 10 Unities + Antwort hilfreich

Dann nimm doch auch hier die ug_adoptObject() - Funktion, das sollte klappen...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

DinnerForOne
Mitglied



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

Beiträge: 62
Registriert: 29.10.2004

UG NX3

erstellt am: 22. Dez. 2004 15:55    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 zusammen,

endlich klappt es, danke vielmals für die Tipps

#zuerst den Hostponiter aus der selektion (die Liste RI_REF_SYMB_FUNC: von der ich das letzte Element nehme) in eine Instance umwandeln
(any Modifiable Parameter) ri_instance: ug_adoptObject(last(RI_REF_SYMB_FUNC:));

#dann das Part Attribut (nicht KF Attribut, meine Aussage war falsch, sorry) des gepointeten KF-Objektes lesen
(String Modifiable Parameter) ri_attr_symb: ug_askAttrValue(ri_instance:, "RI_FD_PART_NAME" );

Also, machts gut und auf ein andermal!

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)2024 CAD.de | Impressum | Datenschutz