Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Baugruppen Bedingungen

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:  Baugruppen Bedingungen (1869 mal gelesen)
andras
Mitglied
Student

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

Beiträge: 6
Registriert: 18.03.2008

erstellt am: 18. Mrz. 2008 16: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

Hallo,

ich schreibe zZ eine Diplomarbeit (Maschinenbau) über ein Programm für NX4.

Hauptziel der Arbeit ist das Laden und Postionieren von Teilen in eine Baugruppe.
Als Programmiersprache hab ich mir Visual Bais ausgewählt (.Net).

Leider habe ich es bis jetzt nicht geschafft eine Positionierung vorzunehmen,
was an meinen mangelnden Kenntnissen liegen kann.

Ich suche eigentlich ein Beispiel an dem ich mir vielelicht die Constraint Klasse erklären kann.
Die Doko von NX erschließt mir das Problem leider nicht.

Schöne wäre ein Beispiel wie man 2 Ebenen übereinander legt (verschiedenen Bauteile).

[Diese Nachricht wurde von andras am 18. Mrz. 2008 editiert.]

[Diese Nachricht wurde von andras am 18. Mrz. 2008 editiert.]

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: 18. Mrz. 2008 19:27    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 andras 10 Unities + Antwort hilfreich

Hallo andras,

hast Du schon mal versucht, ein Journal beim interaktiven Positionieren aufzuzeichnen ?
Da steht dann evtl. schon was passendes drin. Ansonsten mal in der .NET-Reference nach der Klasse suchen. Hier noch ein Beispiel zum Auslesen von positioning Constraints, leider C#. Wie auf die Klasse zugegriffen wird, ist aber soweit zu erkennen, daß Du es in VB übersetzen kannst.

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

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

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

        try
        {
            // 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;
            Positioner pos = ca.Positioner;
            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);
    }

}

Gruß, Michael

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

andras
Mitglied
Student

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

Beiträge: 6
Registriert: 18.03.2008

erstellt am: 20. Mrz. 2008 17:47    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

Ich habe jetzt mal ein Beispiel geschrieben welches sich jeweils 2 Ebenen nimmt und diese in die matingcondition Klasse übergibt.
Problem ist eigentlich ich weiss nicht was ich da übergeben soll.
Die Klasse verlangt ja  „TAG“ was mich irgendwie verwundert.
Bei der Zeile mc_data.constraints(0) = mateConstr() meckert er nun.
Ich denke das Problem ist meine Definition von mateConstr aber ehrlich die Doko ist da ein Buch mit 7Siegeln für mich.
Kennt sich jmd damit aus?

Option Strict Off

Imports System
Imports System.Collections
Imports NXOpen
Imports NXOpenUI
Imports NXOpen.UI
Imports NXOpen.Assemblies
Imports NXOpen.Positioning
Imports NXOpen.UF
Imports NXOpen.Utilities

Module NXJournal
Sub Main

Dim theSession As Session = Session.GetSession()
Dim workPart As Part = theSession.Parts.Work
Dim displayPart As Part = theSession.Parts.Display
Dim theUFSession As UFSession = UFSession.GetUFSession()
Dim mateConstr As NXOpen.UF.UFAssem.Constraint
mateConstr = new UFAssem.Constraint()

Dim mc_data As UFAssem.MatingCondition = new UFAssem.MatingCondition()
Dim from_occ As Tag
Dim to_ooc As Tag

Dim component1 As Assemblies.Component = CType(workPart.ComponentAssembly.FindObject("HANDLE O-168"), Assemblies.Component)
Dim datumPlane1 As DatumPlane = CType(component1.FindObject("PROTO#HANDLE R-792"), DatumPlane)
Dim component2 As Assemblies.Component = CType(workPart.ComponentAssembly.FindObject("HANDLE O-23"), Assemblies.Component)
Dim datumPlane2 As DatumPlane = CType(component2.FindObject("PROTO#HANDLE R-2398"), DatumPlane)

mateConstr.from_Status = UFAssem.LoadStatus.OK
mateConstr.to_Status = UFAssem.LoadStatus.OK
mateConstr.mate_Type = UFConstants.UF_ASSEM_v16_mate
mateConstr.from_Type = UFConstants.UF_ASSEM_planar_face
mateConstr.to_Type = UFConstants.UF_ASSEM_planar_face
mateConstr.from = theUFSession.assem().askPrototypeOfOcc(datumPlane1.tag)
mateConstr.from_Part_Occ = theUFSession.assem().askPartOccurrence(component1.tag)
mateConstr.to = theUFSession.assem().askPrototypeOfOcc(datumPlane2.tag)
mateConstr.to_Part_Occ = theUFSession.assem().askPartOccurrence(component2.tag)
mateConstr.offset = 1
mateConstr.name = ""
mateConstr.user_Name = false

mc_data.num_Constraints = 1
mc_data.constraints(0) = mateConstr()
mc_data.mated_Object = theUFSession.assem().askInstOfPartOcc(theUFSession.assem().askPartOccurrence(datumPlane1.tag))
mc_data.name = ""
mc_data.user_Name = false
mc_data.suppressed = false

End Sub

End Module

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

JanKansi
Mitglied
Ing.

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

Beiträge: 2
Registriert: 20.07.2018

erstellt am: 20. Jul. 2018 11:31    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 andras 10 Unities + Antwort hilfreich

Hallo zusammen,
hat jemand in diesem Zusammenhang einen funktionierenden Code zur Positionierung von Bauteilen gefunden?

Ich stehe vor dem selben Problem und komme auf keinen grünen Zweig...

------------------
Danke für eure Hilfe

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



Ingenieur/in (w/m/d) Bau bzw. Siedlungswasserwirtschaft für die Bauherrenvertretung in der Planung

Die Stadtverwaltung Nürnberg ist eine moderne Dienstleisterin für mehr als eine halbe Million Bürger/innen. Als eine der größten Arbeitgeberinnen der Region vertrauen wir dabei auf die Fähigkeiten und Fertigkeiten unserer rund 12.000 Mitarbeiter/innen, die mit Engagement und Tatkraft die Stadt Nürnberg mitgestalten und besonders machen.

Die Stadtentwässerung und Umweltanalytik ...

Anzeige ansehenFeste Anstellung
geraldb
Mitglied



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

Beiträge: 38
Registriert: 13.09.2008

erstellt am: 20. Jul. 2018 17:43    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 andras 10 Unities + Antwort hilfreich

Ansatz: Koordinatensysteme (CSys) inkl. Namen definieren und diese durch Constraints verbinden, bspw. Topf und Deckel. Innerhalb der Baugruppe Topf ein CSys an der Stelle des Deckels platzieren und benennen und im Deckel selbst wiederum ein benanntes CSys einsetzen (oder PartOrigin verwenden). Per Code dann die CSys einer Komponente im Prototype suchen und im einfachsten Fall ein Touch-Constraint platzieren. Auch andere Arten sind machbar, beim Abstandsconstraint muß man bspw. die Achsenrichtung des WCS berücksichtigen.

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