Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Updatefehler lokalisieren - Welches Feature schlägt fehl?

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:  Updatefehler lokalisieren - Welches Feature schlägt fehl? (2770 mal gelesen)
Merlin2001
Mitglied
Sr. Software Engineer


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

Beiträge: 24
Registriert: 13.05.2011

erstellt am: 16. Nov. 2012 15:50    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


2012-11-16_Bsp_Updatefehler.jpg

 
Hallo Leute,

zunächst einmal ein generelles Danke an euch alle, die ihr hier (und in allen anderen CAD.DE-Unterforen) so fleißig Fragen beantwortet und mir schon mehr als einmal bei scheinbar unlösbaren Problemen weitergeholfen habt. Danke!

Nun stehe ich aber vor einem Problem, zu dem ich leider in den schon vorhandenen Beiträgen ("Updatefehler") keine Lösung finden konnte.

Was möchte ich machen?
Ich habe ein komplexes Modell mit sehr vielen (~60) Nutzerparametern, die natürlich gerne mal zu Updatefehlern führen. Wenn man die Parameter händisch ändert, ist das kein Problem, denn dann sieht man ja sofort, welches Feature den Fehler verursacht. Diese Information würde ich nun aber gerne auslesen und speichern, da das Modell meistens nicht händisch geändert wird, sondern die Varianten in einem Batchprozess erzeugt werden. Das Modell wird dabei geladen, die Parameter aktualisiert, ein Update durchgeführt und anschließend wieder gespeichert. Dabei treten natürlich häufig Fehler auf, von denen ich gerne wissen würde, wo sie aufgetreten sind, ohne die entsprechende Variante von Hand öffnen zu müssen. Das würde mir auch ermöglichen, eine Statistik über die anfälligsten Features aufzustellen und die Konstruktion im Grundmodell robuster zu gestalten.

Was habe ich schon probiert?  
Bisher habe ich mehrere Versuche gestartet, dem Err-Objekt irgendwelche Informationen über den Ort des Fehlers zu entlocken, leider aber erfolglos. Auch das Durchstöbern der Eigenschaften einiger Feature-Objekte per VBA-Watch brachte mir keine neuen Erkenntnisse. Keins der Objekte scheint eine "successful update"-Eigenschaft o. Ä. zu besitzen.

Gibt es eine Möglichkeit, nach einem fehlerhaften Update, den Ort des Fehlers mit einem Makro auszulesen? Oder kennt ihr vielleicht eine Möglichkeit, festzustellen, ob ein bestimmtes Feature erfolgreich aufgebaut werden konnte? Dann könnte ich als mögliche (langsame) Lösung alle HybridBodys durchforsten und nach eben solchen fehlgeschlagenen Features suchen.

Vielen Dank schon jetzt für eure Beiträge.
Wenn ich eine Lösung finde, werde ich die hier selbstverständlich zur Verfügung stellen.  

Viele Grüße
Marcus

P.S.: Das angehängte Bild zur Illustration: Wenn ich programmatisch eine Referenz zu (in diesem Fall) Polyline.1 und den zugehörigen Hinweistext auslesen könnte, wäre ich überglücklich 
(Alles weitere (Name des/der übergeordneten Sets finden, das ganze irgendwo speichern) sollte dann kein Problem mehr sein  )

[Diese Nachricht wurde von Merlin2001 am 16. Nov. 2012 editiert.]

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: 17. Nov. 2012 11:45    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 Merlin2001 10 Unities + Antwort hilfreich

