Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  STL Export Java

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:  STL Export Java (1848 mal gelesen)
mazoco
Mitglied



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

Beiträge: 43
Registriert: 31.10.2007

erstellt am: 22. Jun. 2009 13:42    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

Ich versuche mit Java einen Stl Export (nur Solids). Auf einem Bauteil funktioniert der Export einwandfrei. Bei einer Baugruppe wird jedoch nichts exportiert. Irgendwie werden keine Bodies erkannt.

Code:
      BodyCollection bodies = dispPart.bodies();
            BodyCollection.Iterator it = bodies.iterator();
           
            // Open the STL binary file
            UFVariant fileHandle = theUFSession.std().openBinaryStlFile(stlfile, false, stlkeyvalue);

            // Export all bodies with current WCS
            while (it.hasNext()) {
                Body bd = (Body) it.next();           

                if (bd.isSolidBody() && bd.layer() == layer) {
                    lw.writeLine("Solid Body " + bd.tagValue());
                    theUFSession.std().putSolidInStlFile(
                            fileHandle,
                            Tag.NULL,
                            bd.tag(),
                            0, 100, tolerance);
                }
            }

            // Close the file
            theUFSession.std().closeStlFile(fileHandle);


Hat jemand von Euch ein Lösungsansatz?

Gruss Martin

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

Siassei
Mitglied
MB - Student


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

Beiträge: 490
Registriert: 08.07.2007

SWX
NX 3 und höher ;)
Windows and UNIX<P>C, C++, Java, Phyton,...</P>

erstellt am: 22. Jun. 2009 16:07    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 mazoco 10 Unities + Antwort hilfreich

Servus,

was ergibt ... ?

Code:
bodies.toArray().getLength()

dispPart repräsentiert das aktuell, dargestellte Part. Bei einem guten Design ist der Teilenavi. leer und somit sind auch keine Körper in deinem aktuellen Part.

Lösung:
1) Durchlaufe die Assembly und holl dir aus den einzelnen Componenten die Informationen
2) Hebe alle Körper an, exportiere die Bodies und lösche die Anhebungen wieder
3) Es gibt höchst wahrscheinlich eine einfacher Lösung 

Gruß
  Thomas

------------------
Hopfen und Mals
Gott erhalts 

Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life.

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

mazoco
Mitglied



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

Beiträge: 43
Registriert: 31.10.2007

erstellt am: 23. Jun. 2009 20:39    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


error.png

 
Salut Thomas

Deine Idee mit dem Anheben finde ich ein super Ansatz. Ich denke mal, dass ich den Export so hinbekomme. Ich habe mal kurz ein Java Programm geschrieben, dass nur eine Komponente anheben soll. Nun stehe ich vor dem nächsten Problem. Ich erhalte einen Error (siehe Anhang). Der Fehler tritt bei NXObject nXObject1 = promotionBuilder1.commit() auf.

Code:
import nxopen.*;
import nxopen.assemblies.Component;
import nxopen.assemblies.ComponentAssembly;
import nxopen.features.PromotionBuilder;

public class EFstlExport {


    static public ListingWindow lw = null;

    public static void main(String[] args) throws NXException, java.rmi.RemoteException {
        Session theSession = (Session) SessionFactory.get("Session");
        lw = theSession.listingWindow();
        Part workPart = theSession.parts().work();
        Part displayPart = theSession.parts().display();

        int markId1;
        markId1 = theSession.setUndoMark(nxopen.Session.MarkVisibility.VISIBLE, "Start");

        nxopen.features.Promotion nullFeatures_Promotion = null;

        ComponentAssembly c = workPart.componentAssembly();
        Component comp = c.rootComponent();
        Component[] test = comp.getChildren();

        PromotionBuilder promotionBuilder1 = workPart.features().createPromotionBuilder(nullFeatures_Promotion);

        Part part = (Part) test[1].prototype();
        BodyCollection body = part.bodies();
        BodyCollection.Iterator it1 = body.iterator();
        Body body1 = (Body) it1.next();

        boolean added1;
        added1 = promotionBuilder1.body().add(body1);

        NXObject nXObject1 = promotionBuilder1.commit();

        promotionBuilder1.destroy();

    }

