Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Alle Elemente einer Drafting-View finden

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:  Alle Elemente einer Drafting-View finden (3921 mal gelesen)
macfrei
Mitglied


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

Beiträge: 7
Registriert: 13.06.2012

erstellt am: 13. Jun. 2012 20: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

Ich suche eine Methode, wie ich alle Elemente, die im NX Drafting in der aktuellen Drawing in einer View sind.
Ich kann die View-Collection holen, die einzeln Views durchgehen, habe aber (noch) nichts gefunden, wie ich ermitteln kann, was alles in dieser View enthalten ist (Collection der NX-Objekte).

aktueller Stand (C#):

Code:
            Session theSession = Session.GetSession();
            UFSession theUfSession = UFSession.GetUFSession();
            Part workPart = theSession.Parts.Work;

            NXOpen.Drawings.DraftingViewCollection DftgViewColl;
            NXOpen.Drawings.DraftingView[] dViews;


            DftgViewColl = workPart.DraftingViews ;
            dViews = DftgViewColl.ToArray();
            vCount = dViews.Length;

            for (int i = 0; i < vCount; i++)
            {
              ..... finden der Elemente in dieser View


Wenn jemand eine Idee hat...

Gruss
Mac

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

gfx-toxic.de
Moderator
Konstruktion / Anwenderbetreuung


Sehen Sie sich das Profil von gfx-toxic.de an!   Senden Sie eine Private Message an matthias-p  Schreiben Sie einen Gästebucheintrag für matthias-p

Beiträge: 501
Registriert: 09.06.2006

Teamcenter 11.3 / NX 11
Windows 10

erstellt am: 14. Jun. 2012 09: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 macfrei 10 Unities + Antwort hilfreich

Moin,
da gibts eine Methode

NXOpen.DisplayableObject[] displayable_objects = workpart.DrawingSheets.ToArray()[i].View.AskVisibleObjects

bzw. für die View:

NXOpen.DisplayableObject[] displayable_objects = workpart.DraftingViews.ToArray()[i].AskVisibleObjects();

geht aber nur wenn die View wirklich sichtbar ist.
Wenn nicht musst du über die UF gehn.

------------------
Gruß Matthias
------------------------------------
ICQ: 163190295

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

macfrei
Mitglied


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

Beiträge: 7
Registriert: 13.06.2012

erstellt am: 14. Jun. 2012 09:28    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 Matthias
Danke für die schnelle Antwort. Das kann ich evtl. verwenden. Wobei ich eben festgestellt habe, dass Objekte, die nicht im "View-Frame" sind (also ausserhalb um unsichtbaren Bereich) nicht aufgelistet werden (work as designed ;-)
Daher werde ich voraussichtlich auf die UF ausweichen müssen.
Kennst du dort ein Objekt oder eine Methode, die die Elemente in der View auflistet?

Danke und Gruss
Markus

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

gfx-toxic.de
Moderator
Konstruktion / Anwenderbetreuung


Sehen Sie sich das Profil von gfx-toxic.de an!   Senden Sie eine Private Message an matthias-p  Schreiben Sie einen Gästebucheintrag für matthias-p

Beiträge: 501
Registriert: 09.06.2006

Teamcenter 11.3 / NX 11
Windows 10

erstellt am: 14. Jun. 2012 09: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 Nur für macfrei 10 Unities + Antwort hilfreich

...puh...versuchs mal damit.
HAb ich aber nicht getestet:

UF_VIEW_ask_visible_objects (view source)

Defined in: uf_view.h

Overview

Returns visible objects in a view broken down by those which are entirely
visible within the view and those which are visible but clipped by the view
boundary (i.e those which cross the view boundary).

Note that this function is primarily designed to work with drafting member
views. While it may be used with model views or drawing sheet views, the bounds
of those latter views are not considered in the outcome. The bounds of drafting
member views, including those with non-rectangular borders are considered.

------------------
Gruß Matthias
------------------------------------
ICQ: 163190295

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

macfrei
Mitglied


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

Beiträge: 7
Registriert: 13.06.2012

erstellt am: 14. Jun. 2012 11:15    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

Danke, Matthias

ich kanns sogar mit der .NET Implementierung fer UF realisieren:

Code:
                theUfSession.View.AskVisibleObjects(vTag, out oCount, out oTags, out cCount, out cTags);

um aber die "einfachen" Objekte und Methoden zu verwenden, die in .NET API vorhanden sind, muss ich aus jedem Tag, der mit obiger Funktion geliefert wird, das entsprechende Objekt zuordnen/finden:

Code:

  tmpIDSym = (NXOpen.Annotations.IdSymbol)<<das_objekt_anhand_des_Tags_ermitteln>> ;

  symPref = tmpIDSym.GetSymbolPreferences();
  lettPref = tmpIDSym.GetLetteringPreferences();
  generalText1 = lettPref.GetGeneralText();


Gibt es da eine Möglichkeit, anhand des Tags in der API ein NX-Objekt zu finden?

Gruss und Danke
Markus

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

gfx-toxic.de
Moderator
Konstruktion / Anwenderbetreuung


Sehen Sie sich das Profil von gfx-toxic.de an!   Senden Sie eine Private Message an matthias-p  Schreiben Sie einen Gästebucheintrag für matthias-p

Beiträge: 501
Registriert: 09.06.2006

Teamcenter 11.3 / NX 11
Windows 10

erstellt am: 14. Jun. 2012 11: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 macfrei 10 Unities + Antwort hilfreich

...gibts, ja...

NXOpen .Net API Reference
Get Method (objectTag)

Namespaces ► NXOpen.Utilities ► NXObjectManager ► Get(Tag)C#Visual BasicVisual C++Returns the object corresponding to a tag.
Declaration Syntax
C# Visual Basic Visual C++

public static TaggedObject Get(
Tag objectTag
)
Public Shared Function Get ( _
objectTag As Tag _
) As TaggedObject
public:
static TaggedObject^ Get(
Tag objectTag
)

Parameters
objectTag (Tag)
Tag for which an object is wanted.
Return Value
The object for this tag

------------------
Gruß Matthias
------------------------------------
ICQ: 163190295

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

macfrei
Mitglied


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

Beiträge: 7
Registriert: 13.06.2012

erstellt am: 14. Jun. 2012 17: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

... NX ist manchemal schon schwierig...

Beim Ausführen der Abfrage des Namens, kirge ich dir unten aufgeführte Felermeldung. Nach kurzem Test ist klar, dass keines der Tag-Objekte einen namen zugeordnet hat. (Was in der Realistät aber eher unwahrscheinlich und bei meinem Test-Sheet ganz sicher nicht der Fall ist)

Code:

  theUfSession.View.AskVisibleObjects(vTag, out oCount, out oTags, out cCount, out cTags);

  for (int nn = 0; nn < oCount; nn++)
  {
    try
    {
        theUfSession.Obj.AskName(oTags[nn], out foundObjName);


*** EXCEPTION: Error code  3600041 in line 1946 of o:\ugnx753\ip3\src\syss\no\ind\lmldr.c at Thu Jun 14 14:21:08 2012 Mitteleuropäische Sommerzeit
+++ Object has no name assigned to it

Ich brauche den Namen um die richtigen Objekte zu finden, die zu behandeln sind.

ahwba
Markus

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

little_ug
Mitglied
CAX/PDM Admin / PM


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

Beiträge: 389
Registriert: 20.03.2003

NX 7.5.4.4 mp1
Creo2 M020
TC UA 9.1.1.2

erstellt am: 15. Jun. 2012 07: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 macfrei 10 Unities + Antwort hilfreich


Drawing_objects_test.txt

 
Hi Mac,
hab mal vor ein paar jahren mit etwas aehnlichen gespielt....
vielleicht hilfts ja weiter....

------------------
Gruß

Michael

have you tried turning it off and on again

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



Planungskoordinator:in (m/w/d) Hochbau
Als Teil der weltweit tätigen STRABAG SE und Nummer eins im deutschen Hoch- und Ingenieurbau bauen wir bei ZÜBLIN laufend am Fortschritt. Einzigartigkeit und individuelle Stärken kennzeichnen dabei unsere Projekte und jede:n Einzelne:n von uns.
Ob im Hoch- und Ingenieurbau, Spezialtiefbau, Tunnel-, Stahl- und Holzbau oder in der Bauwerkserhaltung ? wir denken Bauen weiter, um der innovativste und nachhaltigste Bautechnologiekonzern Europas zu werden....
Anzeige ansehenBauwesen
macfrei
Mitglied


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

Beiträge: 7
Registriert: 13.06.2012

erstellt am: 15. Jun. 2012 17:01    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 Michael, Matthias

Danke für die Unterstützung. Es klappt!
Die Ursache, dass der Name in der Routine:  theUfSession.Obj.AskName(oTags[nn], out foundObjName)
nicht gefunden wurde lag daran, dass diese UF Routine wahrscheinlich keine REF aus einem Array als Input entgegen nehmen kann.

Wenn ich die Routine so aufrufe:
theUfSession.Obj.AskName(tmpTag, out foundObjName)

(tmpTag wurde zuvor der Inhalt aus der Position "nn" das Arrays "oTags" zugeornet), dann läuft das wunderbar.

Nochmals Danke und schönes Wochenende
Markus

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