Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Assembly Constraint Type

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:  Assembly Constraint Type (2180 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: 14. Okt. 2008 15:32    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 User Function(C) den Typ diverser Assembly Constraints auszulesen. Mit der Funktion UF_OBJ_ask_type_and_subtype(...) eigenlich auch nicht weiter ein Problem. Mit dieser erhalte ich für den den Typ 160 und für den Subtyp 2. Bis dahin auch noch ok. Nun möchte ich noch wissen um was für ein Constraint es sich handelt (Fix etc.). Leider habe ich in der Help keine geeignete Funktion gefunden.
Hat das von Euch schon jemand gemacht? Über ein paar Tips würde ich mich freuen.

Gruss Martin

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

Overcast
Mitglied



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

Beiträge: 111
Registriert: 21.12.2005

.

erstellt am: 14. Okt. 2008 15: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 mazoco 10 Unities + Antwort hilfreich

Hallo Martin,

die "alte" C API hat meines Wissens nach keine Unterstützung für die "neuen" Assembly/Positioning Constraints.

Mit C#.NET würde es in etwa so aussehen:

Code:

using System;
using System.Collections;
using NXOpen;
using NXOpen.Assemblies;
using NXOpen.Positioning;
using NXOpen.Utilities;

public class Program
{
    // class members
    private static Session theSession;
    private static UI theUI;
    private static ListingWindow lw;

    public static int Main(string[] args)
    {
        theSession = Session.GetSession();
        theUI = UI.GetUI();
        lw = theSession.ListingWindow;

        try
        {
            lw.Open();
            // check for existing target work part
            Part disp_part = theSession.Parts.Display;
            if (disp_part == null)
            {
                lw.WriteLine("No displayed part...exit.");
                return 1;
            }

            ComponentAssembly ca = disp_part.ComponentAssembly;
            lw.WriteLine("ComponentAssembly = " + ca);
           
            Positioner pos = ca.Positioner;
            lw.WriteLine("Positioner = " + pos);

            ConstraintCollection conscol = pos.Constraints;
            IEnumerator iEnum1 = conscol.GetEnumerator();
            Constraint cons;

            iEnum1.Reset();
            while( iEnum1.MoveNext() )
            {
                cons = (Constraint) iEnum1.Current;
                lw.WriteLine("\n" + cons.ToString() + ", Type: " + cons.ConstraintType);
               
                ConstraintReference[] consrefs = cons.GetReferences();
                IEnumerator iEnum2 = consrefs.GetEnumerator();
                iEnum2.Reset();
                while (iEnum2.MoveNext())
                {
                    ConstraintReference consref = (ConstraintReference)iEnum2.Current;

                    lw.WriteLine("  Associated Geometry: " + consref.GetGeometry().ToString());
                }
            }


        }
        catch (NXOpen.NXException ex)
        {
            // NX5
            UI.GetUI().NXMessageBox.Show("Message", NXMessageBox.DialogType.Error, ex.Message);
            // NX4
            // lw.Open(); lw.WriteLine(ex.Message);
        }
        return 0;
    }

    public static int GetUnloadOption(string arg)
    {
        return System.Convert.ToInt32(Session.LibraryUnloadOption.Immediately);
    }

}


Somit wirst Du wohl nicht drumherumkommen, Deinen C Code mit den entsprechenden NXOpen C++ Klassen zu beglücken.

Gruß,
Frank.

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

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


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

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 15. Okt. 2008 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 Nur für mazoco 10 Unities + Antwort hilfreich

Hallo Martin,

wenn's Dir lediglich darum geht, herauszufinden was sich hinter Type 160, Subtype 2 verbirgt, hier ein paar Tipps:

    - Im Anhang der GRIP- Doku gibt's ein Liste der Objekttypen.
    - In der Datei uf_object_types.h steht die Definition der Objekttypen.
    - Im Beitrag http://ww3.cad.de/foren/ubb/Forum442/HTML/000351.shtml  findest Du ein Tool zur einfachen Suche nach Objekttypen. Für Typ 160 muß der Haken bei Obsolete Types gesetzt sein.

Gruß, Michael

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



Ingenieur*in der Fachrichtung Elektrotechnik

ls größte Stadt am linken Niederrhein geben wir mehr als 272.000 Menschen mit unterschiedlichen Sprachen, Kulturen und Religionen ein Zuhause. 44 Stadtteile mit lebenswerten Quartieren prägen die Stadt auf vielfältige Weise. Rund 150 verschiedene Nationalitäten leben heute in unserer Stadt zusammen. Ihr Charakter ist geprägt durch urbanes Flair in grüner Umgebung - nicht umsonst nennt man die Stadt mit ihren zahlreichen Parks und Grünanlagen auch "Großstadt im Grünen"....

Anzeige ansehenElektrotechnik, Elektronik
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: 16. Okt. 2008 10:59    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

Besten Dank für Eure Tips. Es scheint als lassen sich Assembly Constraints nur mit einem relativ grossen Aufwand auslesen. Naja, ich werde mich diesem Thema einmal annehmen und falls ich was rauskriege natürlich auch posten.

Gruss Martin

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