Servus
Du kannst über die Suche feststellen welches Feature einen Fehler hat. Fall der Typ des Elements bekannt ist geht es zB so:
Code:
selection2.Search "CATGmoSearch.Line.Error=TRUE"
Fall du zB alle GSM-Features betrachten willst liefert der Makrorekorder folgenden Wust:
Code:
selection2.Search "((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((CATGmoSearch.GSMPointTangent.Error=TRUE + CATGmoSearch.GSMPlaneTangent.Error=TRUE) + CATGmoSearch.Circle.Error=TRUE) + CATGmoSearch.Line.Error=TRUE) + CATGmoSearch.GSMPointCoord.Error=TRUE) + CATGmoSearch.GSM" & "PointOnSurface.Error=TRUE) + CATGmoSearch.GSMPlaneEquation.Error=TRUE) + CATGmoSearch.GSMPlane2Lines.Error=TRUE) + CATGmoSearch.GSMPlane1Curve.Error=TRUE) + CATGmoSearch.GSMPlaneAngle.Error=TRUE) + CATGmoSearch.GSMPointOnPlane.Error=TRUE) + CATGmoSearch.GSMLineNormal.Error=TRUE) + CATGmoSearch.GSMCircleCenterTangent.Error=TRUE) + CATGmoSearch.GSMPoint.Error=TRUE) + CATGmoSearch.GSMLineTangency.Error=TRUE) + CATGmoSearch.GSMCircle2PointsRad.Error=TRUE) + CATGmoSearch.GSMPlaneOffsetPt.
Error=TRUE) + CATGmoSear" & "ch.GSMCircleCtrRad.Error=TRUE) + CATGmoSearch.GSMCircleCtrPt.Error=TRUE) + CATGmoSearch.GSMCircleTritangent.Error=TRUE) + CATGmoSearch.Plane.Error=TRUE) + CATGmoSearch.GSMLineAngle.Error=TRUE) + CATGmoSearch.GSMPlane1Line1Pt.Error=TRUE) + CATGmoSearch.GSMCircle3Points.Error=TRUE) + CATGmoSearch.GSMCircleBitangentPt.Error=TRUE) + CATGmoSearch.GSMCircleCenterAxis.Error=TRUE) + CATGmoSearch.Direction.Error=TRUE) + CATGmoSearch.GSMDirection.Error=TRUE) + CATGmoSearch.GSMPlaneOffset.Error=TRUE) + CATGmoSearch.GS" & "MCircleBitangentRad.Error=TRUE) + CATGmoSearch.GSMLine.Error=TRUE) + CATGmoSearch.GSMPointOnCurve.Error=TRUE) + CATGmoSearch.GSMPointCenter.Error=TRUE) + CATGmoSearch.GSMLinePtPt.Error=TRUE) + CATGmoSearch.GSMLinePtDir.Error=TRUE) + CATGmoSearch.GSMFill.Error=TRUE) + CATGmoSearch.GSMFill.Error=TRUE) + CATGmoSearch.Wireframe.Error=TRUE) + CATGmoSearch.VolumeGeo.Error=TRUE) + CATGmoSearch.GSMCircle.Error=TRUE) + CATGmoSearch.GSMPointBetween.Error=TRUE) + CATGmoSearch.GSMLine
BiTangent.Error=TRUE) + CATGmoSearc" & "h.GSMPlane.Error=TRUE) + CATGmoSearch.GSMPlane3Points.Error=TRUE) + CATGmoSearch.GSMPlaneNormal.Error=TRUE) + CATGmoSearch.Surface.Error=TRUE) + CATGmoSearch.Curve.Error=TRUE) + CATGmoSearch.Point.Error=TRUE) + CATGmoSearch.GSMLineBisecting.Error=TRUE) + CATGmoSearch.GSMTransformation.Error=TRUE) + CATGmoSearch.GSMSymmetry.Error=TRUE) + CATGmoSearch.GSMAffinity.Error=TRUE) + CATGmoSearch.GSMRotate.Error=TRUE) + CATGmoSearch.GSMTranslate.Error=TRUE) + CATGmoSearch.GSMScaling.Error=TRUE) + CATGmoSearch.GSMLof" & "tSolid.Error=TRUE) + CATGmoSearch.GSMGridFace.Error=TRUE) + CATGmoSearch.GSMFillet.Error=TRUE) + CATGmoSearch.GSMProject.Error=TRUE) + CATGmoSearch.GSMCorner.Error=TRUE) + CATGmoSearch.GSMBoundary.Error=TRUE) + CATGmoSearch.GSMExtract.Error=TRUE) + CATGmoSearch.GSOSeatDiabolo.Error=TRUE) + CATGmoSearch.GSMAxisToAxis.Error=TRUE) + CATGmoSearch.GSMTransferedMonoDim.Error=TRUE) + CATGmoSearch.GSMSpiral.Error=TRUE) + CATGmoSearch.GSOShapeMorphing.Error=TRUE) + CATGm
oSearch.GSMDevelop.Error=TRUE) + CATGmoSearch." & "GSMUnfold.Error=TRUE) + CATGmoSearch.GSMSweepUnspec.Error=TRUE) + CATGmoSearch.GSMOffset.Error=TRUE) + CATGmoSearch.GSMExtrude.Error=TRUE) + CATGmoSearch.GSOJunction.Error=TRUE) + CATGmoSearch.GSMCombine.Error=TRUE) + CATGmoSearch.GSOBump.Error=TRUE) + CATGmoSearch.GSM3DCurveOffset.Error=TRUE) + CATGmoSearch.BIWRidge.Error=TRUE) + CATGmoSearch.GSMSweep.Error=TRUE) + CATGmoSearch.GSMRevol.Error=TRUE) + CATGmoSearch.GSMTrim.Error=TRUE) + CATGmoSearch.Trim.Error=TRUE) + CATGmoSearch.GSMTransferedZeroDim.Error=" & "TRUE) + CATGmoSearch.GSMHealing.Error=TRUE) + CATGmoSearch.GSMMask.Error=TRUE) + CATGmoSearch.GSMMultiExtract.Error=TRUE) + CATGmoSearch.GSMCurve.Error=TRUE) + CATGmoSearch.GSMSweepCircle.Error=TRUE) + CATGmoSearch.GSMSweepConic.Error=TRUE) + CATGmoSearch.GSMAssemble.Error=TRUE) + CATGmoSearch.GSMExtractContour.Error=TRUE) + CATGmoSearch.GSMFilletBiTangent.Error=TRUE) + CATGmoSearch.GSMSweepSketch.Error=TRUE) + CATGmoSearch.GSMCurveSmooth.Error=TRUE)
+ CATGmoSearch.GSM3DWSupport.Error=TRUE) + CATGmoSearch.G" & "SMSplit.Error=TRUE) + CATGmoSearch.GSOWrapSurface.Error=TRUE) + CATGmoSearch.BIWHole.Error=TRUE) + CATGmoSearch.BIWRidgeReference.Error=TRUE) + CATGmoSearch.GSMGridSet.Error=TRUE) + CATGmoSearch.GSMCurvePar.Error=TRUE) + CATGmoSearch.GSMReflectLine.Error=TRUE) + CATGmoSearch.GSMSpine.Error=TRUE) + CATGmoSearch.GSMConic.Error=TRUE) + CATGmoSearch.GSMIntersect.Error=TRUE) + CATGmoSearch.Intersect.Error=TRUE) + CATGmoSearch.GSMLawDistProj.Error=TRUE) + CATGmoSearch.GSMConnect.Error=TRUE) + CATGmoSearch.GSMExtr" & "apol.Error=TRUE) + CATGmoSearch.GSMInverse.Error=TRUE) + CATGmoSearch.GSMExtremumPolar.Error=TRUE) + CATGmoSearch.GSMBlend.Error=TRUE) + CATGmoSearch.BIWHoleCurve.Error=TRUE) + CATGmoSearch.GSMGridSubset.Error=TRUE) + CATGmoSearch.GSMSweepSegment.Error=TRUE) + CATGmoSearch.GSMLoft.Error=TRUE) + CATGmoSearch.GSMHelix.Error=TRUE) + CATGmoSearch.GSOWrapCurve.Error=TRUE) + CATGmoSearch.GSMSphere.Error=TRUE) + CATGmoSearch.GSMLineCorner.Error=TR
UE) + CATGmoSearch.GSMLoftShape.Error=TRUE) + CATGmoSearch.GSMWSuppo" & "rt.Error=TRUE) + CATGmoSearch.GSMCylinder.Error=TRUE) + CATGmoSearch.GSMNear.Error=TRUE) + CATGmoSearch.GSMExtremum.Error=TRUE) + CATGmoSearch.BIWBead.Error=TRUE) + CATGmoSearch.GeometricFeature.Error=TRUE) + CATGmoSearch.MechanicalFeature.Error=TRUE) + CATGmoSearch.SkinFeature.Error=TRUE) + CATGmoSearch.MMOrderedGeometricalSet.Error=TRUE) + CATGmoSearch.AxisSystem.Error=TRUE) + CATGmoSearch.BodyFeature.Error=TRUE) + CATGmoSearch.UserFeature.Error=TRUE) + CATGmoSearch.PartFeature.Error=TRUE) + CATGmoSearch." & "OpenBodyFeature.Error=TRUE) + CATGmoSearch.Pattern.Error=TRUE) + CATGmoSearch.Add.Error=TRUE) + CATGmoSearch.ConstantEdgeFillet.Error=TRUE) + CATGmoSearch.Remove.Error=TRUE) + CATGmoSearch.Fillet.Error=TRUE) + CATGmoSearch.FaceFillet.Error=TRUE) + CATGmoSearch.TritangentFillet.Error=TRUE) + CATGmoSearch.Draft.Error=TRUE) + CATGmoSearch.ThickSurface.Error=TRUE) + CATGmoSearch.CircPattern.Error=TRUE) + CATGmoSearch.UserPattern.Erro
r=TRUE) + CATGmoSearch.Shell.Error=TRUE) + CATGmoSearch.VariableEdgeFillet.Erro" & "r=TRUE) + CATGmoSearch.CloseSurface.Error=TRUE) + CATGmoSearch.AutoFillet.Error=TRUE) + CATGmoSearch.Thickness.Error=TRUE) + CATGmoSearch.SewSurface.Error=TRUE) + CATGmoSearch.RectPattern.Error=TRUE) + CATGmoSearch.GSMPointTangent.Error=TRUE) + CATGmoSearch.GSMPlaneTangent.Error=TRUE) + CATGmoSearch.Circle.Error=TRUE) + CATGmoSearch.Line.Error=TRUE) + CATGmoSearch.GSMPointCoord.Error=TRUE) + CATGmoSearch.GSMPointOnSurface.Error=TRUE) + CATGmoSearch.GSMPlaneEquation.Error=TRUE) + CATGmoSearch.GSMPlane2Lines." & "Error=TRUE) + CATGmoSearch.GSMPlane1Curve.Error=TRUE) + CATGmoSearch.GSMPlaneAngle.Error=TRUE) + CATGmoSearch.GSMPointOnPlane.Error=TRUE) + CATGmoSearch.GSMLineNormal.Error=TRUE) + CATGmoSearch.GSMCircleCenterTangent.Error=TRUE) + CATGmoSearch.GSMPoint.Error=TRUE) + CATGmoSearch.GSMLineTangency.Error=TRUE) + CATGmoSearch.GSMCircle2PointsRad.Error=TRUE) + CATGmoSearch.GSMPlaneOffsetPt.Error=TRUE) + CATGmoSearch.GSMCircl
eCtrRad.Error=TRUE) + CATGmoSearch.GSMCircleCtrPt.Error=TRUE) + CATGmoSearch.GSMCircleTrit" & "angent.Error=TRUE) + CATGmoSearch.Plane.Error=TRUE) + CATGmoSearch.GSMLineAngle.Error=TRUE) + CATGmoSearch.GSMPlane1Line1Pt.Error=TRUE) + CATGmoSearch.GSMCircle3Points.Error=TRUE) + CATGmoSearch.GSMCircleBitangentPt.Error=TRUE) + CATGmoSearch.GSMCircleCenterAxis.Error=TRUE) + CATGmoSearch.Direction.Error=TRUE) + CATGmoSearch.GSMDirection.Error=TRUE) + CATGmoSearch.GSMPlaneOffset.Error=TRUE) + CATGmoSearch.GSMCircleBitangentRad.Error=TRUE) + CATGmoSearch.GSMLine.Error=TRUE) + CATGmoSearch.GSMPointOnCurve.Err" & "or=TRUE) + CATGmoSearch.GSMPointCenter.Error=TRUE) + CATGmoSearch.GSMLinePtPt.Error=TRUE) + CATGmoSearch.GSMLinePtDir.Error=TRUE) + CATGmoSearch.GSMFill.Error=TRUE) + CATGmoSearch.GSMFill.Error=TRUE) + CATGmoSearch.Wireframe.Error=TRUE) + CATGmoSearch.VolumeGeo.Error=TRUE) + CATGmoSearch.GSMCircle.Error=TRUE) + CATGmoSearch.GSMPointBetween.Error=TRUE) + CATGmoSearch.GSMLineBiTangent.Error=TRUE) + CATGmoSearc
h.GSMPlane.Error=TRUE) + CATGmoSearch.GSMPlane3Points.Error=TRUE) + CATGmoSearch.GSMPlaneNormal.Error" & "=TRUE) + CATGmoSearch.Surface.Error=TRUE) + CATGmoSearch.Curve.Error=TRUE) + CATGmoSearch.Point.Error=TRUE) + CATGmoSearch.GSMLineBisecting.Error=TRUE) + CATGmoSearch.GSMTransformation.Error=TRUE) + CATGmoSearch.GSMSymmetry.Error=TRUE) + CATGmoSearch.GSMAffinity.Error=TRUE) + CATGmoSearch.GSMRotate.Error=TRUE) + CATGmoSearch.GSMTranslate.Error=TRUE) + CATGmoSearch.GSMScaling.Error=TRUE) + CATGmoSearch.GSMLoftSolid.Error=TRUE) + CATGmoSearch.GSMGridFace.Error=TRUE) + CATGmoSearch.GSMFillet.Error=TRUE) + CATG" & "moSearch.GSMProject.Error=TRUE) + CATGmoSearch.GSMCorner.Error=TRUE) + CATGmoSearch.GSMBoundary.Error=TRUE) + CATGmoSearch.GSMExtract.Error=TRUE) + CATGmoSearch.GSOSeatDiabolo.Error=TRUE) + CATGmoSearch.GSMAxisToAxis.Error=TRUE) + CATGmoSearch.GSMTransferedMonoDim.Error=TRUE) + CATGmoSearch.GSMSpiral.Error=TRUE) + CATGmoSearch.GSOShapeMorphing.Error=TRUE) + CATGmoSearch.GSMDevelop.Error=TRUE) + CA
TGmoSearch.GSMUnfold.Error=TRUE) + CATGmoSearch.GSMSweepUnspec.Error=TRUE) + CATGmoSearch.GSMOffset.Error=TRUE) " & "+ CATGmoSearch.GSMExtrude.Error=TRUE) + CATGmoSearch.GSOJunction.Error=TRUE) + CATGmoSearch.GSMCombine.Error=TRUE) + CATGmoSearch.GSOBump.Error=TRUE) + CATGmoSearch.GSM3DCurveOffset.Error=TRUE) + CATGmoSearch.BIWRidge.Error=TRUE) + CATGmoSearch.GSMSweep.Error=TRUE) + CATGmoSearch.GSMRevol.Error=TRUE) + CATGmoSearch.GSMTrim.Error=TRUE) + CATGmoSearch.Trim.Error=TRUE) + CATGmoSearch.GSMTransferedZeroDim.Error=TRUE) + CATGmoSearch.GSMHealing.Error=TRUE) + CATGmoSearch.GSMMask.Error=TRUE) + CATGmoSearch.GSMMult" & "iExtract.Error=TRUE) + CATGmoSearch.GSMCurve.Error=TRUE) + CATGmoSearch.GSMSweepCircle.Error=TRUE) + CATGmoSearch.GSMSweepConic.Error=TRUE) + CATGmoSearch.GSMAssemble.Error=TRUE) + CATGmoSearch.GSMExtractContour.Error=TRUE) + CATGmoSearch.GSMFilletBiTangent.Error=TRUE) + CATGmoSearch.GSMSweepSketch.Error=TRUE) + CATGmoSearch.GSMCurveSmooth.Error=TRUE) + CATGmoSearch.GSM3DWSupport.Error=
TRUE) + CATGmoSearch.GSMSplit.Error=TRUE) + CATGmoSearch.GSOWrapSurface.Error=TRUE) + CATGmoSearch.BIWHole.Error=TRUE) + CA" & "TGmoSearch.BIWRidgeReference.Error=TRUE) + CATGmoSearch.GSMGridSet.Error=TRUE) + CATGmoSearch.GSMCurvePar.Error=TRUE) + CATGmoSearch.GSMReflectLine.Error=TRUE) + CATGmoSearch.GSMSpine.Error=TRUE) + CATGmoSearch.GSMConic.Error=TRUE) + CATGmoSearch.GSMIntersect.Error=TRUE) + CATGmoSearch.Intersect.Error=TRUE) + CATGmoSearch.GSMLawDistProj.Error=TRUE) + CATGmoSearch.GSMConnect.Error=TRUE) + CATGmoSearch.GSMExtrapol.Error=TRUE) + CATGmoSearch.GSMInverse.Error=TRUE) + CATGmoSearch.GSMExtremumPolar.Error=TRUE) + " & "CATGmoSearch.GSMBlend.Error=TRUE) + CATGmoSearch.BIWHoleCurve.Error=TRUE) + CATGmoSearch.GSMGridSubset.Error=TRUE) + CATGmoSearch.GSMSweepSegment.Error=TRUE) + CATGmoSearch.GSMLoft.Error=TRUE) + CATGmoSearch.GSMHelix.Error=TRUE) + CATGmoSearch.GSOWrapCurve.Error=TRUE) + CATGmoSearch.GSMSphere.Error=TRUE) + CATGmoSearch.GSMLineCorner.Error=TRUE) + CATGmoSearch.GSMLoftShape.Err
or=TRUE) + CATGmoSearch.GSMWSupport.Error=TRUE) + CATGmoSearch.GSMCylinder.Error=TRUE) + CATGmoSearch.GSMNear.Error=TRUE) + CATGmoSear" & "ch.GSMExtremum.Error=TRUE) + CATGmoSearch.BIWBead.Error=TRUE) + CATGmoSearch.GeometricFeature.Error=TRUE) + CATGmoSearch.MechanicalFeature.Error=TRUE) + CATGmoSearch.SkinFeature.Error=TRUE) + CATGmoSearch.MMOrderedGeometricalSet.Error=TRUE) + CATGmoSearch.AxisSystem.Error=TRUE) + CATGmoSearch.BodyFeature.Error=TRUE) + CATGmoSearch.UserFeature.Error=TRUE) + CATGmoSearch.PartFeature.Error=TRUE) + CATGmoSearch.OpenBodyFeature.Error=TRUE) + CATGmoSearch.Pattern.Error=TRUE) + CATGmoSearch.Add.Error=TRUE) + CATGm" & "oSearch.ConstantEdgeFillet.Error=TRUE) + CATGmoSearch.Remove.Error=TRUE) + CATGmoSearch.Fillet.Error=TRUE) + CATGmoSearch.FaceFillet.Error=TRUE) + CATGmoSearch.TritangentFillet.Error=TRUE) + CATGmoSearch.Draft.Error=TRUE) + CATGmoSearch.ThickSurface.Error=TRUE) + CATGmoSearch.CircPattern.Error=TRUE) + CATGmoSearch.UserPattern.Error=TRUE) + CATGmoSearch.Shell.Error=
TRUE) + CATGmoSearch.VariableEdgeFillet.Error=TRUE) + CATGmoSearch.CloseSurface.Error=TRUE) + CATGmoSearch.AutoFillet.Error=TRUE) + CATGmoSearch." & "Thickness.Error=TRUE) + CATGmoSearch.SewSurface.Error=TRUE) + CATGmoSearch.RectPattern.Error=TRUE),all"
Vielleicht fällt dir ein wie man die Suchanfrage einfacher gestalten kann.

