Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Constraints von Product lesen und schreiben mit C#

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
Autor Thema:  Constraints von Product lesen und schreiben mit C# (1008 mal gelesen)
rs77
Mitglied
Softwareentwickler

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

Beiträge: 4
Registriert: 27.08.2014

Visual Studio 2013 Express, CATIA V5

erstellt am: 27. Aug. 2014 16:39    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 möchte in einem Modell die Constraints lesen und schreiben die einem jeweiligen Product zugeordnet sind. Bei mir gibt es verschachtelte Produkte bis zu 10 Ebenen. Auf der ersten Ebene funktioniert alles. Wenn ich aber auf ein Product in einer weiteren Ebene zugreife bekomme einen Bad Index Fehler.

CAD Modell ist in etwas so:

Product1
  Product2:
  Constrainf4 --> Fehler
  Constraint5 --> Fehler
Constraint1
Constraint2

Ich Versuche das ganze mit C# 4.0. Mein Code wäre bspw. folgender:

Code:

public void GetAllProductNames()
        {
            ProductDocument root = (ProductDocument)catiaapp.ActiveDocument;
            Product rootProduct = root.Product;

            this.GetConstrainsFromProduct(rootProduct); // Funktionert
            var childProducts = rootProduct.Products;

            for (int i = 1; i <= childProducts.Count; i++)
            {
                object index = i;
                Product childProduct = childProducts.Item(ref index);
                Debug.WriteLine("\tDEBUG: " + childProduct.get_Name());
                this.GetConstrainsFromProduct(childProduct); // Funktioniert nicht mehr: Ungültiger Index HRRESULT DISP_E_BADINDEX
            }
        }

        void GetConstrainsFromProduct(Product product)
        {
            var constCol = (Constraints)product.Connections("CATIAConstraints");

            for (int j = 1; j <= constCol.Count; j++)
            {
                object index = j;
                var const1 = constCol.Item(index);
                Debug.WriteLine("DEBUG: Constraintname: " + const1.get_Name());
                var dim = const1.Dimension;
                Debug.WriteLine("DEBUG: Constraintwert: " + dim.Value);
            }
        }


Hat jemand eine Idee?

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 27. Aug. 2014 18: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 rs77 10 Unities + Antwort hilfreich

Servus

Willkommen im Form. Bitte Systeminfo ausfüllen.
Was mir Code auffällt:
- du hast keine Unterscheidng von CATParts und CATProduct bei "childProduct" drin (zB if childProduct.Products.count >  0 then -> CATProduct oder Componente) (siehe auch hier)
- Was machst du wenn ein Product keine Constrains hat?
Vorsicht machen Constrains (zB FIxTogether) sind nicht in der Constrains-Colletion enthalten.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

rs77
Mitglied
Softwareentwickler

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

Beiträge: 4
Registriert: 27.08.2014

Visual Studio 2013 Express, CATIA V5

erstellt am: 27. Aug. 2014 19:22    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,

die Systeminfos trage ich morgen nach. Bin leider nicht mehr in der Arbeit.

Die Unterscheidung müsste ich noch machen. Das muss ich mir aber erst noch anschauen wie das geht.

Oder genügt es in meinem Beispiel in Product1 über die Methode childProduct aufrufen?

Mich interessieren nur die Products, die auch Constraints haben. Denn ich möchte diese auslesen und neu schreiben und damit im 3D Modell verschieben.

Was meinst du mit
"Vorsicht machen Constrains (zB FIxTogether) sind nicht in der Constrains-Colletion enthalten."?

Woran könnte das liegen das ich bei darunterliegenden Products die Contraints nicht auslesen kann?

Gruß
Rene

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

rs77
Mitglied
Softwareentwickler

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

Beiträge: 4
Registriert: 27.08.2014

Visual Studio 2013 Express, CATIA V5

erstellt am: 28. Aug. 2014 12: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

Hallo,

für die die auch mal das Problem haben. Ich hatte den falschen Befehl verwendet.

Anstatt: var constCol = (Constraints)product.Connections("CATIAConstraints");

Muss folgendes verwendet werden.

var m_constraints = product.ReferenceProduct.Connections("CATIAConstraints");

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