    public static final int getUnloadOption() {
        return BaseSession.LibraryUnloadOption.IMMEDIATELY;
    }
}



Hast du noch eine Idee was das sein könnte?

Gruss Martin

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

Siassei
Mitglied
MB - Student


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

Beiträge: 490
Registriert: 08.07.2007

SWX
NX 3 und höher ;)
Windows and UNIX<P>C, C++, Java, Phyton,...</P>

erstellt am: 24. Jun. 2009 18:14    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 mazoco 10 Unities + Antwort hilfreich

Servus,

die Zeile der Exception währe Interessant.

Ich denke mal, dass es hier passiert

Code:
PromotionBuilder promotionBuilder1 = workPart.features().createPromotionBuilder(nullFeatures_Promotion);

Wenn du hier ein Objekt übergibst, dann möchte er das Editieren. Bei null ist das ein kleines Problem. Übergebe hier null
Code:
PromotionBuilder promotionBuilder1 = workPart.features().createPromotionBuilder(null);

Ich berufe mich auf den C# - Code aus der NX6-Lib
Code:
public PromotionBuilder createPromotionBuilder(Promotion promotion)
        {
            NXOpen.Tag tag;
            JAM.StartCall("solid_modeling");
            int status = JA_FEATURE_create_promotion_builder(this.Tag, (promotion == null) ? NXOpen.Tag.Null : promotion.Tag, out tag);
            if (status != 0)
            {
                throw NXException.Create(status);
            }
            return (PromotionBuilder) NXObjectManager.Get(tag);
        }

Code:
Part part = (Part) test[1].prototype();

Ist ein zweites Part vorhanden?

Gruß
  Thomas

------------------
Hopfen und Mals
Gott erhalts 

Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life.

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

mazoco
Mitglied



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

Beiträge: 43
Registriert: 31.10.2007

erstellt am: 30. Jun. 2009 20:12    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

Salut Thomas

Null als Übergabe-Wert hat leider nichts gebracht. Ich erhalte immer noch den selben Fehler. Langsam bin ich am verzweifeln.


Gruss Martin

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

Siassei
Mitglied
MB - Student


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

Beiträge: 490
Registriert: 08.07.2007

SWX
NX 3 und höher ;)
Windows and UNIX<P>C, C++, Java, Phyton,...</P>

erstellt am: 01. Jul. 2009 14:05    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 mazoco 10 Unities + Antwort hilfreich

Servus,

in welcher Zeile bricht er ab? Lass dir das mal Ausgeben bzw. log das mal

------------------
Hopfen und Mals
Gott erhalts 

Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life.

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



Fachingenieur (m/w/d) Grundstücksentwässerung und Verkehrsflächen

GOLDBECK?realisiert zukunftsweisende Immobilien in Europa. Wir verstehen Gebäude als Produkte und bieten alle Leistungen aus einer Hand: vom Design über den Bau bis zu Services im Betrieb. Aktuell beschäftigt unser Familienunternehmen mehr als 12.000 Mitarbeitende an über 100 Standorten bei einer?Gesamtleistung von über 6 Mrd. Euro. Unser Anspruch ?building?excellence? steht dabei für Spitzenleistungen ...

Anzeige ansehenBauwesen
mazoco
Mitglied



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

Beiträge: 43
Registriert: 31.10.2007

erstellt am: 07. Jul. 2009 16: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

Servus

Er bricht mir bei commiten ab:

Code:
NXObject nXObject1 = promotionBuilder1.commit();

Ich nehme mal an, irgendwas stimmt mit einem Tag schon einige Zeilen vorher nicht.

Gruss

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