Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Wie bekomme ich die Anzahl der Teile heraus?

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:  Wie bekomme ich die Anzahl der Teile heraus? (2223 mal gelesen)
master001
Mitglied
Projektingenieur


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

Beiträge: 454
Registriert: 25.02.2005

erstellt am: 28. Nov. 2008 16: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

Moin Leute,

in Sache VB bin ich ein leidiger anfänger. Mit großer mühe habe ich es geschafft ein VB-Skript zu erstellen für meine Gewichtsberechnung.

Ich habe nur leider einen kleinen Haken beim errechnen:
    UG nimmt jedes Part nur einmal in die Berechnung,...
    (    For Each a_part As Part In s.Parts  )
    kann mir jemand sagen, wie ich die Anzahl der Teile abfragen kann?

Grundsätzlich wird das Gewicht der Teile bei uns auf ein Attribut gelegt und die Attribute lasse ich dann einfach aufeinander addieren. Daher auch der Fehler. Wir arbeiten nur mit Symbolischen Parts, daher kann ich das Gewicht nicht aus UG direkt bekommen.

Bin für jede Antwort dankbar...

Gruß und schönes Wochenende

Patric

------------------
E-Mail: patric.tilge@imtech.de
Internet: http://www.imtech.de

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

hardyb
Mitglied
CAD/PLM Systembetreuung


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

Beiträge: 24
Registriert: 12.11.2004

NX 6.0.x
Win XP/XP64
SAP / ECtr 4.2

erstellt am: 30. Nov. 2008 00: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 Nur für master001 10 Unities + Antwort hilfreich

Hallo Patric,

Du kannst Dir eine PartCollection mit allen Parts der Session geben lassen und
dann über die Wandlung in ein Array die Länge abfragen und erhälst somit die Anzahl der Teile
in der Session, z.B. so:

--------------------------------------------------
Option Strict off
Imports System
Imports System.Reflection
Imports System.Windows.Forms
Imports NXOpen

Module NXEXample
Sub Main
  Dim theSession as Session
  Dim anzahlParts As Integer
  Dim message as String

  theSession = Session.GetSession()

  ' Anzahl Teile in der Session ermitteln
  anzahlParts  = theSession.Parts.ToArray().Length

  ' Messagebox mit Info ausgeben
  message = "Sie haben " & anzahlParts.ToString() & " Teile in der Session geladen"
  MessageBox.Show(message,"Info")

End Sub
End Module

Gruss Hardy

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

master001
Mitglied
Projektingenieur


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

Beiträge: 454
Registriert: 25.02.2005

erstellt am: 30. Nov. 2008 17:30    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

Wenn ich dich jetzt richtig verstanden habe bekomme ich als Ergebnis die Anzahl geladener Teile. Ich brauche aber die Anzahl der gleichen Teile.
Also wenn ich meine Partinformationen abrufe mit,
For Each a_part As Part In s.Parts,
muss ich gleichzeitig fragen, wie viele gleiche Schrauben noch in der Baugruppe sind.


Gruß Patric

------------------
E-Mail: patric.tilge@imtech.de
Internet: http://www.imtech.de

[Diese Nachricht wurde von master001 am 30. Nov. 2008 editiert.]

[Diese Nachricht wurde von master001 am 01. Dez. 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: 01. Dez. 2008 16:17    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 master001 10 Unities + Antwort hilfreich

Hallo Patric,

Die PartCollection gibt Dir die geladenen Parts der Session an. Das beinhaltet jedoch nicht die Zahl die angibt, wie oft ein Part verbaut ist. Dazu müßte das Assembly durchsucht und die einzelnen Komponenten erfasst werden.
Außerhalb der NX- Session gibt's dazu schon was fertiges namens ugpc.exe. Mit der Option -n gestartet, gibt ugpc die Komponenten zusammen mit ihrer jeweiligen Anzahl aus. Also:

ugpc.exe -n partname

Wenn's aus NX heraus gestartet werden soll, ist es möglich, die Assembly- Struktur selbst zu durchsuchen oder einfacher die ugpc aus z.B. einem Journal heraus zu starten.

Gruß, Michael

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



Ingenieur Maschinenbau (m/w/d)
Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Du weißt genau, was du technologisch auf dem Kasten hast? Du suchst einen ...
Anzeige ansehenMaschinenbau
MAhrens
Mitglied
Dipl.-Ing.


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

Beiträge: 528
Registriert: 17.11.2000

erstellt am: 28. Jul. 2009 20:56    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 master001 10 Unities + Antwort hilfreich

Das Stichwort ist hier Assembly -> Component -> Part

Dim theSession As Session
theSession = Session.GetSession()

Dim ufs As UFSession
ufs = UFSession.GetUFSession()

Dim DisplayPart As part
DisplayPart = theSession.Parts.Display

Dim CompRoot As Component
CompRoot = DisplayPart.ComponentAssembly.RootComponent

Dim CompImmediate() As Component
Dim CompQty As Integer

CompImmediate = CompRoot.GetChildren()
CompQty = Ubound(CompImmediate)

Dim CompTmp As Component
Dim CompMasterPart as Part

For Each CompTmp In CompImmediate

CompMasterPart = CompMasterObject.Prototype

Next

Achtung die Prototype Eigenschaft verursacht einen Fehler bei nicht geladenen Komponenten. Hier ist evtl. mit einer Try Catch Funktion ein Fehler abzufangen. Außerdem muss darauf geachtet werden, dass GetChildren() auch Refernce Komponenten ausspuckt. Diese kann man aber durch die entsprechenden Text - Attribute erkennen.

Gruß

Matthias

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