Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Pro ENGINEER
  vereinfachte Darstellung erzeugen 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 Creo
  
SF DRAWING , eine App
Autor Thema:  vereinfachte Darstellung erzeugen mit Jlink (374 mal gelesen)
Dr Tella Nu
Mitglied
Entwickler

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

Beiträge: 1
Registriert: 27.11.2006

erstellt am: 27. Nov. 2006 21:50    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 möchte mit Jlink (WF3) eine vereinfachte Darstellung in einer Baugruppe erzeugen und Komponenten ersetzen.
Folgender Code soll in erster Annäherung alle Komponenten einer Baugruppe ausschließen:

import com.ptc.cipjava.*;

import com.ptc.pfc.pfcAssembly.*;
import com.ptc.pfc.pfcFeature.FeatureType;
import com.ptc.pfc.pfcFeature.Features;
import com.ptc.pfc.pfcSession.Session;
import com.ptc.pfc.pfcSimpRep.*;[CODE][/CODE]
import com.ptc.pfc.pfcComponentFeat.*;
import javax.swing.JOptionPane;

public class mysimprep
{
  public mysimprep(Session session, Assembly Baugruppe)
  {
      try
      {
          SimpRepCompItemPath itempath = null;
          SimpRepItem simitem = null;
          ComponentFeat cmp_feat = null;
          Features components = Baugruppe.ListFeaturesByType(new Boolean(true), FeatureType.FEATTYPE_COMPONENT);
          intseq int_path  = intseq.create();
          SimpRepExclude sre = pfcSimpRep.SimpRepExclude_Create();
          SimpRepItems simprepitems = SimpRepItems.create();
         
          for (int i = 0; i < components.getarraysize(); i++)
          {
              cmp_feat = (ComponentFeat)components.get(i);
              int_path.set(i, cmp_feat.GetId());
              itempath = pfcSimpRep.SimpRepCompItemPath_Create(int_path);
              simitem = pfcSimpRep.SimpRepItem_Create(itempath); 
              simitem.SetAction( sre);
              simitem.SetItemPath(itempath);
              simprepitems.set(i, simitem);
          }
         
          CreateNewSimpRepInstructions instrs = pfcSimpRep.CreateNewSimpRepInstructions_Create("Test");
         
          instrs.SetDefaultAction(SimpRepActionType.SIMPREP_EXCLUDE);
          instrs.SetItems((SimpRepItems)simprepitems);
               
          SimpRep sr = Baugruppe.CreateSimpRep(instrs);
             
          sr.SetInstructions(instrs);
          Baugruppe.ActivateSimpRep(sr);
      }
             
      catch (jxthrowable x)
      {
          JOptionPane.showMessageDialog ( null, "simprep Fehler", "Fehler", JOptionPane.ERROR_MESSAGE );
      }
  }
}

Pro/E erstellt zwar eine vereinfachte Darstellung unter dem Namen "Test" und der Standartregel "Exclude" in der Baugruppe, die Komponenten sind aber lediglich inaktiv und nicht excluded.

Ich habe folgende Fragen:

- wo liegt der Fehler?
- wie muß ich den Code umschreiben, um einzelne Komponenten zu ersetzen (substitude)?

Vielen Dank im Vorraus

Tella Nu

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

mholz
Mitglied
CAx Admin


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

Beiträge: 198
Registriert: 27.10.2000

OS:
Win 10 64
Hardware:
?
CAD:
Creo Parametric 4.0
PDM+MDM:
Windchill PDMlink ?

erstellt am: 28. Nov. 2006 01:52    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 Dr Tella Nu 10 Unities + Antwort hilfreich

Hallo,

zuerst mal herzlich willkommen im Forum. 

Wenn ich Dich recht verstanden habe dann versuchst Du eine Vereinfachte Darstellung zu erstellen mit der Standard Regel "EXCLUDE"?
Da müssen die Modelle nicht mehr extra ausgeschlossen werden.

Code:
public static void createEmptySimpRep(Model proeModel) throws jxthrowable {
  ModelItems simpReps = proeModel.ListItem(ModelItemType.ITEM_SIMPREP);
  int numSimpReps = simpReps.getarraysize();
  boolean foundEmptyRep = false;

  for ( int i = 0; i < numSimpReps; i++ ) {
    SimpRep rep = (SimpRep)simpReps.get(i);
    if ( rep.GetName().equalsIgnoreCase("EMPTY")) {
      JLinkHelper.displayMessage("Found the Simplified Representation " + rep.GetName() + " in the Assembly " + proeModel.GetFullName() + "!");
      foundEmptyRep = true;
      break;
    }
  }
  if (!foundEmptyRep) {
    JLinkHelper.displayMessage("The Simplified Representation EMPTY was not found in the Assembly " + proeModel.GetFileName() + "!");
    JLinkHelper.displayMessage("Create the Simplified Representation EMPTY!");
    CreateNewSimpRepInstructions emptySimpInstr = null;
    emptySimpInstr = pfcSimpRep.CreateNewSimpRepInstructions_Create("EMPTY");
    emptySimpInstr.SetDefaultAction(SimpRepActionType.SIMPREP_EXCLUDE);
    JLinkHelper.displayMessage("with the Name: " + emptySimpInstr.GetNewSimpName() + " and the default action: " + emptySimpInstr.GetDefaultAction().getValue());
    ((Solid) proeModel).CreateSimpRep(emptySimpInstr);
    JLinkHelper.displayMessage("Simplified Representation was created!");
  }
}

Mit diesem Code wird bei mir die Vereinfachte Darstellung erzeugt und alle Modelle ausgeschlossen.
Das mit dem ersetzen habe ich noch nicht gemacht, da muss ich nochmals nachschauen.

Gruß
Michael

------------------
„Es gibt drei Möglichkeiten, eine Firma zu ruinieren:
mit Frauen, das ist das Angenehmste;
mit Spielen, das ist das Schnellste;
mit Computern, das ist das Sicherste.“

Oswald Dreyer-Eimbcke (*1923), dt. Kaufmann

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