Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Defekte Constraints markieren

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:  Defekte Constraints markieren (1354 mal gelesen)
CocoB
Mitglied
Dipl.-Ing. (FH) Fahrzeugtechnik, Konstrukteur

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

Beiträge: 7
Registriert: 11.01.2014

Windows 7 64Bit<P>CATIA V5 R18

erstellt am: 12. Jan. 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 liebe Community,

seht Ihr eine Möglichkeit alle defekten Constraints in einem Product markieren zu lassen, wenn möglich per Script

Viele Grüße,

CocoB

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

ferdo
Mitglied
engineer


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

Beiträge: 34
Registriert: 15.04.2009

Windows 7, 64
CATIA v5r25 , 3DEXPERIENCE on cloud

erstellt am: 12. Jan. 2014 21:12    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 CocoB 10 Unities + Antwort hilfreich

Hallo,

Mit CATScript...

Option Explicit

Sub CATMain()

    Dim prdRoot As Product
    Set prdRoot = CATIA.ActiveDocument.Product
   
    Dim oConstraints As Constraints
    Set oConstraints = prdRoot.Connections("CATIAConstraints")
   
    Dim iConstraint
    Dim iNbConstraints
   
    iConstraint = 1
    iNbConstraints = oConstraints.Count
    Do While (iConstraint <= iNbConstraints)
       
        If (oConstraints.Item(iConstraint).Status = catCstStatusOK) Then
                         
            iConstraint = iConstraint + 1
                  Else
              oConstraints.Remove iConstraint
           
            iNbConstraints = oConstraints.Count

        End If
    Loop

End Sub

------------------
Best regards
Fernando

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 13. Jan. 2014 09:58    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 CocoB 10 Unities + Antwort hilfreich

Hallo,

hier noch ein Beispiel in VBA

Code:

Sub CATMain()

    Dim oMainPRD As ProductDocument
   
    Set oMainPRD = CATIA.ActiveDocument
    Call Mark_DefConst(oMainPRD)
   
End Sub

Sub Mark_DefConst(ByVal oPRDDoc As ProductDocument)

    Dim oPRD As Product
    Dim oConsts As Constraints
    Dim oConst As Constraint
    Dim oSel As Selection
    Dim RetCode As Integer
       
    Set oSel = oPRDDoc.Selection
    oSel.Clear
    Set oPRD = oPRDDoc.Product
    Set oConsts = oPRD.Connections("CATIAConstraints")
   
    For Each oConst In oConsts
   
        If oConst.Status <> catCstStatusOK Then
            oSel.Add oConst
        End If
           
    Next
   
    If oSel.Count > 0 Then
        RetCode = MsgBox("Defekte Bedingungen gefunden. Sollen diese gelöscht werden?", vbYesNo)
        If RetCode = vbYes Then
            oSel.Delete
        End If
    End If
   
End Sub


------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

CocoB
Mitglied
Dipl.-Ing. (FH) Fahrzeugtechnik, Konstrukteur

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

Beiträge: 7
Registriert: 11.01.2014

Windows 7 64Bit<P>CATIA V5 R18

erstellt am: 13. Jan. 2014 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

Vielen Dank,

aus beiden Codes habe ich mir eins geschmiedet.

Das ist genau das was ich wollte.

Viele Grüße

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 29. Jul. 2014 11:24    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 CocoB 10 Unities + Antwort hilfreich

Hallo

wie würde denn das Makro aussehen, so das es über eine komplette Produktstrucktur laufen würde?
Im moment werden ja nur die Constraints in dem obersten Produkt gelöscht.

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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: 29. Jul. 2014 12:12    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 CocoB 10 Unities + Antwort hilfreich

Servus
Entweder Makro rekursive aufbauen, oder über die Suche alle Contrains selektieren. Dann mit einer Schleife von hinten nach vorne den Status der Constrains kontrollieren, und ggf aus der Selektion entfernen.

Gruß
Bernd.

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

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

imation1999
Mitglied
dipl.-ing. Maschinenbau


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

Beiträge: 276
Registriert: 02.08.2011

Dell Precision T3500
Intel® Xeon® Quad Core
NVIDIA Quadro® 5000
Win7 x64 Ultimate
CATIA V5 R20 SP2

erstellt am: 29. Jul. 2014 12:40    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 CocoB 10 Unities + Antwort hilfreich

Hallo Uwe,

versuch mal folgede code:

Code:

Language="VBSCRIPT"

Sub CATMain()

Dim productDocument1 As Document
Set productDocument1 = CATIA.ActiveDocument

Dim selection1 As Selection
Set selection1 = productDocument1.Selection

selection1.clear

selection1.Search "CATProductSearch.MfConstraint,all"

for i = selection1.count to 1 step -1

If selection1.item(i).value.Status = catCstStatusOK Then
selection1.remove (i)
end if

next

End Sub


[Diese Nachricht wurde von imation1999 am 29. Jul. 2014 editiert.]

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 29. Jul. 2014 12: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 CocoB 10 Unities + Antwort hilfreich

Hallo Uwe,

hier mal der rekursive Aufbau...

Code:

Sub CATMain()

    Dim oMainPRD As ProductDocument
    Dim oPRD As Product
    Dim oSel As Selection
   
    Set oMainPRD = CATIA.ActiveDocument
    Set oPRD = oMainPRD.Product
    Set oSel = oMainPRD.Selection
    oSel.Clear
    Call Mark_DefConst(oPRD, oSel)
   
    If oSel.Count > 0 Then
        RetCode = MsgBox(oSel.Count & " defekte Bedingungen gefunden. Sollen diese gelöscht werden?", vbYesNo)
        If RetCode = vbYes Then
            oSel.Delete
        End If
    End If
   
End Sub

Sub Mark_DefConst(ByVal oPRD As Product, ByRef oSel As Selection)

    Dim oConsts As Constraints
    Dim oConst As Constraint
    Dim oSubPRD As Product
    Dim strName As String
       
    Set oConsts = oPRD.Connections("CATIAConstraints")
   
    If oConsts.Count > 0 Then
        For Each oConst In oConsts
            If oConst.Status <> catCstStatusOK Then
                oSel.Add oConst
            End If
        Next
    End If
   
    For Each oSubPRD In oPRD.Products
        If oSubPRD.Products.Count <> 0 Then
            Call Mark_DefConst(oSubPRD.ReferenceProduct.Parent.Product, oSel)
        End If
    Next
   
End Sub


Fixtogether verursachen allerdings Probleme beim Abruf von "oPRD.Connections("CATIAConstraints")". Das liefert dann nichts zurück, obwohl constraints vorhanden sind.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 29. Jul. 2014 13:03    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 CocoB 10 Unities + Antwort hilfreich

Hallo Rick,

perfekt. Unities sind unterwegs.

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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