Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Pro ENGINEER
  asm-Komponenten auslesen mit Jlink

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 PTC CREO
  
Wichtige Änderung bei Lizenzverlängerungen von PTC, eine Pressemitteilung
Autor Thema:  asm-Komponenten auslesen mit Jlink (269 mal gelesen)
magic_halli
Mitglied



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

Beiträge: 361
Registriert: 03.07.2006

WF2 M210 / WF3 M110
Linux Fedora C4
WinXP Pro
Java 1.6.0_06

erstellt am: 15. Aug. 2006 07:33    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

Hi,

ich bin dabei, zu einem geöffneten Assembly alle darin enthaltenen Komponenten (PART´s) auszulesen.

Code:

Session curSession = pfcGlobal.GetProESession();
Model model = curSession.GetCurrentModel();
Assembly asm = (Assembly)model;

ComponentFeat component;
Features m_items = asm.ListFeaturesByType(Boolean.FALSE, FeatureType.FEATTYPE_COMPONENT);
          for (int i = 0; i < m_items.getarraysize(); i++){
              component = (ComponentFeat)m_items.get(i);
              String name = component.GetNumber().toString();
              stringseq seq = stringseq.create();
              seq.append(name);
              curSession.UIDisplayMessage("message.txt", "Info: %0s", seq);
          }



Ich bekomme nun die "feature regeneration number" (laut API) aller im asm enthaltenen prt´s angezeigt. Über diese Nummer komme ich doch nun sicher irgendwie an das entsprechende Teil ran, um etwas damit zu machen?!
1. Wie kann ich mir nun aber auch deren Namen anzeigen lassen?
2. Wie kann ich jedes einzelne prt in ProE (wenn gefunden) öffnen (dann etwas tun) und wieder schließen?

Vielen Dank,

Gruß Rico.


EDIT: Oder ist es vielleicht besser mit der ID zu arbeiten, statt mit der Nummer der Komponente? Ich finde aber keine Funktion, um an die ID zu gelangen  !

[Diese Nachricht wurde von magic_halli am 15. Aug. 2006 editiert.]

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

GüntherP
Mitglied
CAD Administrator / Konstrukteur


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

Beiträge: 82
Registriert: 18.02.2005

HP xw4100
NVIDIA Quadro 980XGL<P>Wildfire 2.0 / 3.0
Intralink 3.4 F000
PDMLink 8.0 M030

erstellt am: 15. Aug. 2006 08:28    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 magic_halli 10 Unities + Antwort hilfreich

Hallo Rico,

den Namen bekommst du so ...

Code:

ModelDescriptor descr = component.GetModelDescr();
Model model = curSession.GetModelFromDescr(descr);


Du holst dir den ModelDescriptor von deiner Komponente und erzeugst damit das Model Objekt. Daraus kannst du den Namen auslesen oder den ModelType ermitteln.

Zum Öffnen der Komponente ....

Code:

ModelDescriptor descr = component.GetModelDescr();
curSession.OpenFile(descr);


Zum Schließen der Komponente ....

Code:

model.Erase();



HTHHope this helps (Hoffe, es hilft weiter),

Günther

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

magic_halli
Mitglied



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

Beiträge: 361
Registriert: 03.07.2006

WF2 M210 / WF3 M110
Linux Fedora C4
WinXP Pro
Java 1.6.0_06

erstellt am: 15. Aug. 2006 08: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

...absolut geil - funktioniert!!!   
Jetzt komm ich erstmal wieder ein großes Stück vorwärts.

tausend Dank,

Gruß Rico.

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

magic_halli
Mitglied



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

Beiträge: 361
Registriert: 03.07.2006

WF2 M210 / WF3 M110
Linux Fedora C4
WinXP Pro
Java 1.6.0_06

erstellt am: 15. Aug. 2006 10: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

Nachtrag:

Die einzelnen Part´s eines asm öffenen geht einwandfrei. Nur wenn ich das model.Erase() am Schluß einfüge, um das geöffnete Part wieder zu schließen und mit dem nächsten fortzufahren, erscheint eine Fehlermeldung:
"pfc.Implementation.pfcExtensions$XToolkitInUse"!!!
... und es wird nichts geschlossen!

An was kann das bitteschön liegen - wird da irgendwas im Speicher gehalten o.ä.???

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

GüntherP
Mitglied
CAD Administrator / Konstrukteur


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

Beiträge: 82
Registriert: 18.02.2005

HP xw4100
NVIDIA Quadro 980XGL<P>Wildfire 2.0 / 3.0
Intralink 3.4 F000
PDMLink 8.0 M030

erstellt am: 15. Aug. 2006 13:04    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 magic_halli 10 Unities + Antwort hilfreich

Uups, das ist mein Fehler. model.Erase() möchte ja das Modell aus der Sitzung löschen. Das geht natürlich nicht, weil ja die Assembly noch offen ist. Versuch das ganze mal über ein Window Objekt.

Code:

Window win = curSession.GetCurrentWindow();
win.Close();


Wenn du ein Modell öffnest, müsste es als aktuelles Fenster angezeigt werden. Dieses Fenster kann man schließen. Das Code Fragment ist als Ersatz für model.Erase() gedacht.

Gruß,
Günther

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

magic_halli
Mitglied



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

Beiträge: 361
Registriert: 03.07.2006

WF2 M210 / WF3 M110
Linux Fedora C4
WinXP Pro
Java 1.6.0_06

erstellt am: 15. Aug. 2006 13: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

So, nun läuft meine Funktion wie vorgesehen und gewünscht 

Geile Sache dieses Jlink... bis zur nächsten "Ratlos-Stelle" 


Gruß Rico.

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