Autor
|
Thema: Defekte Constraints markieren (1354 mal gelesen)
|
CocoB Mitglied Dipl.-Ing. (FH) Fahrzeugtechnik, Konstrukteur
Beiträge: 7 Registriert: 11.01.2014 Windows 7 64Bit<P>CATIA V5 R18
|
erstellt am: 12. Jan. 2014 19:22 <-- editieren / zitieren --> Unities abgeben:
|
ferdo Mitglied engineer
Beiträge: 34 Registriert: 15.04.2009 Windows 7, 64 CATIA v5r25 , 3DEXPERIENCE on cloud
|
erstellt am: 12. Jan. 2014 21:12 <-- editieren / zitieren --> Unities abgeben: Nur für CocoB
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
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 / zitieren --> Unities abgeben: Nur für CocoB
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
Beiträge: 7 Registriert: 11.01.2014 Windows 7 64Bit<P>CATIA V5 R18
|
erstellt am: 13. Jan. 2014 17:01 <-- editieren / zitieren --> Unities abgeben:
|
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 29. Jul. 2014 11:24 <-- editieren / zitieren --> Unities abgeben: Nur für CocoB
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
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 29. Jul. 2014 12:12 <-- editieren / zitieren --> Unities abgeben: Nur für CocoB
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
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 / zitieren --> Unities abgeben: Nur für CocoB
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
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 / zitieren --> Unities abgeben: Nur für CocoB
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
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 29. Jul. 2014 13:03 <-- editieren / zitieren --> Unities abgeben: Nur für CocoB
|