Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Note auf welchem DrawingSheet?

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:  Note auf welchem DrawingSheet? (1752 mal gelesen)
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: 11. Aug. 2010 13:23    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,

so langsam komm ich etwas hinter das ganze.
Ich versuch gerade auszulesen auf welchem Zeichnungsblatt sich eine Note (Hinweis) befindet. Ich habe schon versucht über GetAssociativity zu gehen aber er zeigt mir leider (komischerweise) keine Views an.
Über Info Objekt bekomm ich ja "Befindet sich auf Zeichnung DWG_1".
Wie bekomm ich das am einfachsten raus. Über Origin bekomm ich den Punkt, aber nicht das Sheet.

Vielen Dank im voraus!

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

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: 11. Aug. 2010 17:34    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 gfx-toxic.de 10 Unities + Antwort hilfreich

Hallo Matthias,

bin nicht ganz sicher, aber in der UFSession glaube ich, gibt's da was passendes. Schau' mal in UF_VIEW, UF_DRAW, UF_DRF oder UF_OBJ, da gibt's jede Menge Abfrageroutinen (Ask*), evtl. ist auch was für die Note dabei.

Gruß, Michael

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: 11. Aug. 2010 22: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

Danke!!
UF_DRAW_ask_view_of_note (view source)

Belohnungspunkte sind unterwegs =)

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

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: 12. Aug. 2010 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

hat doch nicht so ganz funktioniert...hier meine lösung ist zwar etwas wacklig aber tut:

Code:
    {
        NXOpen.NXObject[] objarray = new NXObject[1];
        objarray[0] = obj;
        string informationpath = System.Environment.GetEnvironmentVariable("UGII_TMP_DIR") + @"\nixesearch.tmp";
        theSession.ListingWindow.SelectDevice(ListingWindow.DeviceType.File, informationpath);
        theSession.Information.DisplayObjectsDetails(objarray);
        theSession.ListingWindow.Close();
        theSession.ListingWindow.SelectDevice(ListingWindow.DeviceType.Window, "asdf");
        System.IO.StreamReader reader = new System.IO.StreamReader(informationpath);

        string drawing = null;

        while (reader.EndOfStream == false)
        {
            string zeile = reader.ReadLine();
            if (zeile.Contains("Befindet sich auf Zeichnung"))
            {
                drawing = zeile.Substring(28);
            }
            if (zeile.Contains("Resides on drawing"))
            {
                drawing = zeile.Substring(21);
            }
        }
        reader.Close();
        System.IO.File.Delete(informationpath);
        return drawing;
    }


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

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: 12. Aug. 2010 10:25    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 gfx-toxic.de 10 Unities + Antwort hilfreich

Hallo Matthias,

das InfoWindow auszuwerten, ist auch eine Möglichkeit. Müsste aber irgendwie auch eleganter gehen 

Gruß, Michael

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: 12. Aug. 2010 17:16    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

Die Frage ist nur das wie ;-) hab nirgends was gefunden...

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

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: 12. Aug. 2010 23: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 Nur für gfx-toxic.de 10 Unities + Antwort hilfreich

Hallo Matthias,

ich würde das mal so probieren:
Alle Drawings durchgehen,
auf jeder Drawing die DrwView und alle Member Views durchgehen
auf allen Views die Objekte durchgehen mit
z.B.
ufs.View.CycleObjects(dwgView, UFView.CycleObjectsEnum.VisibleObjects, obj)...

dann das obj untersuchen ob es eine Note ist und dann brauchst Du ein Kriterium um zu entscheiden, ob der Text Dein gesuchter Text ist.
Schau mal in uganswer und such mal nach "find_all_notes_on_current_drawing_sheet" da gibt's ein Beispiel.

Gruß Hardy

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



Technischer Zeichner / Sachbearbeiter Objekt (m/w/d)
EUROSUN Sonnenschutz ist ein renommierter Hersteller von technischen Sonnenschutzanlagen und genießt im deutschsprachigen Raum einen hervorragenden Ruf als zuverlässiger Qualitätsanbieter. Unsere Kunden setzen sich aus Industrie- und Fachhandelsbetrieben im Baunebengewerbe zusammen.

Seit 2017 gehört EUROSUN Sonnenschutz zur österreichischen Josko-Scheuringer Gruppe, zu der auch die Josko Fenster und Türen GmbH gehört....
Anzeige ansehenTechnischer Zeichner, Bauzeichner
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: 04. Jun. 2012 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

