Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  CATPart und CATProduct zuverlässig unterscheiden

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:  CATPart und CATProduct zuverlässig unterscheiden (611 mal gelesen)
nreim1
Mitglied
Konstrukteur


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

Beiträge: 36
Registriert: 18.01.2008

erstellt am: 09. Jan. 2009 09: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

Erstmal hallo in die runde.

Ich suche nach einer möglichkeit zuverlässig zwischen CATParts und CATProducten zu unterscheiden...

Folgende vorgehensweise:

Ich starte mein Macro welches mich dann auffordert ein produkt in der Assembly zu wählen, in dieses produkt soll dann ein part eingefügt werden. Das ist soweit auch alles kein problem !

Das problem ist nun folgendes, wenn ich in der Filter funktion der Selektion den Filter Product setze gibt Catia mir ja trozdem die möglichkeit ein product bzw. ein part auszuwählen .... Jetzt müsste ich also unterscheiden ob es tatsächlich ein CATProduct oder CATPart ist ...

Momentan sehe ich den Wald vor Bäumen nicht und wäre euch super dankbar für einen denkanstoß zur lösung des problems ...

Vielen Dank

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

denyo_1
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 09. Jan. 2009 10:19    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 nreim1 10 Unities + Antwort hilfreich

Hallo nreim1,

dazu ist ein kleiner Umweg erforderlich, den innerhalb einer Produktstruktur sind alle Unterkomponenten (egal ob Produkt, Komponente oder Part) für CATIA Produkte. Deshalb mache dir eine MsgBox und fordere den Anwender auf ein PRODUCT zu selektieren.
Diese Selektion fragst du nun ab ob es auch wirklich ein Produkt bzw. eine Komponente ist. Falls JA gehts mit dem Quelltext weiter, falls NEIN spring zurück und lass ihn nochmal selektieren.

So stellst du sicher das nur eine Teil selektierte wurde unter dem eine Part eingefügt werden kann.

Hier mal ein kleines Beispiel:

Code:

    Dim otype(0)
    Dim Auswahl
    Dim Check As Boolean

    Set oDoc = CATIA.ActiveDocument
    Set oSel = oDoc.Selection
    oSel.Clear
    otype(0) = "Product"
    oSel.Clear
    Box = MsgBox("Bitte wählen Sie ein Product aus", vbInformation + vbOKCancel, "Product auswählen")
    If Box = vbCancel Then
        Box = MsgBox("Sie haben die Selektion abgebrochen" + Chr(10) + _
        "Das Makro wird nun beendet!", vbCritical, "Abbruch durch Nutzer")
        Exit Sub
    End If
    Do
    Auswahl = oSel.SelectElement2(otype, "Bitte wählen Sie ein Product aus", False)
    If Auswahl = "Normal" Then
        Set oProd = oSel.Item(1).Value
        If TypeName(oProd.ReferenceProduct.Parent) <> "ProductDocument" Then
            Box = MsgBox("Bitte wählen Sie nur ein Product aus!", vbInformation, "Falsche Auswahl")
        Else
            Check = True
        End If
    Else
        Box = MsgBox("Sie haben die Selektion abgebrochen" + Chr(10) + _
        "Das Makro wird nun beendet!", vbCritical, "Abbruch durch Nutzer")
        Exit Sub
    End If
    Loop Until Check = True
    oSel.Clear


------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

nreim1
Mitglied
Konstrukteur


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

Beiträge: 36
Registriert: 18.01.2008

erstellt am: 09. Jan. 2009 10: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

Einfach Klasse !!

Genau sowas habe ich gesucht, das mit dem

TypeName(oProd.ReferenceProduct.Parent) <> "ProductDocument"

ist der entscheidende knackpunkt ... hätte nicht gedacht das das so Funktioniert

Ich danke dir sehr für die mühe die du dir gemacht hast ... VIELEN DANK

         

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