Gruß
Bernd

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

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

Merlin2001
Mitglied
Sr. Software Engineer


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

Beiträge: 24
Registriert: 13.05.2011

erstellt am: 19. Nov. 2012 13:14    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 Bernd,

wow, danke! Damit kann ich auf jeden Fall was anfangen!  

Ich werde vermutlich eh ein paar "Standardkandidaten" identifizieren können, nach denen ich dann suche - oder ich probiere mal, ob man da was mit Wildcards machen kann. Ich mache mich da gleich mal ran und halte euch auf jeden Fall auf dem Laufenden.

Viele Grüße
Marcus


EDIT 2012-11-21 12:30:
Kurzes Update, nachdem ich jetzt tatsächlich dazu gekommen bin, etwas rumzuprobieren:
Ich bekomme zwar bei der Verwendung des Monstersuchbegriffs bisher immer einen Automation Error, bin aber zuversichtlich, dass ich die interessanten Elemente identifizieren und dann einzeln abfragen kann.    Notepad++ sei Dank konnte ich die Liste aber schon wesentlich lesbarer gestalten und die Duplikate entfernen. (In der Makrorekorderaufnahme kommen alle Elemente doppelt vor - klar, ist ja auch nicht lang genug, der String  )

(Falls das noch mal jemand braucht:

Doppelte Zeilen entfernen mit Notepad++
Mit dem Plugin TextFX lassen sie sich ganz einfach entfernen, indem man unter TextFX > TextFX Tools die Option "+Sort outputs only UNIQUE (at column) lines" auswählt und dann ein "Sort lines case insensitive (at column)" im selben Untermenü durchführt. (Es werden dabei nur die selektierten Zeilen sortiert - seeeehr praktisch!  )

Hier noch mein bisheriger Suchstring, dem sich auch die einzelnen Features übersichtlich entnehmen lassen.
Was ganz vielversprechend aussieht ist CATGmoSearch.GeometricFeature.Error=TRUE - vielleicht lassen sich damit alle geometrischen Features finden - das muss ich noch ausprobieren. 

Viele Grüße
Marcus

Code:

Function GetSearchTerm() As String

    Dim s As String
   
    'Add 154 Error types to search term
    s = "(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("
    s = s & "CATGmoSearch.Add.Error=TRUE) + "
    s = s & "CATGmoSearch.AutoFillet.Error=TRUE) + "
    s = s & "CATGmoSearch.AxisSysem.Error=TRUE) + "
    s = s & "CATGmoSearch.BIWBead.Error=TRUE) + "
    s = s & "CATGmoSearch.BIWHole.Error=TRUE) + "
    s = s & "CATGmoSearch.BIWHoleCurve.Error=TRUE) + "
    s = s & "CATGmoSearch.BIWRidge.Error=TRUE) + "
    s = s & "CATGmoSearch.BIWRidgeReference.Error=TRUE) + "
    s = s & "CATGmoSearch.BodyFeature.Error=TRUE) + "
    s = s & "CATGmoSearch.Circle.Error=TRUE) + "
    s = s & "CATGmoSearch.CircPattern.Error=TRUE) + "
    s = s & "CATGmoSearch.CloseSurface.Error=TRUE) + "
    s = s & "CATGmoSearch.ConsantEdgeFillet.Error=TRUE) + "
    s = s & "CATGmoSearch.Curve.Error=TRUE) + "
    s = s & "CATGmoSearch.Direction.Error=TRUE) + "
    s = s & "CATGmoSearch.Draft.Error=TRUE) + "
    s = s & "CATGmoSearch.FaceFillet.Error=TRUE) + "
    s = s & "CATGmoSearch.Fillet.Error=TRUE) + "
    s = s & "CATGmoSearch.GeometricFeature.Error=TRUE) + "
    s = s & "CATGmoSearch.GSM3DCurveOffset.Error=TRUE) + "
    s = s & "CATGmoSearch.GSM3DWSupport.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMAffinity.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMAssemble.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMAxisoAxis.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMBlend.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMBoundary.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCircl eCtrRad.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCircle.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCircle2PointsRad.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCircle3Points.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCircleBitangentPt.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCircleBitangentRad.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCircleCenterAxis.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCircleCenterTangent.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCircleCtrPt.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCircleCtrRad.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCircleTritangent.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCombine.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMConic.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMConnect.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCorner.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCurve.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCurvePar.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCurveSmooth.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMCylinder.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMDevelop.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMDirection.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMExtract.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMExtractContour.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMExtrapol.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMExtremum.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMExtremumPolar.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMExtrude.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMFill.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMFillet.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMFilletBiTangent.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMGridFace.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMGridSet.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMGridSubset.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMHealing.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMHelix.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMIntersect.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMInverse.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMLawDisProj.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMLine.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMLineAngle.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMLineBisecting.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMLineBiTangent.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMLineCorner.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMLineNormal.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMLinePtDir.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMLinePtPt.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMLineTangency.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMLoft.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMLoftShape.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMLoftSolid.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMMask.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMMultiExtract.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMNear.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMOffset.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPlane.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPlane1Curve.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPlane1Line1Pt.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPlane2Lines.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPlane3Points.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPlaneAngle.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPlaneEquation.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPlaneNormal.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPlaneOffset.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPlaneOffsetPt.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPlaneTangent.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPoint.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPointBetween.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPointCenter.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPointCoord.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPointOnCurve.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPointOnPlane.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPointOnSurface.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPointTangent.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMPointTangent.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMProject.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMProject.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMReflectLine.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMRevol.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMRotate.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMScaling.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMSphere.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMSpine.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMSpiral.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMSplit.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMSweep.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMSweepCircle.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMSweepConic.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMSweepSegment.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMSweepSketch.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMSweepUnspec.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMSymmetry.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMTransferedMonoDim.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMTransferedZeroDim.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMTransformation.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMTranslate.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMTrim.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMUnfold.Error=TRUE) + "
    s = s & "CATGmoSearch.GSMWSupport.Error=TRUE) + "
    s = s & "CATGmoSearch.GSOBump.Error=TRUE) + "
    s = s & "CATGmoSearch.GSOJunction.Error=TRUE) + "
    s = s & "CATGmoSearch.GSOSeatDiabolo.Error=TRUE) + "
    s = s & "CATGmoSearch.GSOShapeMorphing.Error=TRUE) + "
    s = s & "CATGmoSearch.GSOWrapCurve.Error=TRUE) + "
    s = s & "CATGmoSearch.GSOWrapSurface.Error=TRUE) + "
    s = s & "CATGmoSearch.Intersect.Error=TRUE) + "
    s = s & "CATGmoSearch.Line.Error=TRUE) + "
    s = s & "CATGmoSearch.MechanicalFeature.Error=TRUE) + "
    s = s & "CATGmoSearch.MMOrderedGeometricalSet.Error=TRUE) + "
    s = s & "CATGmoSearch.OpenBodyFeature.Error=TRUE) + "
    s = s & "CATGmoSearch.PartFeature.Error=TRUE) + "
    s = s & "CATGmoSearch.Pattern.Error=TRUE) + "
    s = s & "CATGmoSearch.Plane.Error=TRUE) + "
    s = s & "CATGmoSearch.Point.Error=TRUE) + "
    s = s & "CATGmoSearch.RectPattern.Error=TRUE) + "
    s = s & "CATGmoSearch.Remove.Error=TRUE) + "
    s = s & "CATGmoSearch.SewSurface.Error=TRUE) + "
    s = s & "CATGmoSearch.Shell.Error=TRUE) + "
    s = s & "CATGmoSearch.SkinFeature.Error=TRUE) + "
    s = s & "CATGmoSearch.Surface.Error=TRUE) + "
    s = s & "CATGmoSearch.Thickness.Error=TRUE) + "
    s = s & "CATGmoSearch.ThickSurface.Error=TRUE) + "
    s = s & "CATGmoSearch.Trim.Error=TRUE) + "
    s = s & "CATGmoSearch.TritangentFillet.Error=TRUE) + "
    s = s & "CATGmoSearch.UserFeature.Error=TRUE) + "
    s = s & "CATGmoSearch.UserPattern.Error=TRUE) + "
    s = s & "CATGmoSearch.VariableEdgeFillet.Error=TRUE) + "
    s = s & "CATGmoSearch.VolumeGeo.Error=TRUE) + "
    s = s & "CATGmoSearch.Wireframe.Error=TRUE)"

    'Return value
    GetSearchTerm = s

End Function


[Diese Nachricht wurde von Merlin2001 am 21. Nov. 2012 editiert.]

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

Merlin2001
Mitglied
Sr. Software Engineer


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

Beiträge: 24
Registriert: 13.05.2011

--- leider nicht mehr im CAD-Bereich aktiv :'( ---
CATIA V5R19 x64 SP9
Inventor 2010 x64 SP2 Studentenversion
SolidWorks 2010 x64 Studentenversion
Siemens PLM NX 10 x64

erstellt am: 30. Nov. 2012 16: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

Hallo Leute!

Es funktioniert! 
Wieder ein Problem gelöst, dank cad.de. Mit einer Suche nach CATGmoSearch.GeometricFeature.Error=TRUE finde ich alle Features, die Aufbaufehler haben und kann mir dann über die Parents (und eine IMHO schöne Rekursion) den Pfad bis zum fehlerhaften Element ausgeben lassen.

Hier meine Beispielimplementierung:

Code:

'----------------------------------------------------------------------------------
' Author:
'  Marcus Mangelsdorf
'
' Purpose:
'  Show information about the occurence of update errors and their location
'
' Usage:
'  Run macro after updating a part/product to get a MsgBox with the encountered
'  feature update errors
'
' History:
'  Version    Date            Comment
'  1.0        2012-11-21      Initial release
'
' Notes:
'  The result can personalized by setting the variables listed in the setup
'  section below (beginning below the variable definition)
'----------------------------------------------------------------------------------
Option Explicit

Sub CATMain()

    'Object variables
    Dim objSel As Selection
    Dim objFaulty As Object

    'String variables
    Dim strType As String  'Document type
    Dim strSearchTerm As String
    Dim strTopNode As String
    Dim strAllErrors As String

    'Number variables
    Dim i As Long
    Dim lngMaxLevel As Long

'-------------- SETUP --------------

    'Set boundaries for tree elements that are included in the output
    strTopNode = ""        'Beginning of the name of the topmost geometry set (eg. "#C" will stop at "#Conceptual Design")
    lngMaxLevel = 16        'Maximum number of parents to include in the output (eg. level 2 will stop at grandparent)

'------------ END SETUP ------------

    'Initialize output string
    strAllErrors = "Folgende Geometrieelemente konnten nicht aufgebaut werden:" & vbCrLf & vbCrLf
    'Initialize selection object
    Set objSel = CATIA.ActiveDocument.Selection
    objSel.Clear


    'Search for all errors in geometric features
    strSearchTerm = "CATGmoSearch.GeometricFeature.Error=TRUE"
    objSel.Search strSearchTerm

    'Loop through all items of the selection object
    For i = 1 To objSel.Count2

        'Update output string
        strAllErrors = strAllErrors & RecurseParent(objFaulty, strTopNode, lngMaxLevel) & vbCrLf & vbCrLf

    Next i

    strAllErrors = strAllErrors & "Es sind insgesamt " & objSel.Count2 & " Fehler aufgetreten."

    MsgBox strAllErrors, vbInformation, "Aufbaufehler gefunden"

End Sub    'End CATMain


'------------------------------------------------------------------------------
' Name:
'  RecurseParent (private function)
'
' Purpose:
'  Generate a string containing a graphical representation of the ancestors
'  of the given child object up to the given maximum level or until the
'  beginning of the parent's name resembles the given stop string.
'
' Assumptions:
'  A CATIA Document is active and the passed object has at least a name
'  property. To make sense, it should also have a parent property.
'
' Parameters:
' In
'  strLastParent by value      : name of upmost parent to search for
'  lngMaxLevel by value        : max number of ancestors to include
' Out
'  None
' In/Out
'  objChild by reference  : downmost tree object
'  lngLevel                : counting variable to track the level of the
'                            recursion and control the spacing
'
' Returns:
'  A string containing the "family" of the given object
'------------------------------------------------------------------------------
Private Function RecurseParent( _
            ByRef objChild As Object, _
            Optional ByVal strLastParent As String = "", _
            Optional ByVal lngMaxLevel As Long = 16, _
            Optional ByRef lngLevel As Long = 0) _
        As String

    Dim objParent As Object
    Dim lngCurrentLevel As Long

    'Check if strLastParent parameter was given, if not set it to the name of the file
    If Len(strLastParent) = 0 Then strLastParent = CATIA.ActiveDocument.Name

    'Check if last parent is reached or parent is already the filename or maximum level is reached
    'If so, return child's name
    If Left(objChild.Name, Len(strLastParent)) = strLastParent _
            Or objChild.Name = CATIA.ActiveDocument.Name _
            Or lngLevel >= lngMaxLevel Then
        RecurseParent = objChild.Name
        Exit Function
    End If

    'Check if parent exists - if not, return "No parent"
   
    On Error Resume Next    'Deactivate automatic error handling
    Set objParent = objChild.Parent 'Try to get parent
    If Err.Number <> 0 Then
        RecurseParent = "No parent"
        Exit Function
    End If
    Err.Clear
    On Error GoTo 0        'Reactivate automatic error handling

    'Save current level and increase total level to pass it on
    lngCurrentLevel = lngLevel
    lngLevel = lngLevel + 1

    'Return recursive function call and child's name
    RecurseParent = RecurseParent(objParent, strLastParent, lngMaxLevel, lngLevel) & vbCrLf _
                        & Space((lngLevel - lngCurrentLevel - 1) * 3) & "'-- " & objChild.Name

End Function    'End RecurseParent


Ich hoffe ihr könnt etwas damit anfangen, noch mal vielen Dank für die Hilfe!

Viele Grüße
Marcus

P.S.: Möglicherweise sind neben der Suche nach GeometricFeature auch noch folgende Suchbegriffe aus der unendlichen Liste interessant:
BodyFeature
MechanicalFeature
OpenBodyFeature
PartFeature
SkinFeature
und
UserFeature

Bisher hat GeometricFeature alle Fehlerquellen eingeschlossen, aber ich würde zu gerne wissen, was sich hinter den anderen Begriffen versteckt. Weiß jemand vielleicht wo ich das nachlesen kann? Die VisualBasic-Hilfe brachte mich nicht weiter.
Danke! :-)

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