Grrrrr...ich krieg glaub ich die Krise!

Ich wollte das von mir oben schon gepostete über das Info Fenster doch mal etwas schöner gestalten.

Jetzt bekomm ich nur bei Zeichnungen mit mehreren Blätter folgende Exception.
NXException: View ist not displayed.
NXOpen.DisplayableObject[] displayable_objects = workpart.DrawingSheets.ToArray()[i].View.AskVisibleObjects();

Was die Exeception meint ist mir schon klar. Kann ich nicht einfach sagen ich will einfach alle Member?
Gibt es vielleicht doch noch eine andere Lösung?

Code:

using System;
using NXOpen;
using NXOpen.UF;
using NXOpenUI;

namespace DrawingSheetOfNote
{
class Program
{
static NXOpen.Drawings.DraftingView _view;
static NXOpen.Drawings.DrawingSheet _sheet;

public static void Main(string[] args)
{
Session session = Session.GetSession();
UFSession ufsession = UFSession.GetUFSession();
UI uisession = UI.GetUI();

            session.ListingWindow.Open();


Part workpart = session.Parts.Work;
if(workpart == null) return;

            NXOpen.DisplayableObject dis_object;
            dis_object = (NXOpen.DisplayableObject)GetSelection();
if(dis_object == null) return;


            bool view_found = false;
            bool sheet_found = false;

            //Suche Direkt auf der Drawing View
            for (int i = 0; i < workpart.DrawingSheets.ToArray().Length; i++)
            {
                NXOpen.DisplayableObject[] displayable_objects = workpart.DrawingSheets.ToArray()[i].View.AskVisibleObjects();                for (int i2 = 0; i2 < displayable_objects.Length; i2++)
                {
                    if (displayable_objects[i2] == dis_object)
                    {
                        sheet_found = true;
                        view_found = true;
                        _sheet = workpart.DrawingSheets.ToArray()[i];
                        session.ListingWindow.WriteLine("Drawing found: " + _sheet.ToString() + "  " + _sheet.Name);
                        break;
                    }
                    if (view_found) break;
                }

            }

            if (sheet_found) return;


            //Suche wenn das ganze in einer Zeichnungs view ist
            for (int i = 0; i < workpart.DraftingViews.ToArray().Length; i++)
            {
                NXOpen.DisplayableObject[] displayable_objects = workpart.DraftingViews.ToArray()[i].AskVisibleObjects();
                for (int i2 = 0; i2 < displayable_objects.Length; i2++)
                {
                    if (displayable_objects[i2] == dis_object)
                    {
                        view_found = true;
                        _view = workpart.DraftingViews.ToArray()[i];
                        session.ListingWindow.WriteLine("View found: " + _view.ToString() + "  " + _view.Name);
                        break;
                    }
                    if (view_found) break;
                }
            }
            //Wenn das ganze in einer Zeichnungs view ist holen wir jetzt das Zeichnungsblatt dazu.
            for (int i = 0; i < workpart.DrawingSheets.ToArray().Length; i++)
            {
                NXOpen.Drawings.DraftingView[] drafting_views = workpart.DrawingSheets.ToArray()[i].GetDraftingViews();
                for (int i2 = 0; i2 < drafting_views.Length; i2++)
                {
                    if (drafting_views[i2] == _view)
                    {
                        sheet_found = true;
                        _sheet = workpart.DrawingSheets.ToArray()[i];
                        session.ListingWindow.WriteLine("Drawing found: " + _sheet.ToString() + "  " + _sheet.Name);
                        break;
                    }
                    if (sheet_found) break;
                }
            }

}

public static NXObject GetSelection()
        {
            Session session = Session.GetSession();
            UFSession uf = UFSession.GetUFSession();
            UI ui = UI.GetUI();

            NXObject obj = null;
            Point3d cursor;
            //Braucht man das man auch im Drafting View auswählen kann
            uf.Ui.SetCursorView(0);

            Selection.Response resp = ui.SelectionManager.SelectObject(
                "Bitte auswählen",
                "NiXeSelect",
                Selection.SelectionScope.AnyInAssembly,
                false,
                false,
                out obj,
                out cursor);

            return obj;
        }
}
}


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

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